Hi,
Does anyone of you out there use davinci gfx driver?
1.
Do you have HD output resolutions?
I can only get the driver to output 640x480
2.
Do you have (or can point me to) any example application code for making the
OSDWIN0 fully transparent?
3.
Do you have (or can point me to) any example application code for getting
transparency using a PNG picture's alpha channel.
When I run a program using this function below, DirectFB prints the
signal/error msg:
(*) Direct/Interface: Loaded 'PNG' implementation of 'IDirectFBImageProvider'.
(!) [ 2865: 0.000] --> Caught signal 11 (at 0xc, invalid address) <--
/*
* Loading an image, and taking alpha channel info into account
*/
void osdViewT(const char *filename, int x, int y) {
/*
* Loading an image is done with an Image Provider.
*/
IDirectFBImageProvider *provider;
/*
* First we need to create an Image Provider by
passing a filename.
* DirectFB will find (or not) an Image Provider
for the file type.
*/
DFBCHECK (dfb->CreateImageProvider (dfb, filename,
&provider));
/*
* Get a surface description from the provider. It
will contain the width,
* height, bits per pixel and the flag for an
alphachannel if the image has
* one. If the image has no alphachannel the bits
per pixel is set to the
* bits per pixel of the primary layer to use
simple blitting without pixel
* format conversion.
*/
DFBCHECK (provider->GetSurfaceDescription
(provider, &dsc));
dsc.pixelformat = DSPF_ARGB;
/*
* Create a surface based on the description of the
provider.
*/
DFBCHECK (dfb->CreateSurface( dfb, &dsc, &myimage
));
/*
* Let the provider render to our surface. Image
providers are supposed to
* support every destination pixel format and size.
If the size differs the
* image will be scaled (bilinear). The last
parameter allows to specify
* an optional destination rectangle. We use NULL
here so that our image
* covers the whole logo surface.
*/
DFBCHECK (provider->RenderTo (provider, myimage,
NULL));
/*
* Release the provider, we don't need it anymore.
*/
provider->Release (provider);
/*
* Blit the logo vertically centered with "i" as
the X coordinate.
* NULL means that we want to blit the whole
surface.
*/
primary->SetBlittingFlags(primary,DSBLIT_BLEND_ALPHACHANNEL);
DFBCHECK (primary->Blit (primary, myimage, NULL,
x, y));
/*
* Flip the front and back buffer, but wait for the
vertical retrace to
* avoid tearing.
*/
DFBCHECK (primary->Flip (primary, NULL,
DSFLIP_BLIT));
/*
* Release the image.
*/
logo->Release (logo);
}
Any help 100% appreciated.
Regards,
Andreas
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users