Fix BGRA on ES Issue 109.
git-svn-id: http://skia.googlecode.com/svn/trunk@702 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
1572b071a7
commit
ed3a06804f
@ -182,8 +182,8 @@
|
||||
// Windows where we match GDI's order).
|
||||
#ifndef GR_GL_32BPP_COLOR_FORMAT
|
||||
#if GR_WIN32_BUILD
|
||||
#define GR_GL_32BPP_COLOR_FORMAT GL_BGRA
|
||||
#else
|
||||
#define GR_GL_32BPP_COLOR_FORMAT GR_BGRA //use GR prefix because this
|
||||
#else //may be an extension.
|
||||
#define GR_GL_32BPP_COLOR_FORMAT GL_RGBA
|
||||
#endif
|
||||
#endif
|
||||
@ -247,6 +247,10 @@ struct GrGLExts {
|
||||
};
|
||||
}
|
||||
|
||||
// BGRA format
|
||||
|
||||
#define GR_BGRA 0x80E1
|
||||
|
||||
// FBO
|
||||
#define GR_FRAMEBUFFER 0x8D40
|
||||
#define GR_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
|
@ -33,7 +33,9 @@
|
||||
/*
|
||||
* The default 32bit pixel config for texture upload is GL_RGBA on all
|
||||
* platforms except on Windows where it is GL_BGRA. If your bitmaps map to a
|
||||
* different GL enum, specify that with this define.
|
||||
* different GL enum, specify that with this define. For portability use
|
||||
* GR_BGRA rather than GL_BGRA for platforms where this format is an
|
||||
* extension.
|
||||
*/
|
||||
//#define GR_GL_32BPP_COLOR_FORMAT GL_RGBA
|
||||
|
||||
|
@ -299,6 +299,11 @@ GrGpuGL::GrGpuGL() {
|
||||
GrPrintf("RGBA Renderbuffer: %s\n", (fRGBA8Renderbuffer ? "YES" : "NO"));
|
||||
}
|
||||
|
||||
#if GR_SUPPORT_GLES
|
||||
if (GR_GL_32BPP_COLOR_FORMAT == GR_BGRA) {
|
||||
GrAssert(has_gl_extension("GL_EXT_texture_format_BGRA8888"));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if GR_SUPPORT_GLDESKTOP
|
||||
fBufferLockSupport = true; // we require VBO support and the desktop VBO
|
||||
@ -1675,7 +1680,13 @@ bool GrGpuGL::canBeTexture(GrTexture::PixelConfig config,
|
||||
case GrTexture::kRGBA_8888_PixelConfig:
|
||||
case GrTexture::kRGBX_8888_PixelConfig: // todo: can we tell it our X?
|
||||
*format = GR_GL_32BPP_COLOR_FORMAT;
|
||||
*internalFormat = GL_RGBA;
|
||||
#if GR_SUPPORT_GLES
|
||||
// according to GL_EXT_texture_format_BGRA8888 the *internal*
|
||||
// format for a BGRA is BGRA not RGBA (as on desktop)
|
||||
*internalFormat = GR_GL_32BPP_COLOR_FORMAT;
|
||||
#else
|
||||
*internalFormat = GL_RGBA;
|
||||
#endif
|
||||
*type = GL_UNSIGNED_BYTE;
|
||||
break;
|
||||
case GrTexture::kRGB_565_PixelConfig:
|
||||
|
Loading…
Reference in New Issue
Block a user