RE: [clutter] How to mask two texture

2010-05-20 Thread Rakesh Kumar
 
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 rakesh.ku...@kpitcummins.com 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));
/* 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 clutter+unsubscr...@o-hand.com



[clutter] clutter-gst: test-yuv-upload fails

2010-05-20 Thread Phil
Hi,

I have checked out clutter-gst via git and run it on top of clutter 1.2.5
with
an eglnative/gles backend.
The test-yuv-upload fails, in contrast to the test-rgb-upload:


$ ./test-yuv-upload

(test-yuv-upload:1680): ClutterEGL-WARNING **: Stage of type
'ClutterStageEGL' do not support ClutterStage::set_title
test-yuv-upload.c: [caps] video/x-raw-yuv, format=(fourcc)I420,
framerate=(fraction)30/1

(test-yuv-upload:1680): Cogl-Driver-CRITICAL **: Invalid fragment shader.
Link cannot proceed.



Is anyone encountering similar issues, resp. is this a known issue for this
backend?

Thanks for any suggestions
Phil


Re: [clutter] How to mask two texture

2010-05-20 Thread Samuel Degrande

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 rakesh.ku...@kpitcummins.com 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 clutter+unsubscr...@o-hand.com