# HG changeset patch # User Sam Lantinga # Date 1186972739 0 # Node ID e57a883ffa86da3859fdb3ef4615b1762e173a4a # Parent 741afd8402cf547acd373de14986cd820e6bdab1 Advertise the most efficient format for the screen. Of course SDL code needs to be fixed to handle framebuffers with alpha... diff -r 741afd8402cf -r e57a883ffa86 src/video/SDL_renderer_gl.c --- a/src/video/SDL_renderer_gl.c Sun Aug 12 18:53:51 2007 +0000 +++ b/src/video/SDL_renderer_gl.c Mon Aug 13 02:38:59 2007 +0000 @@ -457,15 +457,9 @@ type = GL_UNSIGNED_BYTE; break; case SDL_PIXELFORMAT_RGB888: -#ifdef __MACOSX__ - internalFormat = GL_RGBA; - format = GL_BGRA; - type = GL_UNSIGNED_INT_8_8_8_8_REV; -#else internalFormat = GL_RGB8; format = GL_BGRA; type = GL_UNSIGNED_BYTE; -#endif break; case SDL_PIXELFORMAT_BGR24: internalFormat = GL_RGB8; @@ -574,13 +568,14 @@ renderdata->glTexParameteri(data->type, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_CACHED_APPLE); } - if (data->pixels && internalFormat == GL_RGBA && format == GL_BGRA - && type == GL_UNSIGNED_INT_8_8_8_8_REV && data->pixels) { + if (texture->access == SDL_TEXTUREACCESS_STREAMING && texture->format == SDL_PIXELFORMAT_ARGB8888 ) { + /* if (renderdata->glTextureRangeAPPLE) { renderdata->glTextureRangeAPPLE(data->type, texture->h * data->pitch, data->pixels); } + */ renderdata->glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_TRUE); renderdata->glTexImage2D(data->type, 0, internalFormat, texture_w, texture_h, 0, format, type, data->pixels); @@ -806,19 +801,6 @@ int bpp = SDL_BYTESPERPIXEL(texture->format); int pitch = texturedata->pitch; -#ifdef __MACOSX__ - if (texture->format == SDL_PIXELFORMAT_RGB888) { - int i; - Uint8 *p = (Uint8 *) texturedata->pixels; -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - p += 3; -#endif - for (i = texture->h * pitch / 4; i--;) { - *p = 0xff; - p += 4; - } - } -#endif SetupTextureUpdate(data, texture, pitch); data->glBindTexture(texturedata->type, texturedata->texture); for (dirty = texturedata->dirty.list; dirty; dirty = dirty->next) { diff -r 741afd8402cf -r e57a883ffa86 src/video/cocoa/SDL_cocoamodes.m --- a/src/video/cocoa/SDL_cocoamodes.m Sun Aug 12 18:53:51 2007 +0000 +++ b/src/video/cocoa/SDL_cocoamodes.m Mon Aug 13 02:38:59 2007 +0000 @@ -118,10 +118,10 @@ mode->format = SDL_PIXELFORMAT_INDEX8; break; case 16: - mode->format = SDL_PIXELFORMAT_RGB555; + mode->format = SDL_PIXELFORMAT_ARGB1555; break; case 32: - mode->format = SDL_PIXELFORMAT_RGB888; + mode->format = SDL_PIXELFORMAT_ARGB8888; break; } mode->w = width;