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 0
52#endif
53
54#endif
55