Exemple #1
0
void cairo_perf_set_thread_aware (cairo_t *cr, cairo_bool_t thread_aware)
{
#if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV2_SURFACE
    cairo_device_t *device = cairo_surface_get_device (cairo_get_target (cr));
    if (cairo_device_get_type (device) == CAIRO_DEVICE_TYPE_GL)
	cairo_gl_device_set_thread_aware (device, thread_aware);
#endif
}
Exemple #2
0
static VALUE
cr_device_get_klass (cairo_device_t *device)
{
  VALUE klass;
  cairo_device_type_t type;

  type = cairo_device_get_type (device);
  switch (type)
    {
    case CAIRO_DEVICE_TYPE_DRM:
      klass = rb_cCairo_DRMDevice;
      break;
    case CAIRO_DEVICE_TYPE_GL:
      klass = rb_cCairo_GLDevice;
      break;
    case CAIRO_DEVICE_TYPE_SCRIPT:
      klass = rb_cCairo_ScriptDevice;
      break;
    case CAIRO_DEVICE_TYPE_XCB:
      klass = rb_cCairo_XCBDevice;
      break;
    case CAIRO_DEVICE_TYPE_XLIB:
      klass = rb_cCairo_XlibDevice;
      break;
    case CAIRO_DEVICE_TYPE_XML:
      klass = rb_cCairo_XMLDevice;
      break;
    default:
      klass = rb_cCairo_Device;
      break;
    }

  if (NIL_P (klass))
    rb_raise (rb_eArgError, "unknown device type: %d", type);

  return klass;
}