From bc8c082434007a8423afd34ea90657ba260d5dbd Mon Sep 17 00:00:00 2001 From: Tom Black Date: Mon, 18 Jul 2016 00:09:41 -0500 Subject: Set background color --- ext/ruby2d/ruby2d.c | 7 +++++++ lib/ruby2d/window.rb | 4 ++++ 2 files changed, 11 insertions(+) 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) -- cgit v1.2.3