Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Unified Diff: src/gpu/gl/GrGpuGL.cpp

Issue 26342006: Move renderable config list to GrDrawTargetCaps (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: fix size_t/int comparison Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/gl/GrGpuGL.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/gl/GrGpuGL.cpp
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index d313167a82757b7802d70389d2976f83e842ccf9..cdf9be9547ab91432e9115500ecef344c9305b14 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -127,9 +127,6 @@ GrGpuGL::GrGpuGL(const GrGLContext& ctx, GrContext* context)
fHWBoundTextures.reset(ctx.info().caps()->maxFragmentTextureUnits());
fHWTexGenSettings.reset(ctx.info().caps()->maxFixedFunctionTextureCoords());
- fillInConfigRenderableTable();
-
-
GrGLClearErr(fGLContext.interface());
if (gPrintStartupSpew) {
@@ -177,65 +174,6 @@ GrGpuGL::~GrGpuGL() {
///////////////////////////////////////////////////////////////////////////////
-void GrGpuGL::fillInConfigRenderableTable() {
-
- // OpenGL < 3.0
- // no support for render targets unless the GL_ARB_framebuffer_object
- // extension is supported (in which case we get ALPHA, RED, RG, RGB,
- // RGBA (ALPHA8, RGBA4, RGBA8) for OpenGL > 1.1). Note that we
- // probably don't get R8 in this case.
-
- // OpenGL 3.0
- // base color renderable: ALPHA, RED, RG, RGB, and RGBA
- // sized derivatives: ALPHA8, R8, RGBA4, RGBA8
-
- // >= OpenGL 3.1
- // base color renderable: RED, RG, RGB, and RGBA
- // sized derivatives: R8, RGBA4, RGBA8
- // if the GL_ARB_compatibility extension is supported then we get back
- // support for GL_ALPHA and ALPHA8
-
- // GL_EXT_bgra adds BGRA render targets to any version
-
- // ES 2.0
- // color renderable: RGBA4, RGB5_A1, RGB565
- // GL_EXT_texture_rg adds support for R8 as a color render target
- // GL_OES_rgb8_rgba8 and/or GL_ARM_rgba8 adds support for RGBA8
- // GL_EXT_texture_format_BGRA8888 and/or GL_APPLE_texture_format_BGRA8888 added BGRA support
-
- // ES 3.0
- // Same as ES 2.0 except R8 and RGBA8 are supported without extensions (the functions called
- // below already account for this).
-
- if (kDesktop_GrGLBinding == this->glBinding()) {
- // Post 3.0 we will get R8
- // Prior to 3.0 we will get ALPHA8 (with GL_ARB_framebuffer_object)
- if (this->glVersion() >= GR_GL_VER(3,0) ||
- this->hasExtension("GL_ARB_framebuffer_object")) {
- fConfigRenderSupport[kAlpha_8_GrPixelConfig] = true;
- }
- } else {
- // On ES we can only hope for R8
- fConfigRenderSupport[kAlpha_8_GrPixelConfig] =
- this->glCaps().textureRedSupport();
- }
-
- if (kDesktop_GrGLBinding != this->glBinding()) {
- // only available in ES
- fConfigRenderSupport[kRGB_565_GrPixelConfig] = true;
- }
-
- // we no longer support 444 as a render target
- fConfigRenderSupport[kRGBA_4444_GrPixelConfig] = false;
-
- if (this->glCaps().rgba8RenderbufferSupport()) {
- fConfigRenderSupport[kRGBA_8888_GrPixelConfig] = true;
- }
-
- if (this->glCaps().bgraFormatSupport()) {
- fConfigRenderSupport[kBGRA_8888_GrPixelConfig] = true;
- }
-}
GrPixelConfig GrGpuGL::preferredReadPixelsConfig(GrPixelConfig readConfig,
GrPixelConfig surfaceConfig) const {
@@ -2460,8 +2398,8 @@ inline bool can_blit_framebuffer(const GrSurface* dst,
const GrSurface* src,
const GrGpuGL* gpu,
bool* wouldNeedTempFBO = NULL) {
- if (gpu->isConfigRenderable(dst->config()) &&
- gpu->isConfigRenderable(src->config()) &&
+ if (gpu->glCaps().isConfigRenderable(dst->config()) &&
+ gpu->glCaps().isConfigRenderable(src->config()) &&
gpu->glCaps().usesMSAARenderBuffers()) {
// ES3 doesn't allow framebuffer blits when the src has MSAA and the configs don't match
// or the rects are not the same (not just the same size but have the same edges).
@@ -2501,7 +2439,7 @@ inline bool can_copy_texsubimage(const GrSurface* dst,
if (NULL != srcRT && srcRT->renderFBOID() != srcRT->textureFBOID()) {
return false;
}
- if (gpu->isConfigRenderable(src->config()) && NULL != dst->asTexture() &&
+ if (gpu->glCaps().isConfigRenderable(src->config()) && NULL != dst->asTexture() &&
dst->origin() == src->origin() && kIndex_8_GrPixelConfig != src->config()) {
if (NULL != wouldNeedTempFBO) {
*wouldNeedTempFBO = NULL == src->asRenderTarget();
« no previous file with comments | « src/gpu/gl/GrGpuGL.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698