gboolean _clutter_backend_create_context (ClutterBackend *backend, GError **error) { ClutterBackendClass *klass; klass = CLUTTER_BACKEND_GET_CLASS (backend); return klass->create_context (backend, error); }
gboolean _clutter_backend_create_context (ClutterBackend *backend, gboolean is_offscreen, GError **error) { ClutterBackendClass *klass; g_return_val_if_fail (CLUTTER_IS_BACKEND (backend), FALSE); klass = CLUTTER_BACKEND_GET_CLASS (backend); if (klass->create_context) return klass->create_context (backend, is_offscreen, error); return TRUE; }
ClutterFeatureFlags _clutter_backend_get_features (ClutterBackend *backend) { ClutterBackendClass *klass; GError *error; g_assert (CLUTTER_IS_BACKEND (backend)); klass = CLUTTER_BACKEND_GET_CLASS (backend); /* we need to have a context here; so we create the * GL context first and the ask for features. if the * context already exists this should be a no-op */ error = NULL; if (klass->create_context != NULL) { gboolean res; res = klass->create_context (backend, &error); if (!res) { if (error) { g_critical ("Unable to create a context: %s", error->message); g_error_free (error); } else g_critical ("Unable to create a context: unknown error"); return 0; } } if (klass->get_features) return klass->get_features (backend); return 0; }