Class: Cairo::Device

Inherits:
Object
  • Object
show all
Defined in:
ext/cairo/rb_cairo_device.c

Direct Known Subclasses

ScriptDevice, XMLDevice

Instance Method Summary collapse

Instance Method Details

#acquireObject



210
211
212
213
214
215
216
217
218
219
# File 'ext/cairo/rb_cairo_device.c', line 210

static VALUE
cr_device_acquire (VALUE self)
{
  cairo_device_acquire (_SELF);
  cr_device_check_status (_SELF);
  if (rb_block_given_p ())
    return rb_ensure (rb_yield, self, cr_device_release, self);
  else
    return self;
}

#destroyObject

Backend device manipulation



162
163
164
165
166
167
168
169
170
171
172
# File 'ext/cairo/rb_cairo_device.c', line 162

static VALUE
cr_device_destroy (VALUE self)
{
  cairo_device_t *device;

  device = _SELF;
  cairo_device_destroy (device);
  DATA_PTR (self) = NULL;

  return self;
}

#finishObject



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'ext/cairo/rb_cairo_device.c', line 174

static VALUE
cr_device_finish (VALUE self)
{
  cairo_device_t *device;
  rb_cairo__io_callback_closure_t *closure;

  device = _SELF;
  closure = cairo_device_get_user_data (device, &cr_closure_key);

  cairo_device_finish (device);
  cairo_device_set_user_data (device, &cr_finished_key, (void *)CR_TRUE, NULL);
  cairo_device_set_user_data (device, &cr_object_holder_key, NULL, NULL);

  if (closure && !NIL_P (closure->error))
    rb_exc_raise (closure->error);
  cr_device_check_status (device);

  return self;
}

#flushObject



194
195
196
197
198
199
200
# File 'ext/cairo/rb_cairo_device.c', line 194

static VALUE
cr_device_flush (VALUE self)
{
  cairo_device_flush (_SELF);
  cr_device_check_status (_SELF);
  return self;
}

#releaseObject



202
203
204
205
206
207
208
# File 'ext/cairo/rb_cairo_device.c', line 202

static VALUE
cr_device_release (VALUE self)
{
  cairo_device_release (_SELF);
  cr_device_check_status (_SELF);
  return self;
}