Method: Ray::PixelBus#initialize

Defined in:
ext/pixel_bus.c

#initialize(type = :stream) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'ext/pixel_bus.c', line 37

static
VALUE ray_pixel_bus_init(int argc, VALUE *argv, VALUE self) {
  if (!say_pixel_bus_is_available())
    rb_raise(rb_eRuntimeError, "pixel buses aren't available on this platform");

  GLenum mode = SAY_STREAM;

  VALUE rb_mode = Qnil;
  rb_scan_args(argc, argv, "01", &rb_mode);

  if (!NIL_P(rb_mode)) mode = ray_buf_type(rb_mode);

  say_pixel_bus **ptr = NULL;
  Data_Get_Struct(self, say_pixel_bus*, ptr);

  *ptr = say_pixel_bus_create(mode);

  return self;
}