From 0fa8c80ca0a6d2d89b5c13e87c01a0195b17cf8f Mon Sep 17 00:00:00 2001 From: Sam Lantinga <slouken@libsdl.org> Date: Sat, 6 Dec 2008 18:37:06 +0000 Subject: [PATCH] The YCbCr texture extension works now that bytes_per_pixel() returns the correct value for YUV textures. Yay! I'm still cheering for Ryan's pixel shader instead, since once it works different shaders can handle all the YUV formats. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403305 --- src/video/SDL_renderer_gl.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_renderer_gl.c b/src/video/SDL_renderer_gl.c index 587431f2..6749c3e1 100644 --- a/src/video/SDL_renderer_gl.c +++ b/src/video/SDL_renderer_gl.c @@ -660,6 +660,26 @@ GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) format = GL_BGRA; type = GL_UNSIGNED_INT_2_10_10_10_REV; break; +#if 0 /* Ryan's pixel shader code should be better, once it works. :) */ + case SDL_PIXELFORMAT_UYVY: +// if (renderdata->GL_MESA_ycbcr_texture) { +// internalFormat = 3; +// format = GL_YCBCR_MESA; +// type = GL_UNSIGNED_SHORT_8_8_MESA; +// } else if (renderdata->GL_APPLE_ycbcr_422) { + internalFormat = GL_RGB; + format = GL_YCBCR_422_APPLE; +#if SDL_BYTEORDER == SDL_LIL_ENDIAN + type = GL_UNSIGNED_SHORT_8_8_APPLE; +#else + type = GL_UNSIGNED_SHORT_8_8_REV_APPLE; +#endif +// } else { +// SDL_SetError("Unsupported texture format"); +// return -1; +// } + break; +#else case SDL_PIXELFORMAT_UYVY: if (renderdata->GL_ARB_fragment_program_supported) { if (renderdata->fragment_program_UYVY == 0) { @@ -680,6 +700,7 @@ GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture) return -1; } break; +#endif default: SDL_SetError("Unsupported texture format"); return -1; @@ -867,7 +888,7 @@ SetupTextureUpdate(GL_RenderData * renderdata, SDL_Texture * texture, } renderdata->glPixelStorei(GL_UNPACK_ALIGNMENT, 1); renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, - (pitch / bytes_per_pixel(texture->format) / ((GL_TextureData *)texture->driverdata)->HACK_RYAN_FIXME)); + (pitch / bytes_per_pixel(texture->format)) / ((GL_TextureData *)texture->driverdata)->HACK_RYAN_FIXME); } static int -- 2.18.1