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