diff options
| -rw-r--r-- | ext/ruby2d/ruby2d.c | 7 | ||||
| -rw-r--r-- | lib/ruby2d/window.rb | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ext/ruby2d/ruby2d.c b/ext/ruby2d/ruby2d.c index d891c6a..8583371 100644 --- a/ext/ruby2d/ruby2d.c +++ b/ext/ruby2d/ruby2d.c @@ -125,6 +125,13 @@ static void update() { */ static void render() { + // Set background color + VALUE bc = rb_iv_get(self, "@background"); + window->background.r = NUM2DBL(rb_iv_get(bc, "@r")); + window->background.g = NUM2DBL(rb_iv_get(bc, "@g")); + window->background.b = NUM2DBL(rb_iv_get(bc, "@b")); + window->background.a = NUM2DBL(rb_iv_get(bc, "@a")); + // Read window objects VALUE objects = rb_iv_get(self, "@objects"); int num_objects = NUM2INT(rb_funcall(objects, rb_intern("count"), 0)); diff --git a/lib/ruby2d/window.rb b/lib/ruby2d/window.rb index 5889c5d..69a4222 100644 --- a/lib/ruby2d/window.rb +++ b/lib/ruby2d/window.rb @@ -6,6 +6,7 @@ module Ruby2D def initialize(width: 640, height: 480, title: "Ruby 2D", fps: 60, vsync: true) @width, @height, @title = width, height, title + @background = Color.new([0.0, 0.0, 0.0, 1.0]) @mouse_x = @mouse_y = 0 @fps_cap = fps @fps = 60 @@ -34,6 +35,9 @@ module Ruby2D @title = opts[:title] || @title @width = opts[:width] || @width @height = opts[:height] || @height + if Color.is_valid? opts[:background] + @background = Color.new(opts[:background]) + end end def add(o) |
