OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 | |
6 #include "ui/gfx/gl/gl_bindings_skia_in_process.h" | |
7 | |
8 #include "base/logging.h" | |
9 #include "third_party/skia/include/gpu/gl/GrGLInterface.h" | |
10 #include "ui/gfx/gl/gl_bindings.h" | |
11 #include "ui/gfx/gl/gl_implementation.h" | |
12 | |
13 namespace { | |
14 | |
15 extern "C" { | |
16 // The following stub functions are required because the glXXX routines exported | |
17 // via gl_bindings.h use call-type GL_BINDING_CALL, which on Windows is stdcall. | |
18 // Skia has been built such that its GrGLInterface GL pointers are __cdecl. | |
19 | |
20 GLvoid StubGLActiveTexture(GLenum texture) { | |
21 glActiveTexture(texture); | |
22 } | |
23 | |
24 GLvoid StubGLAttachShader(GLuint program, GLuint shader) { | |
25 glAttachShader(program, shader); | |
26 } | |
27 | |
28 GLvoid StubGLBeginQuery(GLenum target, GLuint id) { | |
29 glBeginQuery(target, id); | |
30 } | |
31 | |
32 GLvoid StubGLBindAttribLocation(GLuint program, GLuint index, | |
33 const char* name) { | |
34 glBindAttribLocation(program, index, name); | |
35 } | |
36 | |
37 GLvoid StubGLBindBuffer(GLenum target, GLuint buffer) { | |
38 glBindBuffer(target, buffer); | |
39 } | |
40 | |
41 GLvoid StubGLBindFragDataLocation(GLuint program, GLuint colorNumber, | |
42 const GLchar * name) { | |
43 glBindFragDataLocation(program, colorNumber, name); | |
44 } | |
45 | |
46 GLvoid StubGLBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, | |
47 GLuint index, const GLchar * name) { | |
48 glBindFragDataLocationIndexed(program, colorNumber, index, name); | |
49 } | |
50 | |
51 GLvoid StubGLBindFramebuffer(GLenum target, GLuint framebuffer) { | |
52 glBindFramebufferEXT(target, framebuffer); | |
53 } | |
54 | |
55 GLvoid StubGLBindRenderbuffer(GLenum target, GLuint renderbuffer) { | |
56 glBindRenderbufferEXT(target, renderbuffer); | |
57 } | |
58 | |
59 GLvoid StubGLBindTexture(GLenum target, GLuint texture) { | |
60 glBindTexture(target, texture); | |
61 } | |
62 | |
63 GLvoid StubGLBlendColor(GLclampf red, GLclampf green, GLclampf blue, | |
64 GLclampf alpha) { | |
65 glBlendColor(red, green, blue, alpha); | |
66 } | |
67 | |
68 GLvoid StubGLBlendFunc(GLenum sfactor, GLenum dfactor) { | |
69 glBlendFunc(sfactor, dfactor); | |
70 } | |
71 | |
72 GLvoid StubGLBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, | |
73 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, | |
74 GLbitfield mask, GLenum filter) { | |
75 glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, | |
76 mask, filter); | |
77 } | |
78 | |
79 GLvoid StubGLBufferData(GLenum target, GLsizeiptr size, const void* data, | |
80 GLenum usage) { | |
81 glBufferData(target, size, data, usage); | |
82 } | |
83 | |
84 GLvoid StubGLBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, | |
85 const void* data) { | |
86 glBufferSubData(target, offset, size, data); | |
87 } | |
88 | |
89 GLenum StubGLCheckFramebufferStatus(GLenum target) { | |
90 return glCheckFramebufferStatusEXT(target); | |
91 } | |
92 | |
93 GLvoid StubGLClear(GLbitfield mask) { | |
94 glClear(mask); | |
95 } | |
96 | |
97 GLvoid StubGLClearColor(GLclampf red, GLclampf green, GLclampf blue, | |
98 GLclampf alpha) { | |
99 glClearColor(red, green, blue, alpha); | |
100 } | |
101 | |
102 GLvoid StubGLClearStencil(GLint s) { | |
103 glClearStencil(s); | |
104 } | |
105 | |
106 GLvoid StubGLColorMask(GLboolean red, GLboolean green, GLboolean blue, | |
107 GLboolean alpha) { | |
108 glColorMask(red, green, blue, alpha); | |
109 } | |
110 | |
111 GLvoid StubGLCompileShader(GLuint shader) { | |
112 glCompileShader(shader); | |
113 } | |
114 | |
115 GLvoid StubGLCompressedTexImage2D(GLenum target, GLint level, | |
116 GLenum internalformat, GLsizei width, | |
117 GLsizei height, GLint border, | |
118 GLsizei imageSize, const void* data) { | |
119 glCompressedTexImage2D(target, level, internalformat, width, height, border, | |
120 imageSize, data); | |
121 } | |
122 | |
123 GLuint StubGLCreateProgram(void) { | |
124 return glCreateProgram(); | |
125 } | |
126 | |
127 GLuint StubGLCreateShader(GLenum type) { | |
128 return glCreateShader(type); | |
129 } | |
130 | |
131 GLvoid StubGLCullFace(GLenum mode) { | |
132 glCullFace(mode); | |
133 } | |
134 | |
135 GLvoid StubGLDeleteBuffers(GLsizei n, const GLuint* buffers) { | |
136 glDeleteBuffersARB(n, buffers); | |
137 } | |
138 | |
139 GLvoid StubGLDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { | |
140 glDeleteFramebuffersEXT(n, framebuffers); | |
141 } | |
142 | |
143 GLvoid StubGLDeleteQueries(GLsizei n, const GLuint* ids) { | |
144 glDeleteQueries(n, ids); | |
145 } | |
146 | |
147 GLvoid StubGLDeleteProgram(GLuint program) { | |
148 glDeleteProgram(program); | |
149 } | |
150 | |
151 GLvoid StubGLDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { | |
152 glDeleteRenderbuffersEXT(n, renderbuffers); | |
153 } | |
154 | |
155 GLvoid StubGLDeleteShader(GLuint shader) { | |
156 glDeleteShader(shader); | |
157 } | |
158 | |
159 GLvoid StubGLDeleteTextures(GLsizei n, const GLuint* textures) { | |
160 glDeleteTextures(n, textures); | |
161 } | |
162 | |
163 GLvoid StubGLDepthMask(GLboolean flag) { | |
164 glDepthMask(flag); | |
165 } | |
166 | |
167 GLvoid StubGLDisable(GLenum cap) { | |
168 glDisable(cap); | |
169 } | |
170 | |
171 GLvoid StubGLDisableVertexAttribArray(GLuint index) { | |
172 glDisableVertexAttribArray(index); | |
173 } | |
174 | |
175 GLvoid StubGLDrawArrays(GLenum mode, GLint first, GLsizei count) { | |
176 glDrawArrays(mode, first, count); | |
177 } | |
178 | |
179 GLvoid StubGLDrawBuffer(GLenum mode) { | |
180 glDrawBuffer(mode); | |
181 } | |
182 | |
183 GLvoid StubGLDrawBuffers(GLsizei n, const GLenum* bufs) { | |
184 glDrawBuffersARB(n, bufs); | |
185 } | |
186 | |
187 GLvoid StubGLDrawElements(GLenum mode, GLsizei count, GLenum type, | |
188 const void* indices) { | |
189 glDrawElements(mode, count, type, indices); | |
190 } | |
191 | |
192 GLvoid StubGLEnable(GLenum cap) { | |
193 glEnable(cap); | |
194 } | |
195 | |
196 GLvoid StubGLEnableVertexAttribArray(GLuint index) { | |
197 glEnableVertexAttribArray(index); | |
198 } | |
199 | |
200 GLvoid StubGLEndQuery(GLenum target) { | |
201 glEndQuery(target); | |
202 } | |
203 | |
204 GLvoid StubGLFinish() { | |
205 glFinish(); | |
206 } | |
207 | |
208 GLvoid StubGLFlush() { | |
209 glFlush(); | |
210 } | |
211 | |
212 GLvoid StubGLFramebufferRenderbuffer(GLenum target, GLenum attachment, | |
213 GLenum renderbuffertarget, | |
214 GLuint renderbuffer) { | |
215 glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, | |
216 renderbuffer); | |
217 } | |
218 | |
219 GLvoid StubGLFramebufferTexture2D(GLenum target, GLenum attachment, | |
220 GLenum textarget, GLuint texture, | |
221 GLint level) { | |
222 glFramebufferTexture2DEXT(target, attachment, textarget, texture, level); | |
223 } | |
224 | |
225 GLvoid StubGLFrontFace(GLenum mode) { | |
226 glFrontFace(mode); | |
227 } | |
228 | |
229 GLvoid StubGLGenBuffers(GLsizei n, GLuint* buffers) { | |
230 glGenBuffersARB(n, buffers); | |
231 } | |
232 | |
233 GLvoid StubGLGenFramebuffers(GLsizei n, GLuint* framebuffers) { | |
234 glGenFramebuffersEXT(n, framebuffers); | |
235 } | |
236 | |
237 GLvoid StubGLGenQueries(GLsizei n, GLuint* ids) { | |
238 glGenQueries(n, ids); | |
239 } | |
240 | |
241 GLvoid StubGLGenRenderbuffers(GLsizei n, GLuint* renderbuffers) { | |
242 glGenRenderbuffersEXT(n, renderbuffers); | |
243 } | |
244 | |
245 GLvoid StubGLGenTextures(GLsizei n, GLuint* textures) { | |
246 glGenTextures(n, textures); | |
247 } | |
248 | |
249 GLvoid StubGLGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { | |
250 glGetBufferParameteriv(target, pname, params); | |
251 } | |
252 | |
253 GLvoid StubGLGetFramebufferAttachmentParameteriv(GLenum target, | |
254 GLenum attachment, | |
255 GLenum pname, GLint* params) { | |
256 glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params); | |
257 } | |
258 | |
259 GLenum StubGLGetError() { | |
260 return glGetError(); | |
261 } | |
262 | |
263 GLvoid StubGLGetIntegerv(GLenum pname, GLint* params) { | |
264 glGetIntegerv(pname, params); | |
265 } | |
266 | |
267 GLvoid StubGLGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, | |
268 char* infolog) { | |
269 glGetProgramInfoLog(program, bufsize, length, infolog); | |
270 } | |
271 | |
272 GLvoid StubGLGetProgramiv(GLuint program, GLenum pname, GLint* params) { | |
273 glGetProgramiv(program, pname, params); | |
274 } | |
275 | |
276 GLvoid StubGLGetRenderbufferParameteriv(GLenum target, | |
277 GLenum pname, GLint* params) { | |
278 glGetRenderbufferParameterivEXT(target, pname, params); | |
279 } | |
280 | |
281 GLvoid StubGLGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, | |
282 char* infolog) { | |
283 glGetShaderInfoLog(shader, bufsize, length, infolog); | |
284 } | |
285 | |
286 GLvoid StubGLGetShaderiv(GLuint shader, GLenum pname, GLint* params) { | |
287 glGetShaderiv(shader, pname, params); | |
288 } | |
289 | |
290 const GLubyte* StubGLGetString(GLenum name) { | |
291 return glGetString(name); | |
292 } | |
293 | |
294 GLvoid StubGLGetQueryiv(GLenum target, GLenum pname, GLint* params) { | |
295 glGetQueryiv(target, pname, params); | |
296 } | |
297 | |
298 GLvoid StubGLGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params) { | |
299 glGetQueryObjecti64v(id, pname, params); | |
300 } | |
301 | |
302 GLvoid StubGLGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { | |
303 glGetQueryObjectiv(id, pname, params); | |
304 } | |
305 | |
306 GLvoid StubGLGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params) { | |
307 glGetQueryObjectui64v(id, pname, params); | |
308 } | |
309 | |
310 GLvoid StubGLGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) { | |
311 glGetQueryObjectuiv(id, pname, params); | |
312 } | |
313 | |
314 GLvoid StubGLGetTexLevelParameteriv(GLenum target, GLint level, | |
315 GLenum pname, GLint* params) { | |
316 glGetTexLevelParameteriv(target, level, pname, params); | |
317 } | |
318 | |
319 GLint StubGLGetUniformLocation(GLuint program, const char* name) { | |
320 return glGetUniformLocation(program, name); | |
321 } | |
322 | |
323 GLvoid StubGLLineWidth(GLfloat width) { | |
324 glLineWidth(width); | |
325 } | |
326 | |
327 GLvoid StubGLLinkProgram(GLuint program) { | |
328 glLinkProgram(program); | |
329 } | |
330 | |
331 void* StubGLMapBuffer(GLenum target, GLenum access) { | |
332 return glMapBuffer(target, access); | |
333 } | |
334 | |
335 GLvoid StubGLPixelStorei(GLenum pname, GLint param) { | |
336 glPixelStorei(pname, param); | |
337 } | |
338 | |
339 GLvoid StubGLQueryCounter(GLuint id, GLenum target) { | |
340 glQueryCounter(id, target); | |
341 } | |
342 | |
343 GLvoid StubGLReadBuffer(GLenum src) { | |
344 glReadBuffer(src); | |
345 } | |
346 | |
347 GLvoid StubGLReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, | |
348 GLenum format, GLenum type, void* pixels) { | |
349 glReadPixels(x, y, width, height, format, type, pixels); | |
350 } | |
351 | |
352 GLvoid StubGLRenderbufferStorage(GLenum target, GLenum internalformat, | |
353 GLsizei width, GLsizei height) { | |
354 glRenderbufferStorageEXT(target, internalformat, width, height); | |
355 } | |
356 | |
357 GLvoid StubGLRenderbufferStorageMultisample(GLenum target, GLsizei samples, | |
358 GLenum internalformat, | |
359 GLsizei width, GLsizei height) { | |
360 glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, | |
361 height); | |
362 } | |
363 | |
364 GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) { | |
365 glScissor(x, y, width, height); | |
366 } | |
367 | |
368 GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char** str, | |
369 const GLint* length) { | |
370 glShaderSource(shader, count, str, length); | |
371 } | |
372 | |
373 GLvoid StubGLStencilFunc(GLenum func, GLint ref, GLuint mask) { | |
374 glStencilFunc(func, ref, mask); | |
375 } | |
376 | |
377 GLvoid StubGLStencilFuncSeparate(GLenum face, GLenum func, GLint ref, | |
378 GLuint mask) { | |
379 glStencilFuncSeparate(face, func, ref, mask); | |
380 } | |
381 | |
382 GLvoid StubGLStencilMask(GLuint mask) { | |
383 glStencilMask(mask); | |
384 } | |
385 | |
386 GLvoid StubGLStencilMaskSeparate(GLenum face, GLuint mask) { | |
387 glStencilMaskSeparate(face, mask); | |
388 } | |
389 | |
390 GLvoid StubGLStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { | |
391 glStencilOp(fail, zfail, zpass); | |
392 } | |
393 | |
394 GLvoid StubGLStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, | |
395 GLenum zpass) { | |
396 glStencilOpSeparate(face, fail, zfail, zpass); | |
397 } | |
398 | |
399 GLvoid StubGLTexImage2D(GLenum target, GLint level, GLint internalformat, | |
400 GLsizei width, GLsizei height, GLint border, | |
401 GLenum format, GLenum type, const void* pixels) { | |
402 glTexImage2D(target, level, internalformat, width, height, border, format, | |
403 type, pixels); | |
404 } | |
405 | |
406 GLvoid StubGLTexParameteri(GLenum target, GLenum pname, GLint param) { | |
407 glTexParameteri(target, pname, param); | |
408 } | |
409 | |
410 GLvoid StubGLTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, | |
411 GLsizei width, GLsizei height) { | |
412 glTexStorage2DEXT(target, levels, internalFormat, width, height); | |
413 } | |
414 | |
415 GLvoid StubGLTexSubImage2D(GLenum target, GLint level, GLint xoffset, | |
416 GLint yoffset, GLsizei width, GLsizei height, | |
417 GLenum format, GLenum type, const void* pixels) { | |
418 glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, | |
419 pixels); | |
420 } | |
421 | |
422 GLvoid StubGLUniform1f(GLint location, GLfloat v) { | |
423 glUniform1i(location, v); | |
424 } | |
425 | |
426 GLvoid StubGLUniform1i(GLint location, GLint v) { | |
427 glUniform1i(location, v); | |
428 } | |
429 | |
430 GLvoid StubGLUniform1fv(GLint location, GLsizei count, const GLfloat* v) { | |
431 glUniform1fv(location, count, v); | |
432 } | |
433 | |
434 GLvoid StubGLUniform1iv(GLint location, GLsizei count, const GLint* v) { | |
435 glUniform1iv(location, count, v); | |
436 } | |
437 | |
438 GLvoid StubGLUniform2f(GLint location, GLfloat v0, GLfloat v1) { | |
439 glUniform2i(location, v0, v1); | |
440 } | |
441 | |
442 GLvoid StubGLUniform2i(GLint location, GLint v0, GLint v1) { | |
443 glUniform2i(location, v0, v1); | |
444 } | |
445 | |
446 GLvoid StubGLUniform2fv(GLint location, GLsizei count, const GLfloat* v) { | |
447 glUniform2fv(location, count, v); | |
448 } | |
449 | |
450 GLvoid StubGLUniform2iv(GLint location, GLsizei count, const GLint* v) { | |
451 glUniform2iv(location, count, v); | |
452 } | |
453 | |
454 GLvoid StubGLUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { | |
455 glUniform3i(location, v0, v1, v2); | |
456 } | |
457 | |
458 GLvoid StubGLUniform3i(GLint location, GLint v0, GLint v1, GLint v2) { | |
459 glUniform3i(location, v0, v1, v2); | |
460 } | |
461 | |
462 GLvoid StubGLUniform3fv(GLint location, GLsizei count, const GLfloat* v) { | |
463 glUniform3fv(location, count, v); | |
464 } | |
465 | |
466 GLvoid StubGLUniform3iv(GLint location, GLsizei count, const GLint* v) { | |
467 glUniform3iv(location, count, v); | |
468 } | |
469 | |
470 GLvoid StubGLUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, | |
471 GLfloat v3) { | |
472 glUniform4i(location, v0, v1, v2, v3); | |
473 } | |
474 | |
475 GLvoid StubGLUniform4i(GLint location, GLint v0, GLint v1, GLint v2, | |
476 GLint v3) { | |
477 glUniform4i(location, v0, v1, v2, v3); | |
478 } | |
479 | |
480 GLvoid StubGLUniform4fv(GLint location, GLsizei count, const GLfloat* v) { | |
481 glUniform4fv(location, count, v); | |
482 } | |
483 | |
484 GLvoid StubGLUniform4iv(GLint location, GLsizei count, const GLint* v) { | |
485 glUniform4iv(location, count, v); | |
486 } | |
487 | |
488 GLvoid StubGLUniformMatrix2fv(GLint location, GLsizei count, | |
489 GLboolean transpose, const GLfloat* value) { | |
490 glUniformMatrix2fv(location, count, transpose, value); | |
491 } | |
492 | |
493 GLvoid StubGLUniformMatrix3fv(GLint location, GLsizei count, | |
494 GLboolean transpose, const GLfloat* value) { | |
495 glUniformMatrix3fv(location, count, transpose, value); | |
496 } | |
497 | |
498 GLvoid StubGLUniformMatrix4fv(GLint location, GLsizei count, | |
499 GLboolean transpose, const GLfloat* value) { | |
500 glUniformMatrix4fv(location, count, transpose, value); | |
501 } | |
502 | |
503 GLboolean StubGLUnmapBuffer(GLenum target) { | |
504 return glUnmapBuffer(target); | |
505 } | |
506 | |
507 GLvoid StubGLUseProgram(GLuint program) { | |
508 glUseProgram(program); | |
509 } | |
510 | |
511 GLvoid StubGLVertexAttrib4fv(GLuint indx, const GLfloat* values) { | |
512 glVertexAttrib4fv(indx, values); | |
513 } | |
514 | |
515 GLvoid StubGLVertexAttribPointer(GLuint indx, GLint size, GLenum type, | |
516 GLboolean normalized, GLsizei stride, | |
517 const void* ptr) { | |
518 glVertexAttribPointer(indx, size, type, normalized, stride, ptr); | |
519 } | |
520 | |
521 GLvoid StubGLViewport(GLint x, GLint y, GLsizei width, GLsizei height) { | |
522 glViewport(x, y, width, height); | |
523 } | |
524 } // extern "C" | |
525 } // namespace | |
526 | |
527 namespace gfx { | |
528 | |
529 GrGLInterface* CreateInProcessSkiaGLBinding() { | |
530 GrGLBinding binding; | |
531 switch (gfx::GetGLImplementation()) { | |
532 case gfx::kGLImplementationNone: | |
533 NOTREACHED(); | |
534 return NULL; | |
535 case gfx::kGLImplementationDesktopGL: | |
536 case gfx::kGLImplementationAppleGL: | |
537 binding = kDesktop_GrGLBinding; | |
538 break; | |
539 case gfx::kGLImplementationOSMesaGL: | |
540 binding = kDesktop_GrGLBinding; | |
541 break; | |
542 case gfx::kGLImplementationEGLGLES2: | |
543 binding = kES2_GrGLBinding; | |
544 break; | |
545 case gfx::kGLImplementationMockGL: | |
546 NOTREACHED(); | |
547 return NULL; | |
548 default: | |
549 NOTREACHED(); | |
550 return NULL; | |
551 } | |
552 | |
553 GrGLInterface* interface = new GrGLInterface; | |
554 | |
555 interface->fBindingsExported = binding; | |
556 interface->fActiveTexture = StubGLActiveTexture; | |
557 interface->fAttachShader = StubGLAttachShader; | |
558 interface->fBeginQuery = StubGLBeginQuery; | |
559 interface->fBindAttribLocation = StubGLBindAttribLocation; | |
560 interface->fBindBuffer = StubGLBindBuffer; | |
561 interface->fBindFragDataLocation = StubGLBindFragDataLocation; | |
562 interface->fBindTexture = StubGLBindTexture; | |
563 interface->fBlendColor = StubGLBlendColor; | |
564 interface->fBlendFunc = StubGLBlendFunc; | |
565 interface->fBufferData = StubGLBufferData; | |
566 interface->fBufferSubData = StubGLBufferSubData; | |
567 interface->fClear = StubGLClear; | |
568 interface->fClearColor = StubGLClearColor; | |
569 interface->fClearStencil = StubGLClearStencil; | |
570 interface->fColorMask = StubGLColorMask; | |
571 interface->fCompileShader = StubGLCompileShader; | |
572 interface->fCompressedTexImage2D = StubGLCompressedTexImage2D; | |
573 interface->fCreateProgram = StubGLCreateProgram; | |
574 interface->fCreateShader = StubGLCreateShader; | |
575 interface->fCullFace = StubGLCullFace; | |
576 interface->fDeleteBuffers = StubGLDeleteBuffers; | |
577 interface->fDeleteProgram = StubGLDeleteProgram; | |
578 interface->fDeleteQueries = StubGLDeleteQueries; | |
579 interface->fDeleteShader = StubGLDeleteShader; | |
580 interface->fDeleteTextures = StubGLDeleteTextures; | |
581 interface->fDepthMask = StubGLDepthMask; | |
582 interface->fDisable = StubGLDisable; | |
583 interface->fDisableVertexAttribArray = StubGLDisableVertexAttribArray; | |
584 interface->fDrawArrays = StubGLDrawArrays; | |
585 interface->fDrawBuffer = StubGLDrawBuffer; | |
586 interface->fDrawBuffers = StubGLDrawBuffers; | |
587 interface->fDrawElements = StubGLDrawElements; | |
588 interface->fEnable = StubGLEnable; | |
589 interface->fEnableVertexAttribArray = StubGLEnableVertexAttribArray; | |
590 interface->fEndQuery = StubGLEndQuery; | |
591 interface->fFinish = StubGLFinish; | |
592 interface->fFlush = StubGLFlush; | |
593 interface->fFrontFace = StubGLFrontFace; | |
594 interface->fGenBuffers = StubGLGenBuffers; | |
595 interface->fGenQueries = StubGLGenQueries; | |
596 interface->fGenTextures = StubGLGenTextures; | |
597 interface->fGetBufferParameteriv = StubGLGetBufferParameteriv; | |
598 interface->fGetError = StubGLGetError; | |
599 interface->fGetIntegerv = StubGLGetIntegerv; | |
600 interface->fGetQueryiv = StubGLGetQueryiv; | |
601 interface->fGetQueryObjecti64v = StubGLGetQueryObjecti64v; | |
602 interface->fGetQueryObjectiv = StubGLGetQueryObjectiv; | |
603 interface->fGetQueryObjectui64v = StubGLGetQueryObjectui64v; | |
604 interface->fGetQueryObjectuiv = StubGLGetQueryObjectuiv; | |
605 interface->fGetProgramInfoLog = StubGLGetProgramInfoLog; | |
606 interface->fGetProgramiv = StubGLGetProgramiv; | |
607 interface->fGetShaderInfoLog = StubGLGetShaderInfoLog; | |
608 interface->fGetShaderiv = StubGLGetShaderiv; | |
609 interface->fGetString = StubGLGetString; | |
610 interface->fGetTexLevelParameteriv = StubGLGetTexLevelParameteriv; | |
611 interface->fGetUniformLocation = StubGLGetUniformLocation; | |
612 interface->fLineWidth = StubGLLineWidth; | |
613 interface->fLinkProgram = StubGLLinkProgram; | |
614 interface->fPixelStorei = StubGLPixelStorei; | |
615 interface->fQueryCounter = StubGLQueryCounter; | |
616 interface->fReadBuffer = StubGLReadBuffer; | |
617 interface->fReadPixels = StubGLReadPixels; | |
618 interface->fScissor = StubGLScissor; | |
619 interface->fShaderSource = StubGLShaderSource; | |
620 interface->fStencilFunc = StubGLStencilFunc; | |
621 interface->fStencilFuncSeparate = StubGLStencilFuncSeparate; | |
622 interface->fStencilMask = StubGLStencilMask; | |
623 interface->fStencilMaskSeparate = StubGLStencilMaskSeparate; | |
624 interface->fStencilOp = StubGLStencilOp; | |
625 interface->fStencilOpSeparate = StubGLStencilOpSeparate; | |
626 interface->fTexImage2D = StubGLTexImage2D; | |
627 interface->fTexParameteri = StubGLTexParameteri; | |
628 interface->fTexSubImage2D = StubGLTexSubImage2D; | |
629 interface->fTexStorage2D = StubGLTexStorage2D; | |
630 interface->fUniform1f = StubGLUniform1f; | |
631 interface->fUniform1i = StubGLUniform1i; | |
632 interface->fUniform1fv = StubGLUniform1fv; | |
633 interface->fUniform1iv = StubGLUniform1iv; | |
634 interface->fUniform2f = StubGLUniform2f; | |
635 interface->fUniform2i = StubGLUniform2i; | |
636 interface->fUniform2fv = StubGLUniform2fv; | |
637 interface->fUniform2iv = StubGLUniform2iv; | |
638 interface->fUniform3f = StubGLUniform3f; | |
639 interface->fUniform3i = StubGLUniform3i; | |
640 interface->fUniform3fv = StubGLUniform3fv; | |
641 interface->fUniform3iv = StubGLUniform3iv; | |
642 interface->fUniform4f = StubGLUniform4f; | |
643 interface->fUniform4i = StubGLUniform4i; | |
644 interface->fUniform4fv = StubGLUniform4fv; | |
645 interface->fUniform4iv = StubGLUniform4iv; | |
646 interface->fUniformMatrix2fv = StubGLUniformMatrix2fv; | |
647 interface->fUniformMatrix3fv = StubGLUniformMatrix3fv; | |
648 interface->fUniformMatrix4fv = StubGLUniformMatrix4fv; | |
649 interface->fUseProgram = StubGLUseProgram; | |
650 interface->fVertexAttrib4fv = StubGLVertexAttrib4fv; | |
651 interface->fVertexAttribPointer = StubGLVertexAttribPointer; | |
652 interface->fViewport = StubGLViewport; | |
653 interface->fBindFramebuffer = StubGLBindFramebuffer; | |
654 interface->fBindRenderbuffer = StubGLBindRenderbuffer; | |
655 interface->fCheckFramebufferStatus = StubGLCheckFramebufferStatus; | |
656 interface->fDeleteFramebuffers = StubGLDeleteFramebuffers; | |
657 interface->fDeleteRenderbuffers = StubGLDeleteRenderbuffers; | |
658 interface->fFramebufferRenderbuffer = StubGLFramebufferRenderbuffer; | |
659 interface->fFramebufferTexture2D = StubGLFramebufferTexture2D; | |
660 interface->fGenFramebuffers = StubGLGenFramebuffers; | |
661 interface->fGenRenderbuffers = StubGLGenRenderbuffers; | |
662 interface->fGetFramebufferAttachmentParameteriv = | |
663 StubGLGetFramebufferAttachmentParameteriv; | |
664 interface->fGetRenderbufferParameteriv = StubGLGetRenderbufferParameteriv; | |
665 interface->fRenderbufferStorage = StubGLRenderbufferStorage; | |
666 interface->fRenderbufferStorageMultisample = | |
667 StubGLRenderbufferStorageMultisample; | |
668 interface->fBlitFramebuffer = StubGLBlitFramebuffer; | |
669 interface->fMapBuffer = StubGLMapBuffer; | |
670 interface->fUnmapBuffer = StubGLUnmapBuffer; | |
671 interface->fBindFragDataLocationIndexed = | |
672 StubGLBindFragDataLocationIndexed; | |
673 return interface; | |
674 } | |
675 | |
676 } // namespace gfx | |
OLD | NEW |