blob: 432dfb4a078ebff0a5951143ffb8d7e847340670 [file] [log] [blame]
[email protected]1bee3982009-12-17 23:15:281// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
[email protected]96449d2c2009-11-25 00:01:324
5// This file includes all the necessary GL headers and implements some useful
6// utilities.
7
8#ifndef GPU_COMMAND_BUFFER_SERVICE_GL_UTILS_H_
9#define GPU_COMMAND_BUFFER_SERVICE_GL_UTILS_H_
10
[email protected]872fe722010-02-02 16:03:3311#include <build/build_config.h>
12
[email protected]69d80ae2009-12-23 08:57:4213#if defined(UNIT_TEST)
[email protected]b5f1aa032010-03-11 00:07:5914 #include "gpu/command_buffer/service/gl_mock.h"
[email protected]69d80ae2009-12-23 08:57:4215#else
[email protected]b5f1aa032010-03-11 00:07:5916 #if defined(GLES2_GPU_SERVICE_BACKEND_NATIVE_GLES2)
17 #include <GLES2/gl2.h> // NOLINT
[email protected]0bfd9882010-02-05 23:02:2518
[email protected]b5f1aa032010-03-11 00:07:5919 #define glClearDepth glClearDepthf
20 #define glDepthRange glDepthRangef
21
22 // Buffer Objects
23 #define glBindBufferARB glBindBuffer
24 #define glBufferDataARB glBufferData
25 #define glBufferSubDataARB glBufferSubData
26 #define glDeleteBuffersARB glDeleteBuffers
27 #define glGenBuffersARB glGenBuffers
28
29 // Framebuffer Objects
30 #define glBindFramebufferEXT glBindFramebuffer
31 #define glBindRenderbufferEXT glBindRenderbuffer
32 #define glCheckFramebufferStatusEXT glCheckFramebufferStatus
33 #define glDeleteFramebuffersEXT glDeleteFramebuffers
34 #define glDeleteRenderbuffersEXT glDeleteRenderbuffers
35 #define glFramebufferRenderbufferEXT glFramebufferRenderbuffer
36 #define glFramebufferTexture2DEXT glFramebufferTexture2D
37 #define glGenFramebuffersEXT glGenFramebuffers
38 #define glGenRenderbuffersEXT glGenRenderbuffers
39 #define glGetFramebufferAttachmentParameterivEXT \
40 glGetFramebufferAttachmentParameteriv
41 #define glGetRenderbufferParameterivEXT glGetRenderbufferParameteriv
42 #define glIsFramebufferEXT glIsFramebuffer
43 #define glIsRenderbufferEXT glIsFramebuffer
44 #define glRenderbufferStorageEXT glRenderbufferStorage
45
46 // Texture Objects
47 #define glGenerateMipmapEXT glGenerateMipmap
48
49 #else // !GLES2_GPU_SERVICE_BACKEND_NATIVE_GLES2
50 #include <GL/glew.h> // NOLINT
51 #if defined(OS_WIN)
52 #include <GL/wglew.h> // NOLINT
53 #elif defined(OS_LINUX)
54 #include <GL/glxew.h> // NOLINT
55 #endif // OS_WIN
56
57 // GLES2 defines not part of Desktop GL
58 // Shader Precision-Specified Types
59 #define GL_LOW_FLOAT 0x8DF0
60 #define GL_MEDIUM_FLOAT 0x8DF1
61 #define GL_HIGH_FLOAT 0x8DF2
62 #define GL_LOW_INT 0x8DF3
63 #define GL_MEDIUM_INT 0x8DF4
64 #define GL_HIGH_INT 0x8DF5
65
66 #endif // GLES2_GPU_SERVICE_BACKEND_NATIVE_GLES2
[email protected]0bfd9882010-02-05 23:02:2567
[email protected]872fe722010-02-02 16:03:3368#endif // UNIT_TEST
[email protected]96449d2c2009-11-25 00:01:3269
[email protected]c3d7d602009-12-10 22:42:0070#define GL_GLEXT_PROTOTYPES 1
[email protected]96449d2c2009-11-25 00:01:3271
72// Define this for extra GL error debugging (slower).
73// #define GL_ERROR_DEBUGGING
74#ifdef GL_ERROR_DEBUGGING
75#define CHECK_GL_ERROR() do { \
76 GLenum gl_error = glGetError(); \
77 LOG_IF(ERROR, gl_error != GL_NO_ERROR) << "GL Error :" << gl_error; \
78 } while (0)
79#else // GL_ERROR_DEBUGGING
80#define CHECK_GL_ERROR() void(0)
81#endif // GL_ERROR_DEBUGGING
82
83#endif // GPU_COMMAND_BUFFER_SERVICE_GL_UTILS_H_