Mercurial > sdl-ios-xcode
view src/video/photon/SDL_phyuv_c.h @ 997:3bf4103b2b89
Date: Sat, 27 Nov 2004 13:35:43 +0100
From: "Martin Bickel"
Subject: [SDL] Patch: fixing uninitilized palette
while running Valgrind over my application I found the following
problem in SDL:
The function MapNto1 allocates SDL_Color colors[256] but does not
initialize it.
SDL_DitherColors is then called which initialized the r, g and b
component, but not the 'unused' component of each color.
When Map1to1 is called from MapNto1, it runs a memcmp on the colors,
which also evaluates the unused component and therefor returns
differences much more often than necessary.
So the 'unused' component of SDL_Color should be initialized. This
patch does this by calling memset for the whole array in MapNto1 .
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 30 Nov 2004 14:28:20 +0000 |
parents | b8d311d90021 |
children | c9b51268668f |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2004 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Sam Lantinga slouken@libsdl.org */ #ifndef __SDL_PH_YUV_H__ #define __SDL_PH_YUV_H__ #ifdef SAVE_RCSID static char rcsid = "@(#) $Id$"; #endif /* SAVE_RCSID */ /* This is the photon implementation of YUV video overlays */ #include "SDL_video.h" #include "SDL_ph_video.h" struct private_yuvhwdata { FRAMEDATA* CurrentFrameData; FRAMEDATA* FrameData0; FRAMEDATA* FrameData1; PgScalerProps_t props; PgScalerCaps_t caps; PgVideoChannel_t* channel; PhArea_t CurrentViewPort; PhPoint_t CurrentWindowPos; long format; int scaler_on; int current; long YStride; long VStride; long UStride; int ischromakey; long chromakey; int forcedredraw; unsigned long State; long flags; int locked; }; extern SDL_Overlay* ph_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, SDL_Surface* display); extern int ph_LockYUVOverlay(_THIS, SDL_Overlay* overlay); extern void ph_UnlockYUVOverlay(_THIS, SDL_Overlay* overlay); extern int ph_DisplayYUVOverlay(_THIS, SDL_Overlay* overlay, SDL_Rect* dstrect); extern void ph_FreeYUVOverlay(_THIS, SDL_Overlay* overlay); #endif /* __SDL_PH_YUV_H__ */