1 2 /* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 #ifndef GrGLConfig_chrome_DEFINED 9 #define GrGLConfig_chrome_DEFINED 10 11 // glGetError() forces a sync with gpu process on chrome 12 #define GR_GL_CHECK_ERROR_START 0 13 14 #if defined(SK_BUILD_FOR_WIN32) 15 // For RGBA teximage/readpixels ANGLE will sw-convert to/from BGRA. 16 #define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 1 17 18 // ANGLE can go faster if the entire fbo is read rather than a subrect 19 #define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 1 20 #else 21 #define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 0 22 #define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 0 23 #endif 24 25 // cmd buffer allocates memory and memsets it to zero when it sees glBufferData 26 // with NULL. 27 #define GR_GL_USE_BUFFER_DATA_NULL_HINT 0 28 29 // chrome uses this to set the context on each GL call. 30 #define GR_GL_PER_GL_FUNC_CALLBACK 1 31 32 // Check error is even more expensive in chrome (cmd buffer flush). The 33 // compositor also doesn't check its allocations. 34 #define GR_GL_CHECK_ALLOC_WITH_GET_ERROR 0 35 36 // CheckFramebufferStatus in chrome synchronizes the gpu and renderer processes. 37 #define GR_GL_CHECK_FBO_STATUS_ONCE_PER_FORMAT 1 38 39 // Non-VBO vertices and indices are not allowed in Chromium. 40 #define GR_GL_MUST_USE_VBO 1 41 42 // Use updated Khronos signature for glShaderSource 43 // (const char* const instead of char**). 44 #define GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE 1 45 46 #if !defined(GR_GL_IGNORE_ES3_MSAA) 47 #define GR_GL_IGNORE_ES3_MSAA 1 48 #endif 49 50 #endif 51