1 /******************************************************************************* 2 * Copyright 2011 See AUTHORS file. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 ******************************************************************************/ 16 17 package com.badlogic.gdx.backends.android; 18 19 import java.nio.Buffer; 20 import java.nio.FloatBuffer; 21 import java.nio.IntBuffer; 22 23 import com.badlogic.gdx.graphics.GL20; 24 25 public class AndroidGL20 implements GL20 { 26 static { 27 System.loadLibrary("gdx"); init()28 init(); 29 } 30 init()31 private static native void init (); 32 glActiveTexture(int texture)33 public native void glActiveTexture (int texture); 34 glAttachShader(int program, int shader)35 public native void glAttachShader (int program, int shader); 36 glBindAttribLocation(int program, int index, String name)37 public native void glBindAttribLocation (int program, int index, String name); 38 glBindBuffer(int target, int buffer)39 public native void glBindBuffer (int target, int buffer); 40 glBindFramebuffer(int target, int framebuffer)41 public native void glBindFramebuffer (int target, int framebuffer); 42 glBindRenderbuffer(int target, int renderbuffer)43 public native void glBindRenderbuffer (int target, int renderbuffer); 44 glBindTexture(int target, int texture)45 public native void glBindTexture (int target, int texture); 46 glBlendColor(float red, float green, float blue, float alpha)47 public native void glBlendColor (float red, float green, float blue, float alpha); 48 glBlendEquation(int mode)49 public native void glBlendEquation (int mode); 50 glBlendEquationSeparate(int modeRGB, int modeAlpha)51 public native void glBlendEquationSeparate (int modeRGB, int modeAlpha); 52 glBlendFunc(int sfactor, int dfactor)53 public native void glBlendFunc (int sfactor, int dfactor); 54 glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)55 public native void glBlendFuncSeparate (int srcRGB, int dstRGB, int srcAlpha, int dstAlpha); 56 glBufferData(int target, int size, Buffer data, int usage)57 public native void glBufferData (int target, int size, Buffer data, int usage); 58 glBufferSubData(int target, int offset, int size, Buffer data)59 public native void glBufferSubData (int target, int offset, int size, Buffer data); 60 glCheckFramebufferStatus(int target)61 public native int glCheckFramebufferStatus (int target); 62 glClear(int mask)63 public native void glClear (int mask); 64 glClearColor(float red, float green, float blue, float alpha)65 public native void glClearColor (float red, float green, float blue, float alpha); 66 glClearDepthf(float depth)67 public native void glClearDepthf (float depth); 68 glClearStencil(int s)69 public native void glClearStencil (int s); 70 glColorMask(boolean red, boolean green, boolean blue, boolean alpha)71 public native void glColorMask (boolean red, boolean green, boolean blue, boolean alpha); 72 glCompileShader(int shader)73 public native void glCompileShader (int shader); 74 glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data)75 public native void glCompressedTexImage2D (int target, int level, int internalformat, int width, int height, int border, 76 int imageSize, Buffer data); 77 glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, Buffer data)78 public native void glCompressedTexSubImage2D (int target, int level, int xoffset, int yoffset, int width, int height, 79 int format, int imageSize, Buffer data); 80 glCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border)81 public native void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border); 82 glCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height)83 public native void glCopyTexSubImage2D (int target, int level, int xoffset, int yoffset, int x, int y, int width, int height); 84 glCreateProgram()85 public native int glCreateProgram (); 86 glCreateShader(int type)87 public native int glCreateShader (int type); 88 glCullFace(int mode)89 public native void glCullFace (int mode); 90 glDeleteBuffers(int n, IntBuffer buffers)91 public native void glDeleteBuffers (int n, IntBuffer buffers); 92 glDeleteBuffer(int buffer)93 public native void glDeleteBuffer (int buffer); 94 glDeleteFramebuffers(int n, IntBuffer framebuffers)95 public native void glDeleteFramebuffers (int n, IntBuffer framebuffers); 96 glDeleteFramebuffer(int framebuffer)97 public native void glDeleteFramebuffer (int framebuffer); 98 glDeleteProgram(int program)99 public native void glDeleteProgram (int program); 100 glDeleteRenderbuffers(int n, IntBuffer renderbuffers)101 public native void glDeleteRenderbuffers (int n, IntBuffer renderbuffers); 102 glDeleteRenderbuffer(int renderbuffer)103 public native void glDeleteRenderbuffer (int renderbuffer); 104 glDeleteShader(int shader)105 public native void glDeleteShader (int shader); 106 glDeleteTextures(int n, IntBuffer textures)107 public native void glDeleteTextures (int n, IntBuffer textures); 108 glDeleteTexture(int texture)109 public native void glDeleteTexture (int texture); 110 glDepthFunc(int func)111 public native void glDepthFunc (int func); 112 glDepthMask(boolean flag)113 public native void glDepthMask (boolean flag); 114 glDepthRangef(float zNear, float zFar)115 public native void glDepthRangef (float zNear, float zFar); 116 glDetachShader(int program, int shader)117 public native void glDetachShader (int program, int shader); 118 glDisable(int cap)119 public native void glDisable (int cap); 120 glDisableVertexAttribArray(int index)121 public native void glDisableVertexAttribArray (int index); 122 glDrawArrays(int mode, int first, int count)123 public native void glDrawArrays (int mode, int first, int count); 124 glDrawElements(int mode, int count, int type, Buffer indices)125 public native void glDrawElements (int mode, int count, int type, Buffer indices); 126 glDrawElements(int mode, int count, int type, int indices)127 public native void glDrawElements (int mode, int count, int type, int indices); 128 glEnable(int cap)129 public native void glEnable (int cap); 130 glEnableVertexAttribArray(int index)131 public native void glEnableVertexAttribArray (int index); 132 glFinish()133 public native void glFinish (); 134 glFlush()135 public native void glFlush (); 136 glFramebufferRenderbuffer(int target, int attachment, int renderbuffertarget, int renderbuffer)137 public native void glFramebufferRenderbuffer (int target, int attachment, int renderbuffertarget, int renderbuffer); 138 glFramebufferTexture2D(int target, int attachment, int textarget, int texture, int level)139 public native void glFramebufferTexture2D (int target, int attachment, int textarget, int texture, int level); 140 glFrontFace(int mode)141 public native void glFrontFace (int mode); 142 glGenBuffers(int n, IntBuffer buffers)143 public native void glGenBuffers (int n, IntBuffer buffers); 144 glGenBuffer()145 public native int glGenBuffer (); 146 glGenerateMipmap(int target)147 public native void glGenerateMipmap (int target); 148 glGenFramebuffers(int n, IntBuffer framebuffers)149 public native void glGenFramebuffers (int n, IntBuffer framebuffers); 150 glGenFramebuffer()151 public native int glGenFramebuffer (); 152 glGenRenderbuffers(int n, IntBuffer renderbuffers)153 public native void glGenRenderbuffers (int n, IntBuffer renderbuffers); 154 glGenRenderbuffer()155 public native int glGenRenderbuffer (); 156 glGenTextures(int n, IntBuffer textures)157 public native void glGenTextures (int n, IntBuffer textures); 158 glGenTexture()159 public native int glGenTexture (); 160 glGetActiveAttrib(int program, int index, IntBuffer size, Buffer type)161 public native String glGetActiveAttrib (int program, int index, IntBuffer size, Buffer type); 162 glGetActiveUniform(int program, int index, IntBuffer size, Buffer type)163 public native String glGetActiveUniform (int program, int index, IntBuffer size, Buffer type); 164 glGetAttachedShaders(int program, int maxcount, Buffer count, IntBuffer shaders)165 public native void glGetAttachedShaders (int program, int maxcount, Buffer count, IntBuffer shaders); 166 glGetAttribLocation(int program, String name)167 public native int glGetAttribLocation (int program, String name); 168 glGetBooleanv(int pname, Buffer params)169 public native void glGetBooleanv (int pname, Buffer params); 170 glGetBufferParameteriv(int target, int pname, IntBuffer params)171 public native void glGetBufferParameteriv (int target, int pname, IntBuffer params); 172 glGetError()173 public native int glGetError (); 174 glGetFloatv(int pname, FloatBuffer params)175 public native void glGetFloatv (int pname, FloatBuffer params); 176 glGetFramebufferAttachmentParameteriv(int target, int attachment, int pname, IntBuffer params)177 public native void glGetFramebufferAttachmentParameteriv (int target, int attachment, int pname, IntBuffer params); 178 glGetIntegerv(int pname, IntBuffer params)179 public native void glGetIntegerv (int pname, IntBuffer params); 180 glGetProgramiv(int program, int pname, IntBuffer params)181 public native void glGetProgramiv (int program, int pname, IntBuffer params); 182 glGetProgramInfoLog(int program)183 public native String glGetProgramInfoLog (int program); 184 glGetRenderbufferParameteriv(int target, int pname, IntBuffer params)185 public native void glGetRenderbufferParameteriv (int target, int pname, IntBuffer params); 186 glGetShaderiv(int shader, int pname, IntBuffer params)187 public native void glGetShaderiv (int shader, int pname, IntBuffer params); 188 glGetShaderInfoLog(int shader)189 public native String glGetShaderInfoLog (int shader); 190 glGetShaderPrecisionFormat(int shadertype, int precisiontype, IntBuffer range, IntBuffer precision)191 public native void glGetShaderPrecisionFormat (int shadertype, int precisiontype, IntBuffer range, IntBuffer precision); 192 glGetShaderSource(int shader, int bufsize, Buffer length, String source)193 public native void glGetShaderSource (int shader, int bufsize, Buffer length, String source); 194 glGetString(int name)195 public native String glGetString (int name); 196 glGetTexParameterfv(int target, int pname, FloatBuffer params)197 public native void glGetTexParameterfv (int target, int pname, FloatBuffer params); 198 glGetTexParameteriv(int target, int pname, IntBuffer params)199 public native void glGetTexParameteriv (int target, int pname, IntBuffer params); 200 glGetUniformfv(int program, int location, FloatBuffer params)201 public native void glGetUniformfv (int program, int location, FloatBuffer params); 202 glGetUniformiv(int program, int location, IntBuffer params)203 public native void glGetUniformiv (int program, int location, IntBuffer params); 204 glGetUniformLocation(int program, String name)205 public native int glGetUniformLocation (int program, String name); 206 glGetVertexAttribfv(int index, int pname, FloatBuffer params)207 public native void glGetVertexAttribfv (int index, int pname, FloatBuffer params); 208 glGetVertexAttribiv(int index, int pname, IntBuffer params)209 public native void glGetVertexAttribiv (int index, int pname, IntBuffer params); 210 glGetVertexAttribPointerv(int index, int pname, Buffer pointer)211 public native void glGetVertexAttribPointerv (int index, int pname, Buffer pointer); 212 glHint(int target, int mode)213 public native void glHint (int target, int mode); 214 glIsBuffer(int buffer)215 public native boolean glIsBuffer (int buffer); 216 glIsEnabled(int cap)217 public native boolean glIsEnabled (int cap); 218 glIsFramebuffer(int framebuffer)219 public native boolean glIsFramebuffer (int framebuffer); 220 glIsProgram(int program)221 public native boolean glIsProgram (int program); 222 glIsRenderbuffer(int renderbuffer)223 public native boolean glIsRenderbuffer (int renderbuffer); 224 glIsShader(int shader)225 public native boolean glIsShader (int shader); 226 glIsTexture(int texture)227 public native boolean glIsTexture (int texture); 228 glLineWidth(float width)229 public native void glLineWidth (float width); 230 glLinkProgram(int program)231 public native void glLinkProgram (int program); 232 glPixelStorei(int pname, int param)233 public native void glPixelStorei (int pname, int param); 234 glPolygonOffset(float factor, float units)235 public native void glPolygonOffset (float factor, float units); 236 glReadPixels(int x, int y, int width, int height, int format, int type, Buffer pixels)237 public native void glReadPixels (int x, int y, int width, int height, int format, int type, Buffer pixels); 238 glReleaseShaderCompiler()239 public native void glReleaseShaderCompiler (); 240 glRenderbufferStorage(int target, int internalformat, int width, int height)241 public native void glRenderbufferStorage (int target, int internalformat, int width, int height); 242 glSampleCoverage(float value, boolean invert)243 public native void glSampleCoverage (float value, boolean invert); 244 glScissor(int x, int y, int width, int height)245 public native void glScissor (int x, int y, int width, int height); 246 glShaderBinary(int n, IntBuffer shaders, int binaryformat, Buffer binary, int length)247 public native void glShaderBinary (int n, IntBuffer shaders, int binaryformat, Buffer binary, int length); 248 glShaderSource(int shader, String string)249 public native void glShaderSource (int shader, String string); 250 glStencilFunc(int func, int ref, int mask)251 public native void glStencilFunc (int func, int ref, int mask); 252 glStencilFuncSeparate(int face, int func, int ref, int mask)253 public native void glStencilFuncSeparate (int face, int func, int ref, int mask); 254 glStencilMask(int mask)255 public native void glStencilMask (int mask); 256 glStencilMaskSeparate(int face, int mask)257 public native void glStencilMaskSeparate (int face, int mask); 258 glStencilOp(int fail, int zfail, int zpass)259 public native void glStencilOp (int fail, int zfail, int zpass); 260 glStencilOpSeparate(int face, int fail, int zfail, int zpass)261 public native void glStencilOpSeparate (int face, int fail, int zfail, int zpass); 262 glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels)263 public native void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, 264 int type, Buffer pixels); 265 glTexParameterf(int target, int pname, float param)266 public native void glTexParameterf (int target, int pname, float param); 267 glTexParameterfv(int target, int pname, FloatBuffer params)268 public native void glTexParameterfv (int target, int pname, FloatBuffer params); 269 glTexParameteri(int target, int pname, int param)270 public native void glTexParameteri (int target, int pname, int param); 271 glTexParameteriv(int target, int pname, IntBuffer params)272 public native void glTexParameteriv (int target, int pname, IntBuffer params); 273 glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Buffer pixels)274 public native void glTexSubImage2D (int target, int level, int xoffset, int yoffset, int width, int height, int format, 275 int type, Buffer pixels); 276 glUniform1f(int location, float x)277 public native void glUniform1f (int location, float x); 278 glUniform1fv(int location, int count, FloatBuffer v)279 public native void glUniform1fv (int location, int count, FloatBuffer v); 280 glUniform1fv(int location, int count, float[] v, int offset)281 public native void glUniform1fv (int location, int count, float[] v, int offset); 282 glUniform1i(int location, int x)283 public native void glUniform1i (int location, int x); 284 glUniform1iv(int location, int count, IntBuffer v)285 public native void glUniform1iv (int location, int count, IntBuffer v); 286 glUniform1iv(int location, int count, int[] v, int offset)287 public native void glUniform1iv (int location, int count, int[] v, int offset); 288 glUniform2f(int location, float x, float y)289 public native void glUniform2f (int location, float x, float y); 290 glUniform2fv(int location, int count, FloatBuffer v)291 public native void glUniform2fv (int location, int count, FloatBuffer v); 292 glUniform2fv(int location, int count, float[] v, int offset)293 public native void glUniform2fv (int location, int count, float[] v, int offset); 294 glUniform2i(int location, int x, int y)295 public native void glUniform2i (int location, int x, int y); 296 glUniform2iv(int location, int count, IntBuffer v)297 public native void glUniform2iv (int location, int count, IntBuffer v); 298 glUniform2iv(int location, int count, int[] v, int offset)299 public native void glUniform2iv (int location, int count, int[] v, int offset); 300 glUniform3f(int location, float x, float y, float z)301 public native void glUniform3f (int location, float x, float y, float z); 302 glUniform3fv(int location, int count, FloatBuffer v)303 public native void glUniform3fv (int location, int count, FloatBuffer v); 304 glUniform3fv(int location, int count, float[] v, int offset)305 public native void glUniform3fv (int location, int count, float[] v, int offset); 306 glUniform3i(int location, int x, int y, int z)307 public native void glUniform3i (int location, int x, int y, int z); 308 glUniform3iv(int location, int count, IntBuffer v)309 public native void glUniform3iv (int location, int count, IntBuffer v); 310 glUniform3iv(int location, int count, int[] v, int offset)311 public native void glUniform3iv (int location, int count, int[] v, int offset); 312 glUniform4f(int location, float x, float y, float z, float w)313 public native void glUniform4f (int location, float x, float y, float z, float w); 314 glUniform4fv(int location, int count, FloatBuffer v)315 public native void glUniform4fv (int location, int count, FloatBuffer v); 316 glUniform4fv(int location, int count, float[] v, int offset)317 public native void glUniform4fv (int location, int count, float[] v, int offset); 318 glUniform4i(int location, int x, int y, int z, int w)319 public native void glUniform4i (int location, int x, int y, int z, int w); 320 glUniform4iv(int location, int count, IntBuffer v)321 public native void glUniform4iv (int location, int count, IntBuffer v); 322 glUniform4iv(int location, int count, int[] v, int offset)323 public native void glUniform4iv (int location, int count, int[] v, int offset); 324 glUniformMatrix2fv(int location, int count, boolean transpose, FloatBuffer value)325 public native void glUniformMatrix2fv (int location, int count, boolean transpose, FloatBuffer value); 326 glUniformMatrix2fv(int location, int count, boolean transpose, float[] value, int offset)327 public native void glUniformMatrix2fv (int location, int count, boolean transpose, float[] value, int offset); 328 glUniformMatrix3fv(int location, int count, boolean transpose, FloatBuffer value)329 public native void glUniformMatrix3fv (int location, int count, boolean transpose, FloatBuffer value); 330 glUniformMatrix3fv(int location, int count, boolean transpose, float[] value, int offset)331 public native void glUniformMatrix3fv (int location, int count, boolean transpose, float[] value, int offset); 332 glUniformMatrix4fv(int location, int count, boolean transpose, FloatBuffer value)333 public native void glUniformMatrix4fv (int location, int count, boolean transpose, FloatBuffer value); 334 glUniformMatrix4fv(int location, int count, boolean transpose, float[] value, int offset)335 public native void glUniformMatrix4fv (int location, int count, boolean transpose, float[] value, int offset); 336 glUseProgram(int program)337 public native void glUseProgram (int program); 338 glValidateProgram(int program)339 public native void glValidateProgram (int program); 340 glVertexAttrib1f(int indx, float x)341 public native void glVertexAttrib1f (int indx, float x); 342 glVertexAttrib1fv(int indx, FloatBuffer values)343 public native void glVertexAttrib1fv (int indx, FloatBuffer values); 344 glVertexAttrib2f(int indx, float x, float y)345 public native void glVertexAttrib2f (int indx, float x, float y); 346 glVertexAttrib2fv(int indx, FloatBuffer values)347 public native void glVertexAttrib2fv (int indx, FloatBuffer values); 348 glVertexAttrib3f(int indx, float x, float y, float z)349 public native void glVertexAttrib3f (int indx, float x, float y, float z); 350 glVertexAttrib3fv(int indx, FloatBuffer values)351 public native void glVertexAttrib3fv (int indx, FloatBuffer values); 352 glVertexAttrib4f(int indx, float x, float y, float z, float w)353 public native void glVertexAttrib4f (int indx, float x, float y, float z, float w); 354 glVertexAttrib4fv(int indx, FloatBuffer values)355 public native void glVertexAttrib4fv (int indx, FloatBuffer values); 356 glVertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, Buffer ptr)357 public native void glVertexAttribPointer (int indx, int size, int type, boolean normalized, int stride, Buffer ptr); 358 glVertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, int ptr)359 public native void glVertexAttribPointer (int indx, int size, int type, boolean normalized, int stride, int ptr); 360 glViewport(int x, int y, int width, int height)361 public native void glViewport (int x, int y, int width, int height); 362 } 363