git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22249
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// return the kind of transparency needed for this image assuming that it does
// have transparent pixels, i.e. either Transparency_Alpha or Transparency_Mask
static Transparency
// return the kind of transparency needed for this image assuming that it does
// have transparent pixels, i.e. either Transparency_Alpha or Transparency_Mask
static Transparency
-CheckTransparency(const unsigned char *ptr,
+CheckTransparency(unsigned char **lines,
png_uint_32 x, png_uint_32 y, png_uint_32 w, png_uint_32 h,
size_t numColBytes);
png_uint_32 x, png_uint_32 y, png_uint_32 w, png_uint_32 h,
size_t numColBytes);
// need a full blown alpha channel in wxImage
//
// parameters:
// need a full blown alpha channel in wxImage
//
// parameters:
-// ptr the start of the data to examine
// x, y starting position
// w, h size of the image
// numColBytes number of colour bytes (1 for grey scale, 3 for RGB)
// (NB: alpha always follows the colour bytes)
Transparency
// x, y starting position
// w, h size of the image
// numColBytes number of colour bytes (1 for grey scale, 3 for RGB)
// (NB: alpha always follows the colour bytes)
Transparency
-CheckTransparency(const unsigned char *ptr,
+CheckTransparency(unsigned char **lines,
png_uint_32 x, png_uint_32 y, png_uint_32 w, png_uint_32 h,
size_t numColBytes)
{
png_uint_32 x, png_uint_32 y, png_uint_32 w, png_uint_32 h,
size_t numColBytes)
{
// suppose that a mask will suffice and check all the remaining alpha
// values to see if it does
// suppose that a mask will suffice and check all the remaining alpha
// values to see if it does
- unsigned const char *ptr2 = ptr;
- for ( png_uint_32 y2 = y; y2 < h; y2++ )
+ unsigned const char *ptr = lines[y] + x;
+
for ( png_uint_32 x2 = x; x2 < w; x2++ )
{
// skip the grey or colour byte(s)
for ( png_uint_32 x2 = x; x2 < w; x2++ )
{
// skip the grey or colour byte(s)
- unsigned char a2 = *ptr2++;
+ unsigned char a2 = *ptr++;
if ( !IsTransparent(a2) && !IsOpaque(a2) )
{
if ( !IsTransparent(a2) && !IsOpaque(a2) )
{
// only, otherwisewe need the latter
transparency = CheckTransparency
(
// only, otherwisewe need the latter
transparency = CheckTransparency
(
{
transparency = CheckTransparency
(
{
transparency = CheckTransparency
(