Hi Samuel,
Now I am getting the masking but its also blended
With the stage color. Stage color is coming on masked
Image. Any help will be appreciated.
Regards,
RK.
Rakesh Kumar wrote:
>
> Hi Neil,
>
> I have done like this but I am not getting masking in my program.
> Code Snippet:In the loading image
>
> Load_Image()
> {
> gchar **files;
> files = g_new (gchar*, 1);
>
> files[0] = g_build_filename ("/home/rakeshk4/Development/Pictureflow/",
> "Dummy_Alpha_Path.png", NULL);
>
> //path I am geeting from argument
> ClutterActor *actor = clutter_texture_new_from_file (path, NULL);
>
> CoglHandle alpha_mask_texture = cogl_texture_new_from_file
> (files[0],COGL_TEXTURE_NONE, COGL_PIXEL_FORMAT_ANY,&error);
>
>
> Coglhandle material = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE
> (actor));
>
> cogl_material_set_layer (material, 1, alpha_mask_texture);
> cogl_material_set_layer_combine (material, 1,
> "RGBA = MODULATE (PREVIOUS, TEXTURE)",
> &error);
>
> I am getting this warning meassage:
> cogl_material_set_layer_combine: assertion `cogl_is_material (handle)'failed
>
> I am using this sample.
> http://github.com/pmarti/clutter-tutorial/tree/50679e5eb5ebeb9cbfaab99ceacd9e85deabf3bb/examples/full_example
>
>
> Regards,
> RK
>
> Hi
>
> Rakesh Kumar <[email protected]> wrote:
>
>> I have two texture one is rectangular texture and other one contains
>> alpha texture that is non rectangular texture ,from this i would like
>> to mask two texture and create new shape texture. How we can do this
>> in clutter.
>
> You should be able to do this with a custom material on a ClutterTexture
> using multi-texturing. Assuming you have your alpha mask texture in a
> CoglHandle and your base texture in a ClutterTexture you can do
> something like this:
>
> ClutterActor *base_texture = ...;
> CoglHandle alpha_mask_texture = ...;
> CoglHandle material;
>
> /* Get the material from the Clutter texture */
> material =
> clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (base_texture));
maaterial = clutter_texture_get_cogl_material (CLUTTER_TEXTURE
(base_texture));
that could fix the error, afaik...
> /* Add the alpha mask as a second texture layer */
> cogl_material_set_layer (material, 1, alpha_mask_texture);
> /* Set the combine function so that the base texture is modulated by the
> alpha component of the mask texture */
> cogl_material_set_layer_combine (material, 1,
> "RGBA = MODULATE (PREVIOUS, TEXTURE[A])",
> NULL);
>
> If you need picking to work as well then you would need to subclass
> ClutterTextue and override the pick method so that it draws a solid
> rectangle masked by the alpha texture in a similar way.
>
> You may want to take a look at Mutter¹ which does a similar thing to
> support shaped windows.
>
> - Neil
>
> ¹ http://ho.io/ck29
>
>
--
To unsubscribe send a mail to [email protected]