Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Side by Side Diff: src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp

Issue 14091008: Add support for GL_EXT_multisampled_render_to_texture. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/gpu/gl/GrGpuGL.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Modified from chromium/src/webkit/glue/gl_bindings_skia_cmd_buffer.cc 1 // Modified from chromium/src/webkit/glue/gl_bindings_skia_cmd_buffer.cc
2 2
3 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be 4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file. 5 // found in the LICENSE file.
6 6
7 #include "gl/GrGLExtensions.h"
7 #include "gl/GrGLInterface.h" 8 #include "gl/GrGLInterface.h"
8 9
9 #ifndef GL_GLEXT_PROTOTYPES 10 #ifndef GL_GLEXT_PROTOTYPES
10 #define GL_GLEXT_PROTOTYPES 11 #define GL_GLEXT_PROTOTYPES
11 #endif 12 #endif
12 13
13 #include <GLES2/gl2.h> 14 #include <GLES2/gl2.h>
14 #include <GLES2/gl2ext.h> 15 #include <GLES2/gl2ext.h>
15 16
16 #include <EGL/egl.h> 17 #include <EGL/egl.h>
17 18
18 const GrGLInterface* GrGLCreateNativeInterface() { 19 const GrGLInterface* GrGLCreateNativeInterface() {
19 static SkAutoTUnref<GrGLInterface> glInterface; 20 static SkAutoTUnref<GrGLInterface> glInterface;
20 if (!glInterface.get()) { 21 if (!glInterface.get()) {
22 GrGLExtensions extensions;
23 if (!extensions.init(kES2_GrGLBinding, glGetString, NULL, glGetIntegerv) ) {
24 return NULL;
25 }
21 GrGLInterface* interface = new GrGLInterface; 26 GrGLInterface* interface = new GrGLInterface;
22 glInterface.reset(interface); 27 glInterface.reset(interface);
23 interface->fBindingsExported = kES2_GrGLBinding; 28 interface->fBindingsExported = kES2_GrGLBinding;
24 interface->fActiveTexture = glActiveTexture; 29 interface->fActiveTexture = glActiveTexture;
25 interface->fAttachShader = glAttachShader; 30 interface->fAttachShader = glAttachShader;
26 interface->fBindAttribLocation = glBindAttribLocation; 31 interface->fBindAttribLocation = glBindAttribLocation;
27 interface->fBindBuffer = glBindBuffer; 32 interface->fBindBuffer = glBindBuffer;
28 interface->fBindTexture = glBindTexture; 33 interface->fBindTexture = glBindTexture;
29 interface->fBindVertexArray = glBindVertexArrayOES; 34 interface->fBindVertexArray = glBindVertexArrayOES;
30 interface->fBlendColor = glBlendColor; 35 interface->fBlendColor = glBlendColor;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 interface->fVertexAttrib4fv = glVertexAttrib4fv; 126 interface->fVertexAttrib4fv = glVertexAttrib4fv;
122 interface->fVertexAttribPointer = glVertexAttribPointer; 127 interface->fVertexAttribPointer = glVertexAttribPointer;
123 interface->fViewport = glViewport; 128 interface->fViewport = glViewport;
124 interface->fBindFramebuffer = glBindFramebuffer; 129 interface->fBindFramebuffer = glBindFramebuffer;
125 interface->fBindRenderbuffer = glBindRenderbuffer; 130 interface->fBindRenderbuffer = glBindRenderbuffer;
126 interface->fCheckFramebufferStatus = glCheckFramebufferStatus; 131 interface->fCheckFramebufferStatus = glCheckFramebufferStatus;
127 interface->fDeleteFramebuffers = glDeleteFramebuffers; 132 interface->fDeleteFramebuffers = glDeleteFramebuffers;
128 interface->fDeleteRenderbuffers = glDeleteRenderbuffers; 133 interface->fDeleteRenderbuffers = glDeleteRenderbuffers;
129 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer; 134 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
130 interface->fFramebufferTexture2D = glFramebufferTexture2D; 135 interface->fFramebufferTexture2D = glFramebufferTexture2D;
136 if (extensions.has("GL_EXT_multisampled_render_to_texture")) {
137 #if GL_EXT_multisampled_render_to_texture
138 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2D MultisampleEXT;
139 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMu ltisampleEXT;
140 #else
141 interface->fFramebufferTexture2DMultisample = (GrGLFramebufferTextur e2DMultisampleProc) eglGetProcAddress("glFramebufferTexture2DMultisampleEXT");
142 interface->fRenderbufferStorageMultisample = (GrGLRenderbufferStorag eMultisampleProc) eglGetProcAddress("glRenderbufferStorageMultisampleEXT");
143 #endif
144 } else if (extensions.has("GL_IMG_multisampled_render_to_texture")) {
131 #if GL_IMG_multisampled_render_to_texture 145 #if GL_IMG_multisampled_render_to_texture
132 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2DMult isampleIMG; 146 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2D MultisampleIMG;
133 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultis ampleIMG; 147 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMu ltisampleIMG;
148 #else
149 interface->fFramebufferTexture2DMultisample = (GrGLFramebufferTextur e2DMultisampleProc) eglGetProcAddress("glFramebufferTexture2DMultisampleIMG");
150 interface->fRenderbufferStorageMultisample = (GrGLRenderbufferStorag eMultisampleProc) eglGetProcAddress("glRenderbufferStorageMultisampleIMG");
134 #endif 151 #endif
152 }
135 interface->fGenFramebuffers = glGenFramebuffers; 153 interface->fGenFramebuffers = glGenFramebuffers;
136 interface->fGenRenderbuffers = glGenRenderbuffers; 154 interface->fGenRenderbuffers = glGenRenderbuffers;
137 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttach mentParameteriv; 155 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttach mentParameteriv;
138 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; 156 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
139 interface->fRenderbufferStorage = glRenderbufferStorage; 157 interface->fRenderbufferStorage = glRenderbufferStorage;
140 #if GL_OES_mapbuffer 158 #if GL_OES_mapbuffer
141 interface->fMapBuffer = glMapBufferOES; 159 interface->fMapBuffer = glMapBufferOES;
142 interface->fUnmapBuffer = glUnmapBufferOES; 160 interface->fUnmapBuffer = glUnmapBufferOES;
143 #else 161 #else
144 interface->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBuff erOES"); 162 interface->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBuff erOES");
145 interface->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnm apBufferOES"); 163 interface->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnm apBufferOES");
146 #endif 164 #endif
147 } 165 }
148 glInterface.get()->ref(); 166 glInterface.get()->ref();
149 return glInterface.get(); 167 return glInterface.get();
150 } 168 }
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGpuGL.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698