Derek Leach
|
RE: RE: PgGetLayerCaps(): querying layer capabilities problem
|
Derek Leach
11/27/2009 9:09 AM
post42730
|
RE: RE: PgGetLayerCaps(): querying layer capabilities problem
Revision 224049 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 22 16:15:26 2009 UTC (5 months ago) by dleach
File length: 52681 byte(s)
Diff to previous 220622
New convert routine gf_ph_layer_format() to provide
correct Pg_LAYER_FORMAT_XXXX format to PgGetLayerCaps().
Also fills in new format_flags member with 16-bit packing
or 32-bit byte-order depending on the layer format.
PR:69322
CI:ckeating
Line 1323 of services/graphics/services.c calls a new routine:
if (gf_ph_layer_format(info.format,
&rdata.get_layer_caps_reply.caps.format,
&rdata.get_layer_caps_reply.caps.format_flags) == -1) {
ret_code = ESRCH;
break;
}
New routine is:
int
gf_ph_layer_format(gf_format_t f, unsigned int * format, unsigned long *
format_flags) {
uint32_t ret = 0;
switch (f) {
case GF_FORMAT_PAL8:
(*format) = Pg_LAYER_FORMAT_PAL8;
break;
case GF_FORMAT_PKLE_ARGB1555:
case GF_FORMAT_PKBE_ARGB1555:
case GF_FORMAT_PACK_ARGB1555:
(*format) = Pg_LAYER_FORMAT_ARGB1555;
break;
case GF_FORMAT_PKLE_RGB565:
case GF_FORMAT_PKBE_RGB565:
case GF_FORMAT_PACK_RGB565:
(*format) = Pg_LAYER_FORMAT_RGB565;
break;
case GF_FORMAT_BGR888:
(*format) = Pg_LAYER_FORMAT_RGB888;
break;
case GF_FORMAT_BGRA8888:
case GF_FORMAT_ARGB8888:
(*format) = Pg_LAYER_FORMAT_ARGB8888;
break;
case GF_FORMAT_PKLE_YUV_UYVY:
case GF_FORMAT_PKBE_YUV_UYVY:
case GF_FORMAT_PACK_YUV_UYVY:
(*format) = Pg_LAYER_FORMAT_UYVY;
break;
case GF_FORMAT_PKLE_YUV_YUY2:
case GF_FORMAT_PKBE_YUV_YUY2:
case GF_FORMAT_PACK_YUV_YUY2:
(*format) = Pg_LAYER_FORMAT_YUY2;
break;
case GF_FORMAT_PKLE_YUV_YVYU:
case GF_FORMAT_PKBE_YUV_YVYU:
case GF_FORMAT_PACK_YUV_YVYU:
(*format) = Pg_LAYER_FORMAT_YVYU;
break;
case GF_FORMAT_PKLE_YUV_V422:
case GF_FORMAT_PKBE_YUV_V422:
case GF_FORMAT_PACK_YUV_V422:
(*format) = Pg_LAYER_FORMAT_V422;
break;
case GF_FORMAT_PACK_YUV_NV12:
(*format) = Pg_LAYER_FORMAT_YUV_NV12;
break;
case GF_FORMAT_PACK_YUV_AYUV:
(*format) = Pg_LAYER_FORMAT_YUV_AYUV;
break;
case GF_FORMAT_PLANAR_YUV_YVU9:
(*format) = Pg_LAYER_FORMAT_YVU9;
break;
case GF_FORMAT_PLANAR_YUV_YV12:
(*format) = Pg_LAYER_FORMAT_YV12;
break;
case GF_FORMAT_PLANAR_YUV_420:
(*format) = Pg_LAYER_FORMAT_YUV420;
break;
default:
ret = -1;
break;
}
if (ret == 0) {
if (f & GF_FORMAT_PACK)
(*format_flags) = Pg_LAYER_FORMAT_PACK;
else if (f & GF_FORMAT_PKLE)
(*format_flags) = Pg_LAYER_FORMAT_PKLE;
else if (f & GF_FORMAT_PKBE)
(*format_flags) = Pg_LAYER_FORMAT_PKBE;
else if (f & GF_FORMAT_BO_BGRA)
(*format_flags) = Pg_LAYER_FORMAT_BO_BGRA;
else if (f & GF_FORMAT_BO_ARGB)
(*format_flags) = Pg_LAYER_FORMAT_BO_ARGB;
else
(*format_flags) = 0;
}
return ret;
}
-----Original Message-----
From: Mike Gorchak [mailto:community-noreply@qnx.com]
Sent: Friday, November 27, 2009 9:05 AM
To: photon-graphics
Subject: Re: RE: PgGetLayerCaps(): querying layer capabilities problem
Yes, 6.4.1.
_______________________________________________
Photon microGUI
http://community.qnx.com/sf/go/post42729
|
|
|