| @@ -633,6 +633,52 @@ get_singleton_double_list(import) | |||||
| /****/ | /****/ | ||||
| simple_func(disable_dirty_rect) | |||||
| simple_func(enable_dirty_rect) | |||||
| get_int(dirty_rect_count) | |||||
| static VALUE dirty_rect(VALUE self, VALUE n) | |||||
| { | |||||
| int x, y, width, height; | |||||
| VALUE ary; | |||||
| ary = rb_ary_new(); | |||||
| caca_get_dirty_rect(_SELF, NUM2INT(n), &x, &y, &width, &height); | |||||
| rb_ary_push(ary, INT2NUM(x)); | |||||
| rb_ary_push(ary, INT2NUM(y)); | |||||
| rb_ary_push(ary, INT2NUM(width)); | |||||
| rb_ary_push(ary, INT2NUM(height)); | |||||
| return ary; | |||||
| } | |||||
| static VALUE dirty_rects(VALUE self) | |||||
| { | |||||
| int n = caca_get_dirty_rect_count(_SELF), i; | |||||
| VALUE ary; | |||||
| ary = rb_ary_new(); | |||||
| for(i=0; i<n; i++) | |||||
| { | |||||
| rb_ary_push(ary, dirty_rect(self, INT2NUM(i))); | |||||
| } | |||||
| return ary; | |||||
| } | |||||
| /*FIXME Handle an array for the rect */ | |||||
| static VALUE add_dirty_rect(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) | |||||
| { | |||||
| caca_add_dirty_rect(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); | |||||
| return self; | |||||
| } | |||||
| static VALUE remove_dirty_rect(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) | |||||
| { | |||||
| caca_remove_dirty_rect(_SELF, NUM2INT(x), NUM2INT(y), NUM2INT(w), NUM2INT(h)); | |||||
| return self; | |||||
| } | |||||
| simple_func(clear_dirty_rect_list) | |||||
| /****/ | |||||
| void Init_caca_canvas(VALUE mCaca) | void Init_caca_canvas(VALUE mCaca) | ||||
| { | { | ||||
| cCanvas = rb_define_class_under(mCaca, "Canvas", rb_cObject); | cCanvas = rb_define_class_under(mCaca, "Canvas", rb_cObject); | ||||
| @@ -712,5 +758,15 @@ void Init_caca_canvas(VALUE mCaca) | |||||
| rb_define_method(cCanvas, "export_to_memory", export_to_memory, 1); | rb_define_method(cCanvas, "export_to_memory", export_to_memory, 1); | ||||
| rb_define_singleton_method(cCanvas, "export_list", export_list, 0); | rb_define_singleton_method(cCanvas, "export_list", export_list, 0); | ||||
| rb_define_singleton_method(cCanvas, "import_list", import_list, 0); | rb_define_singleton_method(cCanvas, "import_list", import_list, 0); | ||||
| rb_define_method(cCanvas, "disable_dirty_rect", disable_dirty_rect, 0); | |||||
| rb_define_method(cCanvas, "enable_dirty_rect", enable_dirty_rect, 0); | |||||
| rb_define_method(cCanvas, "dirty_rect_count", get_dirty_rect_count, 0); | |||||
| rb_define_method(cCanvas, "dirty_rect", dirty_rect, 1); | |||||
| rb_define_method(cCanvas, "dirty_rects", dirty_rects, 0); | |||||
| rb_define_method(cCanvas, "add_dirty_rect", add_dirty_rect, 4); | |||||
| rb_define_method(cCanvas, "remove_dirty_rect", remove_dirty_rect, 4); | |||||
| rb_define_method(cCanvas, "clear_dirty_rect_list", clear_dirty_rect_list, 0); | |||||
| } | } | ||||