|
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 // ANGLE creates a temp VB for vertex attributes not specified per-vertex. |
|
16 #define GR_GL_NO_CONSTANT_ATTRIBUTES 1 |
|
17 |
|
18 // For RGBA teximage/readpixels ANGLE will sw-convert to/from BGRA. |
|
19 #define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 1 |
|
20 |
|
21 // ANGLE can go faster if the entire fbo is read rather than a subrect |
|
22 #define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 1 |
|
23 #else |
|
24 #define GR_GL_NO_CONSTANT_ATTRIBUTES 0 |
|
25 #define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 0 |
|
26 #define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 0 |
|
27 #endif |
|
28 |
|
29 // cmd buffer allocates memory and memsets it to zero when it sees glBufferData |
|
30 // with NULL. |
|
31 #define GR_GL_USE_BUFFER_DATA_NULL_HINT 0 |
|
32 |
|
33 // chrome uses this to set the context on each GL call. |
|
34 #define GR_GL_PER_GL_FUNC_CALLBACK 1 |
|
35 |
|
36 // Check error is even more expensive in chrome (cmd buffer flush). The |
|
37 // compositor also doesn't check its allocations. |
|
38 #define GR_GL_CHECK_ALLOC_WITH_GET_ERROR 0 |
|
39 |
|
40 // CheckFramebufferStatus in chrome synchronizes the gpu and renderer processes. |
|
41 #define GR_GL_CHECK_FBO_STATUS_ONCE_PER_FORMAT 1 |
|
42 |
|
43 // Non-VBO vertices and indices are not allowed in Chromium. |
|
44 #define GR_GL_MUST_USE_VBO 1 |
|
45 |
|
46 // Use updated Khronos signature for glShaderSource |
|
47 // (const char* const instead of char**). |
|
48 #define GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE 1 |
|
49 |
|
50 #if !defined(GR_GL_IGNORE_ES3_MSAA) |
|
51 #define GR_GL_IGNORE_ES3_MSAA 1 |
|
52 #endif |
|
53 |
|
54 #endif |