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]

Reply via email to