SwfdecColorTransformAs * swfdec_color_transform_as_new_from_transform (SwfdecAsContext *context, const SwfdecColorTransform *transform) { SwfdecColorTransformAs *transform_as; SwfdecAsObject *object; g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL); g_return_val_if_fail (transform != NULL, NULL); transform_as = g_object_new (SWFDEC_TYPE_COLOR_TRANSFORM_AS, "context", context, NULL); /* do it this way so the constructor isn't called */ object = swfdec_as_object_new (context, NULL); swfdec_as_object_set_relay (object, SWFDEC_AS_RELAY (transform_as)); swfdec_as_object_set_constructor_by_name (object, SWFDEC_AS_STR_flash, SWFDEC_AS_STR_geom, SWFDEC_AS_STR_ColorTransform, NULL); transform_as->ra = transform->ra / 256.0; transform_as->ga = transform->ga / 256.0; transform_as->ba = transform->ba / 256.0; transform_as->aa = transform->aa / 256.0; transform_as->rb = transform->rb; transform_as->gb = transform->gb; transform_as->bb = transform->bb; transform_as->ab = transform->ab; return transform_as; }
/** * swfdec_as_array_new: * @context: a #SwfdecAsContext * * Creates a new #SwfdecAsArray. * * Returns: the new array **/ SwfdecAsObject * swfdec_as_array_new (SwfdecAsContext *context) { SwfdecAsObject *ret; g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL); ret = g_object_new (SWFDEC_TYPE_AS_ARRAY, "context", context, NULL); swfdec_as_object_set_constructor_by_name (ret, SWFDEC_AS_STR_Array, NULL); swfdec_as_array_set_length_object (ret, 0); return ret; }
/** * swfdec_as_native_function_new: * @context: a #SwfdecAsContext * @name: name of the function * @native: function to call when executed * * Creates a new native function, that will execute @native when called. You * might want to use swfdec_as_object_add_function() instead of this function. * * Returns: a new #SwfdecAsFunction **/ SwfdecAsFunction * swfdec_as_native_function_new (SwfdecAsContext *context, const char *name, SwfdecAsNative native) { SwfdecAsFunction *fun; SwfdecAsObject *object; g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL); g_return_val_if_fail (native != NULL, NULL); fun = swfdec_as_native_function_new_bare (context, name, native); object = swfdec_as_relay_get_as_object (SWFDEC_AS_RELAY (fun)); swfdec_as_object_set_constructor_by_name (object, SWFDEC_AS_STR_Function, NULL); swfdec_as_object_set_variable_flags (object, SWFDEC_AS_STR___proto__, SWFDEC_AS_VARIABLE_VERSION_6_UP); return fun; }
SwfdecBitmapData * swfdec_bitmap_data_new (SwfdecAsContext *context, gboolean transparent, guint width, guint height) { SwfdecBitmapData *bitmap; g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL); g_return_val_if_fail (width > 0, NULL); g_return_val_if_fail (height > 0, NULL); if (!swfdec_as_context_try_use_mem (context, width * height * 4)) return NULL; bitmap = g_object_new (SWFDEC_TYPE_BITMAP_DATA, "context", context, NULL); bitmap->surface = cairo_image_surface_create ( transparent ? CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24, width, height); swfdec_as_object_set_constructor_by_name (SWFDEC_AS_OBJECT (bitmap), SWFDEC_AS_STR_flash, SWFDEC_AS_STR_display, SWFDEC_AS_STR_BitmapData, NULL); return bitmap; }