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