| @@ -33,6 +33,7 @@ static VALUE display_alloc(VALUE klass) | |||||
| static VALUE display_initialize(int argc, VALUE* argv, VALUE self) | static VALUE display_initialize(int argc, VALUE* argv, VALUE self) | ||||
| { | { | ||||
| caca_display_t *display; | caca_display_t *display; | ||||
| cucul_canvas_t *canvas; | |||||
| VALUE cv; | VALUE cv; | ||||
| rb_scan_args(argc, argv, "01", &cv); | rb_scan_args(argc, argv, "01", &cv); | ||||
| @@ -40,6 +41,8 @@ static VALUE display_initialize(int argc, VALUE* argv, VALUE self) | |||||
| if(NIL_P(cv)) | if(NIL_P(cv)) | ||||
| { | { | ||||
| display = caca_create_display(NULL); | display = caca_create_display(NULL); | ||||
| canvas = caca_get_canvas(display); | |||||
| cv = canvas_create(canvas); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| @@ -58,6 +61,8 @@ static VALUE display_initialize(int argc, VALUE* argv, VALUE self) | |||||
| _SELF = display; | _SELF = display; | ||||
| rb_iv_set(self, "@canvas", cv); | |||||
| return self; | return self; | ||||
| } | } | ||||
| @@ -49,6 +49,11 @@ static VALUE canvas_alloc(VALUE klass) | |||||
| return obj; | return obj; | ||||
| } | } | ||||
| VALUE canvas_create(cucul_canvas_t *canvas) | |||||
| { | |||||
| return Data_Wrap_Struct(cCanvas, 0, canvas_free, canvas); | |||||
| } | |||||
| static VALUE canvas_initialize(VALUE self, VALUE width, VALUE height) | static VALUE canvas_initialize(VALUE self, VALUE width, VALUE height) | ||||
| { | { | ||||
| unsigned int w, h; | unsigned int w, h; | ||||
| @@ -5,5 +5,6 @@ | |||||
| extern VALUE cCanvas; | extern VALUE cCanvas; | ||||
| extern void Init_cucul_canvas(VALUE); | extern void Init_cucul_canvas(VALUE); | ||||
| extern VALUE canvas_create(cucul_canvas_t *canvas); | |||||
| #endif | #endif | ||||
| @@ -2,6 +2,9 @@ require 'cucul' | |||||
| require 'caca.so' | require 'caca.so' | ||||
| module Caca | module Caca | ||||
| class Display | |||||
| attr_reader :canvas | |||||
| end | |||||
| class Event | class Event | ||||
| def Event.to_i | def Event.to_i | ||||
| const_get("TYPE") | const_get("TYPE") | ||||
| @@ -33,7 +33,7 @@ irb(main):009:0> Caca.my_methods | |||||
| \code | \code | ||||
| irb(main):010:0> Caca::Display.my_instance_methods | irb(main):010:0> Caca::Display.my_instance_methods | ||||
| => ["get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", | |||||
| => ["canvas", "get_event", "height", "mouse=", "mouse_x", "mouse_y", "refresh", | |||||
| "set_mouse", "set_time", "set_title", "time", "time=", "title=", "width"] | "set_mouse", "set_time", "set_title", "time", "time=", "title=", "width"] | ||||
| \endcode | \endcode | ||||