Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / gpu / skia_bindings / gl_bindings_skia_cmd_buffer.cc
1 // Copyright 2013 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.
4
5 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h"
6
7 #ifndef GL_GLEXT_PROTOTYPES
8 #define GL_GLEXT_PROTOTYPES
9 #endif
10 #include "gpu/GLES2/gl2extchromium.h"
11 #include "third_party/khronos/GLES2/gl2.h"
12 #include "third_party/khronos/GLES2/gl2ext.h"
13 #include "third_party/skia/include/gpu/gl/GrGLInterface.h"
14
15 namespace skia_bindings {
16
17 GrGLInterface* CreateCommandBufferSkiaGLBinding() {
18   GrGLInterface* interface = new GrGLInterface;
19   interface->fStandard = kGLES_GrGLStandard;
20   interface->fExtensions.init(kGLES_GrGLStandard,
21                               glGetString,
22                               NULL,
23                               glGetIntegerv);
24
25   GrGLInterface::Functions* functions = &interface->fFunctions;
26   functions->fActiveTexture = glActiveTexture;
27   functions->fAttachShader = glAttachShader;
28   functions->fBindAttribLocation = glBindAttribLocation;
29   functions->fBindBuffer = glBindBuffer;
30   functions->fBindTexture = glBindTexture;
31   functions->fBindVertexArray = glBindVertexArrayOES;
32   functions->fBlendColor = glBlendColor;
33   functions->fBlendFunc = glBlendFunc;
34   functions->fBufferData = glBufferData;
35   functions->fBufferSubData = glBufferSubData;
36   functions->fClear = glClear;
37   functions->fClearColor = glClearColor;
38   functions->fClearStencil = glClearStencil;
39   functions->fColorMask = glColorMask;
40   functions->fCompileShader = glCompileShader;
41   functions->fCompressedTexImage2D = glCompressedTexImage2D;
42   functions->fCopyTexSubImage2D = glCopyTexSubImage2D;
43   functions->fCreateProgram = glCreateProgram;
44   functions->fCreateShader = glCreateShader;
45   functions->fCullFace = glCullFace;
46   functions->fDeleteBuffers = glDeleteBuffers;
47   functions->fDeleteProgram = glDeleteProgram;
48   functions->fDeleteShader = glDeleteShader;
49   functions->fDeleteTextures = glDeleteTextures;
50   functions->fDeleteVertexArrays = glDeleteVertexArraysOES;
51   functions->fDepthMask = glDepthMask;
52   functions->fDisable = glDisable;
53   functions->fDisableVertexAttribArray = glDisableVertexAttribArray;
54   functions->fDiscardFramebuffer = glDiscardFramebufferEXT;
55   functions->fDrawArrays = glDrawArrays;
56   functions->fDrawElements = glDrawElements;
57   functions->fEnable = glEnable;
58   functions->fEnableVertexAttribArray = glEnableVertexAttribArray;
59   functions->fFinish = glFinish;
60   functions->fFlush = glFlush;
61   functions->fFrontFace = glFrontFace;
62   functions->fGenBuffers = glGenBuffers;
63   functions->fGenTextures = glGenTextures;
64   functions->fGenVertexArrays = glGenVertexArraysOES;
65   functions->fGetBufferParameteriv = glGetBufferParameteriv;
66   functions->fGetError = glGetError;
67   functions->fGetIntegerv = glGetIntegerv;
68   functions->fGetProgramInfoLog = glGetProgramInfoLog;
69   functions->fGetProgramiv = glGetProgramiv;
70   functions->fGetShaderInfoLog = glGetShaderInfoLog;
71   functions->fGetShaderiv = glGetShaderiv;
72   functions->fGetString = glGetString;
73   functions->fGetUniformLocation = glGetUniformLocation;
74   functions->fInsertEventMarker = glInsertEventMarkerEXT;
75   functions->fLineWidth = glLineWidth;
76   functions->fLinkProgram = glLinkProgram;
77   functions->fMapBufferSubData = glMapBufferSubDataCHROMIUM;
78   functions->fMapTexSubImage2D = glMapTexSubImage2DCHROMIUM;
79   functions->fPixelStorei = glPixelStorei;
80   functions->fPopGroupMarker = glPopGroupMarkerEXT;
81   functions->fPushGroupMarker = glPushGroupMarkerEXT;
82   functions->fReadPixels = glReadPixels;
83   functions->fScissor = glScissor;
84   functions->fShaderSource = glShaderSource;
85   functions->fStencilFunc = glStencilFunc;
86   functions->fStencilFuncSeparate = glStencilFuncSeparate;
87   functions->fStencilMask = glStencilMask;
88   functions->fStencilMaskSeparate = glStencilMaskSeparate;
89   functions->fStencilOp = glStencilOp;
90   functions->fStencilOpSeparate = glStencilOpSeparate;
91   functions->fTexImage2D = glTexImage2D;
92   functions->fTexParameteri = glTexParameteri;
93   functions->fTexParameteriv = glTexParameteriv;
94   functions->fTexStorage2D = glTexStorage2DEXT;
95   functions->fTexSubImage2D = glTexSubImage2D;
96   functions->fUniform1f = glUniform1f;
97   functions->fUniform1i = glUniform1i;
98   functions->fUniform1fv = glUniform1fv;
99   functions->fUniform1iv = glUniform1iv;
100   functions->fUniform2f = glUniform2f;
101   functions->fUniform2i = glUniform2i;
102   functions->fUniform2fv = glUniform2fv;
103   functions->fUniform2iv = glUniform2iv;
104   functions->fUniform3f = glUniform3f;
105   functions->fUniform3i = glUniform3i;
106   functions->fUniform3fv = glUniform3fv;
107   functions->fUniform3iv = glUniform3iv;
108   functions->fUniform4f = glUniform4f;
109   functions->fUniform4i = glUniform4i;
110   functions->fUniform4fv = glUniform4fv;
111   functions->fUniform4iv = glUniform4iv;
112   functions->fUniformMatrix2fv = glUniformMatrix2fv;
113   functions->fUniformMatrix3fv = glUniformMatrix3fv;
114   functions->fUniformMatrix4fv = glUniformMatrix4fv;
115   functions->fUnmapBufferSubData = glUnmapBufferSubDataCHROMIUM;
116   functions->fUnmapTexSubImage2D = glUnmapTexSubImage2DCHROMIUM;
117   functions->fUseProgram = glUseProgram;
118   functions->fVertexAttrib4fv = glVertexAttrib4fv;
119   functions->fVertexAttribPointer = glVertexAttribPointer;
120   functions->fViewport = glViewport;
121   functions->fBindFramebuffer = glBindFramebuffer;
122   functions->fBindRenderbuffer = glBindRenderbuffer;
123   functions->fCheckFramebufferStatus = glCheckFramebufferStatus;
124   functions->fDeleteFramebuffers = glDeleteFramebuffers;
125   functions->fDeleteRenderbuffers = glDeleteRenderbuffers;
126   functions->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
127   functions->fFramebufferTexture2D = glFramebufferTexture2D;
128   functions->fFramebufferTexture2DMultisample =
129     glFramebufferTexture2DMultisampleEXT;
130   functions->fGenFramebuffers = glGenFramebuffers;
131   functions->fGenRenderbuffers = glGenRenderbuffers;
132   functions->fGetFramebufferAttachmentParameteriv =
133     glGetFramebufferAttachmentParameteriv;
134   functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
135   functions->fRenderbufferStorage = glRenderbufferStorage;
136   functions->fRenderbufferStorageMultisample =
137     glRenderbufferStorageMultisampleCHROMIUM;
138   functions->fRenderbufferStorageMultisampleES2EXT =
139     glRenderbufferStorageMultisampleEXT;
140   functions->fBindUniformLocation = glBindUniformLocationCHROMIUM;
141   functions->fBlitFramebuffer = glBlitFramebufferCHROMIUM;
142   functions->fGenerateMipmap = glGenerateMipmap;
143
144   return interface;
145 }
146
147 }  // namespace skia