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

Side by Side Diff: src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp

Issue 137753005: Make GrGLInterface be context-specific on all platforms (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 11 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
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "gl/GrGLInterface.h" 10 #include "gl/GrGLInterface.h"
11 11
12 #import <OpenGLES/ES2/gl.h> 12 #import <OpenGLES/ES2/gl.h>
13 #import <OpenGLES/ES2/glext.h> 13 #import <OpenGLES/ES2/glext.h>
14 14
15 const GrGLInterface* GrGLCreateNativeInterface() { 15 const GrGLInterface* GrGLCreateNativeInterface() {
16 static SkAutoTUnref<GrGLInterface> glInterface; 16 GrGLInterface* interface = SkNEW(GrGLInterface);
17 if (!glInterface.get()) {
18 GrGLInterface* interface = SkNEW(GrGLInterface);
19 glInterface.reset(interface);
20 17
21 interface->fActiveTexture = glActiveTexture; 18 interface->fActiveTexture = glActiveTexture;
22 interface->fAttachShader = glAttachShader; 19 interface->fAttachShader = glAttachShader;
23 interface->fBindAttribLocation = glBindAttribLocation; 20 interface->fBindAttribLocation = glBindAttribLocation;
24 interface->fBindBuffer = glBindBuffer; 21 interface->fBindBuffer = glBindBuffer;
25 interface->fBindTexture = glBindTexture; 22 interface->fBindTexture = glBindTexture;
26 interface->fBlendColor = glBlendColor; 23 interface->fBlendColor = glBlendColor;
27 interface->fBlendFunc = glBlendFunc; 24 interface->fBlendFunc = glBlendFunc;
28 interface->fBufferData = (GrGLBufferDataProc)glBufferData; 25 interface->fBufferData = (GrGLBufferDataProc)glBufferData;
29 interface->fBufferSubData = (GrGLBufferSubDataProc)glBufferSubData; 26 interface->fBufferSubData = (GrGLBufferSubDataProc)glBufferSubData;
30 interface->fClear = glClear; 27 interface->fClear = glClear;
31 interface->fClearColor = glClearColor; 28 interface->fClearColor = glClearColor;
32 interface->fClearStencil = glClearStencil; 29 interface->fClearStencil = glClearStencil;
33 interface->fColorMask = glColorMask; 30 interface->fColorMask = glColorMask;
34 interface->fCompileShader = glCompileShader; 31 interface->fCompileShader = glCompileShader;
35 interface->fCompressedTexImage2D = glCompressedTexImage2D; 32 interface->fCompressedTexImage2D = glCompressedTexImage2D;
36 interface->fCopyTexSubImage2D = glCopyTexSubImage2D; 33 interface->fCopyTexSubImage2D = glCopyTexSubImage2D;
37 interface->fCreateProgram = glCreateProgram; 34 interface->fCreateProgram = glCreateProgram;
38 interface->fCreateShader = glCreateShader; 35 interface->fCreateShader = glCreateShader;
39 interface->fCullFace = glCullFace; 36 interface->fCullFace = glCullFace;
40 interface->fDeleteBuffers = glDeleteBuffers; 37 interface->fDeleteBuffers = glDeleteBuffers;
41 interface->fDeleteProgram = glDeleteProgram; 38 interface->fDeleteProgram = glDeleteProgram;
42 interface->fDeleteShader = glDeleteShader; 39 interface->fDeleteShader = glDeleteShader;
43 interface->fDeleteTextures = glDeleteTextures; 40 interface->fDeleteTextures = glDeleteTextures;
44 interface->fDepthMask = glDepthMask; 41 interface->fDepthMask = glDepthMask;
45 interface->fDisable = glDisable; 42 interface->fDisable = glDisable;
46 interface->fDisableVertexAttribArray = glDisableVertexAttribArray; 43 interface->fDisableVertexAttribArray = glDisableVertexAttribArray;
47 interface->fDrawArrays = glDrawArrays; 44 interface->fDrawArrays = glDrawArrays;
48 interface->fDrawBuffer = NULL; 45 interface->fDrawBuffer = NULL;
49 interface->fDrawBuffers = NULL; 46 interface->fDrawBuffers = NULL;
50 interface->fDrawElements = glDrawElements; 47 interface->fDrawElements = glDrawElements;
51 interface->fEnable = glEnable; 48 interface->fEnable = glEnable;
52 interface->fEnableVertexAttribArray = glEnableVertexAttribArray; 49 interface->fEnableVertexAttribArray = glEnableVertexAttribArray;
53 interface->fFinish = glFinish; 50 interface->fFinish = glFinish;
54 interface->fFlush = glFlush; 51 interface->fFlush = glFlush;
55 interface->fFrontFace = glFrontFace; 52 interface->fFrontFace = glFrontFace;
56 interface->fGenBuffers = glGenBuffers; 53 interface->fGenBuffers = glGenBuffers;
57 interface->fGenerateMipmap = glGenerateMipmap; 54 interface->fGenerateMipmap = glGenerateMipmap;
58 interface->fGetBufferParameteriv = glGetBufferParameteriv; 55 interface->fGetBufferParameteriv = glGetBufferParameteriv;
59 interface->fGetError = glGetError; 56 interface->fGetError = glGetError;
60 interface->fGetIntegerv = glGetIntegerv; 57 interface->fGetIntegerv = glGetIntegerv;
61 interface->fGetProgramInfoLog = glGetProgramInfoLog; 58 interface->fGetProgramInfoLog = glGetProgramInfoLog;
62 interface->fGetProgramiv = glGetProgramiv; 59 interface->fGetProgramiv = glGetProgramiv;
63 interface->fGetShaderInfoLog = glGetShaderInfoLog; 60 interface->fGetShaderInfoLog = glGetShaderInfoLog;
64 interface->fGetShaderiv = glGetShaderiv; 61 interface->fGetShaderiv = glGetShaderiv;
65 interface->fGetString = glGetString; 62 interface->fGetString = glGetString;
66 interface->fGenTextures = glGenTextures; 63 interface->fGenTextures = glGenTextures;
67 interface->fGetUniformLocation = glGetUniformLocation; 64 interface->fGetUniformLocation = glGetUniformLocation;
68 interface->fLineWidth = glLineWidth; 65 interface->fLineWidth = glLineWidth;
69 interface->fLinkProgram = glLinkProgram; 66 interface->fLinkProgram = glLinkProgram;
70 interface->fPixelStorei = glPixelStorei; 67 interface->fPixelStorei = glPixelStorei;
71 interface->fReadBuffer = NULL; 68 interface->fReadBuffer = NULL;
72 interface->fReadPixels = glReadPixels; 69 interface->fReadPixels = glReadPixels;
73 interface->fScissor = glScissor; 70 interface->fScissor = glScissor;
74 interface->fShaderSource = glShaderSource; 71 interface->fShaderSource = glShaderSource;
75 interface->fStencilFunc = glStencilFunc; 72 interface->fStencilFunc = glStencilFunc;
76 interface->fStencilFuncSeparate = glStencilFuncSeparate; 73 interface->fStencilFuncSeparate = glStencilFuncSeparate;
77 interface->fStencilMask = glStencilMask; 74 interface->fStencilMask = glStencilMask;
78 interface->fStencilMaskSeparate = glStencilMaskSeparate; 75 interface->fStencilMaskSeparate = glStencilMaskSeparate;
79 interface->fStencilOp = glStencilOp; 76 interface->fStencilOp = glStencilOp;
80 interface->fStencilOpSeparate = glStencilOpSeparate; 77 interface->fStencilOpSeparate = glStencilOpSeparate;
81 // mac uses GLenum for internalFormat param (non-standard) 78 // mac uses GLenum for internalFormat param (non-standard)
82 // amounts to int vs. uint. 79 // amounts to int vs. uint.
83 interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D; 80 interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
84 #if GL_ARB_texture_storage 81 #if GL_ARB_texture_storage
85 interface->fTexStorage2D = glTexStorage2D; 82 interface->fTexStorage2D = glTexStorage2D;
86 #elif GL_EXT_texture_storage 83 #elif GL_EXT_texture_storage
87 interface->fTexStorage2D = glTexStorage2DEXT; 84 interface->fTexStorage2D = glTexStorage2DEXT;
88 #endif 85 #endif
89 #if GL_EXT_discard_framebuffer 86 #if GL_EXT_discard_framebuffer
90 interface->fDiscardFramebuffer = glDiscardFramebufferEXT; 87 interface->fDiscardFramebuffer = glDiscardFramebufferEXT;
91 #endif 88 #endif
92 interface->fTexParameteri = glTexParameteri; 89 interface->fTexParameteri = glTexParameteri;
93 interface->fTexParameteriv = glTexParameteriv; 90 interface->fTexParameteriv = glTexParameteriv;
94 interface->fTexSubImage2D = glTexSubImage2D; 91 interface->fTexSubImage2D = glTexSubImage2D;
95 interface->fUniform1f = glUniform1f; 92 interface->fUniform1f = glUniform1f;
96 interface->fUniform1i = glUniform1i; 93 interface->fUniform1i = glUniform1i;
97 interface->fUniform1fv = glUniform1fv; 94 interface->fUniform1fv = glUniform1fv;
98 interface->fUniform1iv = glUniform1iv; 95 interface->fUniform1iv = glUniform1iv;
99 interface->fUniform2f = glUniform2f; 96 interface->fUniform2f = glUniform2f;
100 interface->fUniform2i = glUniform2i; 97 interface->fUniform2i = glUniform2i;
101 interface->fUniform2fv = glUniform2fv; 98 interface->fUniform2fv = glUniform2fv;
102 interface->fUniform2iv = glUniform2iv; 99 interface->fUniform2iv = glUniform2iv;
103 interface->fUniform3f = glUniform3f; 100 interface->fUniform3f = glUniform3f;
104 interface->fUniform3i = glUniform3i; 101 interface->fUniform3i = glUniform3i;
105 interface->fUniform3fv = glUniform3fv; 102 interface->fUniform3fv = glUniform3fv;
106 interface->fUniform3iv = glUniform3iv; 103 interface->fUniform3iv = glUniform3iv;
107 interface->fUniform4f = glUniform4f; 104 interface->fUniform4f = glUniform4f;
108 interface->fUniform4i = glUniform4i; 105 interface->fUniform4i = glUniform4i;
109 interface->fUniform4fv = glUniform4fv; 106 interface->fUniform4fv = glUniform4fv;
110 interface->fUniform4iv = glUniform4iv; 107 interface->fUniform4iv = glUniform4iv;
111 interface->fUniform4fv = glUniform4fv; 108 interface->fUniform4fv = glUniform4fv;
112 interface->fUniformMatrix2fv = glUniformMatrix2fv; 109 interface->fUniformMatrix2fv = glUniformMatrix2fv;
113 interface->fUniformMatrix3fv = glUniformMatrix3fv; 110 interface->fUniformMatrix3fv = glUniformMatrix3fv;
114 interface->fUniformMatrix4fv = glUniformMatrix4fv; 111 interface->fUniformMatrix4fv = glUniformMatrix4fv;
115 interface->fUseProgram = glUseProgram; 112 interface->fUseProgram = glUseProgram;
116 interface->fVertexAttrib4fv = glVertexAttrib4fv; 113 interface->fVertexAttrib4fv = glVertexAttrib4fv;
117 interface->fVertexAttribPointer = glVertexAttribPointer; 114 interface->fVertexAttribPointer = glVertexAttribPointer;
118 interface->fViewport = glViewport; 115 interface->fViewport = glViewport;
119 interface->fGenFramebuffers = glGenFramebuffers; 116 interface->fGenFramebuffers = glGenFramebuffers;
120 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttach mentParameteriv; 117 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachment Parameteriv;
121 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; 118 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
122 interface->fBindFramebuffer = glBindFramebuffer; 119 interface->fBindFramebuffer = glBindFramebuffer;
123 interface->fFramebufferTexture2D = glFramebufferTexture2D; 120 interface->fFramebufferTexture2D = glFramebufferTexture2D;
124 interface->fCheckFramebufferStatus = glCheckFramebufferStatus; 121 interface->fCheckFramebufferStatus = glCheckFramebufferStatus;
125 interface->fDeleteFramebuffers = glDeleteFramebuffers; 122 interface->fDeleteFramebuffers = glDeleteFramebuffers;
126 interface->fRenderbufferStorage = glRenderbufferStorage; 123 interface->fRenderbufferStorage = glRenderbufferStorage;
127 interface->fGenRenderbuffers = glGenRenderbuffers; 124 interface->fGenRenderbuffers = glGenRenderbuffers;
128 interface->fDeleteRenderbuffers = glDeleteRenderbuffers; 125 interface->fDeleteRenderbuffers = glDeleteRenderbuffers;
129 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer; 126 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
130 interface->fBindRenderbuffer = glBindRenderbuffer; 127 interface->fBindRenderbuffer = glBindRenderbuffer;
131 128
132 #if GL_OES_mapbuffer 129 #if GL_OES_mapbuffer
133 interface->fMapBuffer = glMapBufferOES; 130 interface->fMapBuffer = glMapBufferOES;
134 interface->fUnmapBuffer = glUnmapBufferOES; 131 interface->fUnmapBuffer = glUnmapBufferOES;
135 #endif 132 #endif
136 133
137 #if GL_APPLE_framebuffer_multisample 134 #if GL_APPLE_framebuffer_multisample
138 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultis ampleAPPLE; 135 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampl eAPPLE;
139 interface->fResolveMultisampleFramebuffer = glResolveMultisampleFramebuf ferAPPLE; 136 interface->fResolveMultisampleFramebuffer = glResolveMultisampleFramebufferA PPLE;
140 #endif 137 #endif
141 138
142 #if GL_OES_vertex_array_object 139 #if GL_OES_vertex_array_object
143 interface->fBindVertexArray = glBindVertexArrayOES; 140 interface->fBindVertexArray = glBindVertexArrayOES;
144 interface->fDeleteVertexArrays = glDeleteVertexArraysOES; 141 interface->fDeleteVertexArrays = glDeleteVertexArraysOES;
145 interface->fGenVertexArrays = glGenVertexArraysOES; 142 interface->fGenVertexArrays = glGenVertexArraysOES;
146 #endif 143 #endif
147 144
148 interface->fBindingsExported = kES_GrGLBinding; 145 interface->fBindingsExported = kES_GrGLBinding;
149 } 146
150 glInterface.get()->ref(); 147 return interface;
151 return glInterface.get();
152 } 148 }
OLDNEW
« no previous file with comments | « src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp ('k') | src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698