summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ext/ruby2d/ruby2d.c7
-rw-r--r--lib/ruby2d/window.rb4
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)