All of lore.kernel.org
 help / color / mirror / Atom feed
* Enabling transparency on overlay surface
@ 2014-11-07 19:11 Jason Anderson
  2014-11-07 20:03 ` Eric Nelson
  0 siblings, 1 reply; 3+ messages in thread
From: Jason Anderson @ 2014-11-07 19:11 UTC (permalink / raw)
  To: meta-freescale

[-- Attachment #1: Type: text/plain, Size: 418 bytes --]

HI,
 
I am working on an OpenGL ES application and trying to use /dev/fb1 as an overlay on my i.MX6 (Boundary Devices BD-SL-i.MX6) .  My current image is Yocto 1.6 , 3.10.17 kernel.
 
I have my app rendering my background to /dev/fb0 and my overlay to /dev/fb1, but I can't get fb1 transparency enabled.  Does any have have an example of how to use the overlay with OpenGL ES/EGL?
 
 
Regards,
Jason Anderson

[-- Attachment #2: Type: text/html, Size: 2715 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Enabling transparency on overlay surface
  2014-11-07 19:11 Enabling transparency on overlay surface Jason Anderson
@ 2014-11-07 20:03 ` Eric Nelson
  2014-11-10 14:30   ` Jason Anderson
  0 siblings, 1 reply; 3+ messages in thread
From: Eric Nelson @ 2014-11-07 20:03 UTC (permalink / raw)
  To: Jason Anderson, meta-freescale

Hi Jason,

On 11/07/2014 12:11 PM, Jason Anderson wrote:
> HI,
> 
> I am working on an OpenGL ES application and trying to use /dev/fb1 as
> an overlay on my i.MX6 (Boundary Devices BD-SL-i.MX6) .  My current
> image is Yocto 1.6 , 3.10.17 kernel.
> 
> I have my app rendering my background to /dev/fb0 and my overlay to
> /dev/fb1, but I can’t get fb1 transparency enabled.  Does any have have
> an example of how to use the overlay with OpenGL ES/EGL?
> 

The fb1 transparency doesn't have anything to do with OpenGL,
but is available using a set of custom ioctls on the frame-buffer
device.

In particular, look at MXCFB_SET_GBL_ALPHA and MXCFB_SET_CLR_KEY:

	https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.2_ga/drivers/video/mxc/mxc_ipuv3_fb.c#L1029

The MXCFB_SET_OVERLAY_POS ioctl is also very useful for placing
fb1 on top of fb0.

Regards,


Eric


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Enabling transparency on overlay surface
  2014-11-07 20:03 ` Eric Nelson
@ 2014-11-10 14:30   ` Jason Anderson
  0 siblings, 0 replies; 3+ messages in thread
From: Jason Anderson @ 2014-11-10 14:30 UTC (permalink / raw)
  To: eric.nelson, meta-freescale

Hi Eric,

>Hi Jason,
>
>On 11/07/2014 12:11 PM, Jason Anderson wrote:
>> HI,
>> 
>> I am working on an OpenGL ES application and trying to use /dev/fb1 as
>> an overlay on my i.MX6 (Boundary Devices BD-SL-i.MX6) .  My current
>> image is Yocto 1.6 , 3.10.17 kernel.
>> 
>> I have my app rendering my background to /dev/fb0 and my overlay to
>> /dev/fb1, but I can’t get fb1 transparency enabled.  Does any have have
>> an example of how to use the overlay with OpenGL ES/EGL?
>> 
>
>The fb1 transparency doesn't have anything to do with OpenGL,
>but is available using a set of custom ioctls on the frame-buffer
>device.
>
>In particular, look at MXCFB_SET_GBL_ALPHA and MXCFB_SET_CLR_KEY:
>
>	https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.2_ga/drivers/video/mxc/mxc_ipuv3_fb.c#L1029
>
>The MXCFB_SET_OVERLAY_POS ioctl is also very useful for placing
>fb1 on top of fb0.


Thanks for your response,  I tried the following code and still not getting any transparency on the overlay:

#define MXCFB_SET_GBL_ALPHA _IOW('F', 0x21, struct mxcfb_gbl_alpha)
#define MXCFB_SET_CLR_KEY _IOW('F', 0x22, struct mxcfb_color_key)

struct mxcfb_gbl_alpha {
        int enable;
        int alpha;
};

struct mxcfb_color_key {
        int enable;
        unsigned int color_key;
};


void setFB() {
	int fd_fb = open("/dev/fb1", O_RDWR, 0);
	if (fd_fb < 0) {
	    printf("unable to open fb0\n");
	    return ;
	}

	struct mxcfb_gbl_alpha a;
	a.enable = 1;
	a.alpha = 0;
	int err = ioctl(fd_fb,MXCFB_SET_GBL_ALPHA,&a);
	if ( err ) {
	    perror( "MXCFB_SET_GBL_ALPHA");
	    return;
	}

	struct mxcfb_color_key c;
	c.enable = 1;
	c.color_key = 0x0;
	err = ioctl(fd_fb,MXCFB_SET_CLR_KEY,&c);
	if ( err ) {
	  perror( "MXCFB_SET_CLR_KEY");
	  return;
	}
	close (fd_fb);
}


I make sure to clear the frame buffers correctly when drawing to them. Am I missing something here?  Are there any "gotchas" I should be looking out for.  Also,  does the video parameter in the bootargs for u-boot play any part in the availability in the alpha buffer for the fb device?  I noticed the default u-boot script does not explicitly set bpp and uses RGB24 for hdmi output.  Should I be setting this to bpp=32, is there any RGBA format?

Also,  when I run cat /sys/class/graphics/f1/

Thanks again!



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-10 14:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-07 19:11 Enabling transparency on overlay surface Jason Anderson
2014-11-07 20:03 ` Eric Nelson
2014-11-10 14:30   ` Jason Anderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.