gfx/skia/trunk/src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/gfx/skia/trunk/src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,157 @@
     1.4 +
     1.5 +/*
     1.6 + * Copyright 2011 Google Inc.
     1.7 + *
     1.8 + * Use of this source code is governed by a BSD-style license that can be
     1.9 + * found in the LICENSE file.
    1.10 + */
    1.11 +
    1.12 +
    1.13 +#include "gl/GrGLInterface.h"
    1.14 +
    1.15 +#import <OpenGLES/ES2/gl.h>
    1.16 +#import <OpenGLES/ES2/glext.h>
    1.17 +
    1.18 +const GrGLInterface* GrGLCreateNativeInterface() {
    1.19 +    GrGLInterface* interface = SkNEW(GrGLInterface);
    1.20 +
    1.21 +    GrGLInterface::Functions* functions = &interface->fFunctions;
    1.22 +
    1.23 +    functions->fActiveTexture = glActiveTexture;
    1.24 +    functions->fAttachShader = glAttachShader;
    1.25 +    functions->fBindAttribLocation = glBindAttribLocation;
    1.26 +    functions->fBindBuffer = glBindBuffer;
    1.27 +    functions->fBindTexture = glBindTexture;
    1.28 +    functions->fBlendColor = glBlendColor;
    1.29 +    functions->fBlendFunc = glBlendFunc;
    1.30 +    functions->fBufferData = (GrGLBufferDataProc)glBufferData;
    1.31 +    functions->fBufferSubData = (GrGLBufferSubDataProc)glBufferSubData;
    1.32 +    functions->fClear = glClear;
    1.33 +    functions->fClearColor = glClearColor;
    1.34 +    functions->fClearStencil = glClearStencil;
    1.35 +    functions->fColorMask = glColorMask;
    1.36 +    functions->fCompileShader = glCompileShader;
    1.37 +    functions->fCompressedTexImage2D = glCompressedTexImage2D;
    1.38 +    functions->fCopyTexSubImage2D = glCopyTexSubImage2D;
    1.39 +    functions->fCreateProgram = glCreateProgram;
    1.40 +    functions->fCreateShader = glCreateShader;
    1.41 +    functions->fCullFace = glCullFace;
    1.42 +    functions->fDeleteBuffers = glDeleteBuffers;
    1.43 +    functions->fDeleteProgram = glDeleteProgram;
    1.44 +    functions->fDeleteShader = glDeleteShader;
    1.45 +    functions->fDeleteTextures = glDeleteTextures;
    1.46 +    functions->fDepthMask = glDepthMask;
    1.47 +    functions->fDisable = glDisable;
    1.48 +    functions->fDisableVertexAttribArray = glDisableVertexAttribArray;
    1.49 +    functions->fDrawArrays = glDrawArrays;
    1.50 +    functions->fDrawBuffer = NULL;
    1.51 +    functions->fDrawBuffers = NULL;
    1.52 +    functions->fDrawElements = glDrawElements;
    1.53 +    functions->fEnable = glEnable;
    1.54 +    functions->fEnableVertexAttribArray = glEnableVertexAttribArray;
    1.55 +    functions->fFinish = glFinish;
    1.56 +    functions->fFlush = glFlush;
    1.57 +    functions->fFrontFace = glFrontFace;
    1.58 +    functions->fGenBuffers = glGenBuffers;
    1.59 +    functions->fGenerateMipmap = glGenerateMipmap;
    1.60 +    functions->fGetBufferParameteriv = glGetBufferParameteriv;
    1.61 +    functions->fGetError = glGetError;
    1.62 +    functions->fGetIntegerv = glGetIntegerv;
    1.63 +    functions->fGetProgramInfoLog = glGetProgramInfoLog;
    1.64 +    functions->fGetProgramiv = glGetProgramiv;
    1.65 +    functions->fGetShaderInfoLog = glGetShaderInfoLog;
    1.66 +    functions->fGetShaderiv = glGetShaderiv;
    1.67 +    functions->fGetString = glGetString;
    1.68 +    functions->fGenTextures = glGenTextures;
    1.69 +    functions->fGetUniformLocation = glGetUniformLocation;
    1.70 +    functions->fLineWidth = glLineWidth;
    1.71 +    functions->fLinkProgram = glLinkProgram;
    1.72 +    functions->fPixelStorei = glPixelStorei;
    1.73 +    functions->fReadBuffer = NULL;
    1.74 +    functions->fReadPixels = glReadPixels;
    1.75 +    functions->fScissor = glScissor;
    1.76 +    functions->fShaderSource = glShaderSource;
    1.77 +    functions->fStencilFunc = glStencilFunc;
    1.78 +    functions->fStencilFuncSeparate = glStencilFuncSeparate;
    1.79 +    functions->fStencilMask = glStencilMask;
    1.80 +    functions->fStencilMaskSeparate = glStencilMaskSeparate;
    1.81 +    functions->fStencilOp = glStencilOp;
    1.82 +    functions->fStencilOpSeparate = glStencilOpSeparate;
    1.83 +    // mac uses GLenum for internalFormat param (non-standard)
    1.84 +    // amounts to int vs. uint.
    1.85 +    functions->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
    1.86 +#if GL_ARB_texture_storage
    1.87 +    functions->fTexStorage2D = glTexStorage2D;
    1.88 +#elif GL_EXT_texture_storage
    1.89 +    functions->fTexStorage2D = glTexStorage2DEXT;
    1.90 +#endif
    1.91 +#if GL_EXT_discard_framebuffer
    1.92 +    functions->fDiscardFramebuffer = glDiscardFramebufferEXT;
    1.93 +#endif
    1.94 +    functions->fTexParameteri = glTexParameteri;
    1.95 +    functions->fTexParameteriv = glTexParameteriv;
    1.96 +    functions->fTexSubImage2D = glTexSubImage2D;
    1.97 +    functions->fUniform1f = glUniform1f;
    1.98 +    functions->fUniform1i = glUniform1i;
    1.99 +    functions->fUniform1fv = glUniform1fv;
   1.100 +    functions->fUniform1iv = glUniform1iv;
   1.101 +    functions->fUniform2f = glUniform2f;
   1.102 +    functions->fUniform2i = glUniform2i;
   1.103 +    functions->fUniform2fv = glUniform2fv;
   1.104 +    functions->fUniform2iv = glUniform2iv;
   1.105 +    functions->fUniform3f = glUniform3f;
   1.106 +    functions->fUniform3i = glUniform3i;
   1.107 +    functions->fUniform3fv = glUniform3fv;
   1.108 +    functions->fUniform3iv = glUniform3iv;
   1.109 +    functions->fUniform4f = glUniform4f;
   1.110 +    functions->fUniform4i = glUniform4i;
   1.111 +    functions->fUniform4fv = glUniform4fv;
   1.112 +    functions->fUniform4iv = glUniform4iv;
   1.113 +    functions->fUniform4fv = glUniform4fv;
   1.114 +    functions->fUniformMatrix2fv = glUniformMatrix2fv;
   1.115 +    functions->fUniformMatrix3fv = glUniformMatrix3fv;
   1.116 +    functions->fUniformMatrix4fv = glUniformMatrix4fv;
   1.117 +    functions->fUseProgram = glUseProgram;
   1.118 +    functions->fVertexAttrib4fv = glVertexAttrib4fv;
   1.119 +    functions->fVertexAttribPointer = glVertexAttribPointer;
   1.120 +    functions->fViewport = glViewport;
   1.121 +    functions->fGenFramebuffers = glGenFramebuffers;
   1.122 +    functions->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameteriv;
   1.123 +    functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
   1.124 +    functions->fBindFramebuffer = glBindFramebuffer;
   1.125 +    functions->fFramebufferTexture2D = glFramebufferTexture2D;
   1.126 +    functions->fCheckFramebufferStatus = glCheckFramebufferStatus;
   1.127 +    functions->fDeleteFramebuffers = glDeleteFramebuffers;
   1.128 +    functions->fRenderbufferStorage = glRenderbufferStorage;
   1.129 +    functions->fGenRenderbuffers = glGenRenderbuffers;
   1.130 +    functions->fDeleteRenderbuffers = glDeleteRenderbuffers;
   1.131 +    functions->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
   1.132 +    functions->fBindRenderbuffer = glBindRenderbuffer;
   1.133 +
   1.134 +#if GL_OES_mapbuffer
   1.135 +    functions->fMapBuffer = glMapBufferOES;
   1.136 +    functions->fUnmapBuffer = glUnmapBufferOES;
   1.137 +#endif
   1.138 +
   1.139 +#if GL_APPLE_framebuffer_multisample
   1.140 +    functions->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampleAPPLE;
   1.141 +    functions->fResolveMultisampleFramebuffer = glResolveMultisampleFramebufferAPPLE;
   1.142 +#endif
   1.143 +
   1.144 +#if GL_OES_vertex_array_object
   1.145 +    functions->fBindVertexArray = glBindVertexArrayOES;
   1.146 +    functions->fDeleteVertexArrays = glDeleteVertexArraysOES;
   1.147 +    functions->fGenVertexArrays = glGenVertexArraysOES;
   1.148 +#endif
   1.149 +
   1.150 +#if GL_EXT_debug_marker
   1.151 +    functions->fInsertEventMarker = glInsertEventMarkerEXT;
   1.152 +    functions->fPushGroupMarker = glPushGroupMarkerEXT;
   1.153 +    functions->fPopGroupMarker = glPopGroupMarkerEXT;
   1.154 +#endif
   1.155 +
   1.156 +    interface->fStandard = kGLES_GrGLStandard;
   1.157 +    interface->fExtensions.init(kGLES_GrGLStandard, glGetString, NULL, glGetIntegerv);
   1.158 +
   1.159 +    return interface;
   1.160 +}

mercurial