Mercurial > sdl-ios-xcode
view test/common.h @ 3707:d8308bc267bc
Adam Strzelecki to SDL
When graphic card has no GL_ARB_texture_rectangle YUV textures mapped with SDL_RenderCopy are stretched 2x horizontally, so only left half of texture is visible. This is due:
data->texw = (GLfloat) (texture->w) / texture_w;
data->texh = (GLfloat) texture->h / texture_h;
But afterwards texture_w /= 2 for YUV texture, but data->texw stays as it was before, while it should be multiplied 2x.
This bug can be seen in any program setting env variables: GL_APPLE_ycbcr_422=0 GL_EXT_texture_rectangle=0 GL_ARB_texture_rectangle=0
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 17 Feb 2010 04:42:52 +0000 |
parents | 64ce267332c6 |
children | 3ce59cbecaa3 |
line wrap: on
line source
/* A simple test program framework */ #define SDL_NO_COMPAT #include "SDL.h" #define DEFAULT_WINDOW_WIDTH 640 #define DEFAULT_WINDOW_HEIGHT 480 #define VERBOSE_VIDEO 0x00000001 #define VERBOSE_MODES 0x00000002 #define VERBOSE_RENDER 0x00000004 #define VERBOSE_EVENT 0x00000008 #define VERBOSE_AUDIO 0x00000010 typedef struct { /* SDL init flags */ char **argv; Uint32 flags; Uint32 verbose; /* Video info */ const char *videodriver; int display; const char *window_title; Uint32 window_flags; int window_x; int window_y; int window_w; int window_h; int depth; int refresh_rate; int num_windows; SDL_Window **windows; /* Renderer info */ const char *renderdriver; Uint32 render_flags; SDL_bool skip_renderer; /* Audio info */ const char *audiodriver; SDL_AudioSpec audiospec; /* GL settings */ int gl_red_size; int gl_green_size; int gl_blue_size; int gl_alpha_size; int gl_buffer_size; int gl_depth_size; int gl_stencil_size; int gl_double_buffer; int gl_accum_red_size; int gl_accum_green_size; int gl_accum_blue_size; int gl_accum_alpha_size; int gl_stereo; int gl_multisamplebuffers; int gl_multisamplesamples; int gl_retained_backing; int gl_accelerated; int gl_major_version; int gl_minor_version; } CommonState; extern CommonState *CommonCreateState(char **argv, Uint32 flags); extern int CommonArg(CommonState * state, int index); extern const char *CommonUsage(CommonState * state); extern SDL_bool CommonInit(CommonState * state); extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); extern void CommonQuit(CommonState * state); /* vi: set ts=4 sw=4 expandtab: */