From 0538780f8e4331d8331efd5c315b23a3b9d27935 Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Fri, 28 Aug 2015 22:56:09 -0700 Subject: [PATCH] Move GL to CFFI Prime --- lime/graphics/opengl/GL.hx | 595 ++++---- .../src/graphics/opengl/OpenGLBindings.cpp | 1221 +++++++---------- 2 files changed, 815 insertions(+), 1001 deletions(-) diff --git a/lime/graphics/opengl/GL.hx b/lime/graphics/opengl/GL.hx index d0cd6070a..ee639626d 100644 --- a/lime/graphics/opengl/GL.hx +++ b/lime/graphics/opengl/GL.hx @@ -53,8 +53,6 @@ class GL { public static inline var SRC_ALPHA_SATURATE = 0x0308; public static inline var FUNC_ADD = 0x8006; - public static inline var MIN = 0x8007; - public static inline var MAX = 0x8008; public static inline var BLEND_EQUATION = 0x8009; public static inline var BLEND_EQUATION_RGB = 0x8009; public static inline var BLEND_EQUATION_ALPHA = 0x883D; @@ -178,6 +176,8 @@ class GL { public static inline var ALPHA = 0x1906; public static inline var RGB = 0x1907; public static inline var RGBA = 0x1908; + public static inline var BGR_EXT = 0x80E0; + public static inline var BGRA_EXT = 0x80E1; public static inline var LUMINANCE = 0x1909; public static inline var LUMINANCE_ALPHA = 0x190A; @@ -388,7 +388,7 @@ class GL { #if (js && html5 && !display) context.activeTexture (texture); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_active_texture (texture); + lime_gl_active_texture.call (texture); #elseif java GL13.glActiveTexture (texture); #end @@ -402,7 +402,7 @@ class GL { context.attachShader (program, shader); #elseif ((cpp || neko || nodejs) && lime_opengl) program.attach (shader); - lime_gl_attach_shader (program.id, shader.id); + lime_gl_attach_shader.call (program.id, shader.id); #elseif java program.attach (shader); GL20.glAttachShader (program.id, shader.id); @@ -416,7 +416,7 @@ class GL { #if (js && html5 && !display) context.bindAttribLocation (program, index, name); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_bind_attrib_location (program.id, index, name); + lime_gl_bind_attrib_location.call (program.id, index, name); #elseif java GL20.glBindAttribLocation (program.id, index, name); #end @@ -429,7 +429,7 @@ class GL { #if (js && html5 && !display) context.bindBuffer (target, buffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_bind_buffer (target, buffer == null ? 0 : buffer.id); + lime_gl_bind_buffer.call (target, buffer == null ? 0 : buffer.id); #elseif java GL15.glBindBuffer (target, buffer == null ? 0 : buffer.id); #end @@ -442,7 +442,7 @@ class GL { #if (js && html5 && !display) context.bindFramebuffer (target, framebuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_bind_framebuffer (target, framebuffer == null ? 0 : framebuffer.id); + lime_gl_bind_framebuffer.call (target, framebuffer == null ? 0 : framebuffer.id); #elseif java GL30.glBindFramebuffer (target, framebuffer == null ? 0 : framebuffer.id); #end @@ -455,7 +455,7 @@ class GL { #if (js && html5 && !display) context.bindRenderbuffer (target, renderbuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_bind_renderbuffer (target, renderbuffer == null ? 0 : renderbuffer.id); + lime_gl_bind_renderbuffer.call (target, renderbuffer == null ? 0 : renderbuffer.id); #elseif java GL30.glBindRenderbuffer (target, renderbuffer == null ? 0 : renderbuffer.id); #end @@ -468,7 +468,7 @@ class GL { #if (js && html5 && !display) context.bindTexture (target, texture); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_bind_texture (target, texture == null ? 0 : texture.id); + lime_gl_bind_texture.call (target, texture == null ? 0 : texture.id); #elseif java GL11.glBindTexture (target, texture == null ? 0 : texture.id); #end @@ -481,7 +481,7 @@ class GL { #if (js && html5 && !display) context.blendColor (red, green, blue, alpha); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_blend_color (red, green, blue, alpha); + lime_gl_blend_color.call (red, green, blue, alpha); #elseif java EXTBlendColor.glBlendColorEXT (red, green, blue, alpha); #end @@ -494,7 +494,7 @@ class GL { #if (js && html5 && !display) context.blendEquation (mode); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_blend_equation (mode); + lime_gl_blend_equation.call (mode); #elseif java GL14.glBlendEquation (mode); #end @@ -507,7 +507,7 @@ class GL { #if (js && html5 && !display) context.blendEquationSeparate (modeRGB, modeAlpha); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_blend_equation_separate (modeRGB, modeAlpha); + lime_gl_blend_equation_separate.call (modeRGB, modeAlpha); #elseif java GL20.glBlendEquationSeparate (modeRGB, modeAlpha); #end @@ -520,7 +520,7 @@ class GL { #if (js && html5 && !display) context.blendFunc (sfactor, dfactor); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_blend_func (sfactor, dfactor); + lime_gl_blend_func.call (sfactor, dfactor); #elseif java GL11.glBlendFunc (sfactor, dfactor); #end @@ -533,7 +533,7 @@ class GL { #if (js && html5 && !display) context.blendFuncSeparate (srcRGB, dstRGB, srcAlpha, dstAlpha); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_blend_func_separate (srcRGB, dstRGB, srcAlpha, dstAlpha); + lime_gl_blend_func_separate.call (srcRGB, dstRGB, srcAlpha, dstAlpha); #elseif java GL14.glBlendFuncSeparate (srcRGB, dstRGB, srcAlpha, dstAlpha); #end @@ -546,9 +546,9 @@ class GL { #if (js && html5 && !display) context.bufferData (target, data, usage); #elseif ((cpp || neko) && lime_opengl) - lime_gl_buffer_data (target, data.buffer, data.byteOffset, data.byteLength, usage); + lime_gl_buffer_data.call (target, data.buffer, data.byteOffset, data.byteLength, usage); #elseif (nodejs && lime_opengl) - lime_gl_buffer_data (target, data, data.byteOffset, data.byteLength, usage); + lime_gl_buffer_data.call (target, data, data.byteOffset, data.byteLength, usage); #elseif java //GL15.glBufferData (target, data.buffer, data.byteOffset, data.byteLength, usage); #end @@ -561,9 +561,9 @@ class GL { #if (js && html5 && !display) context.bufferSubData (target, offset, data); #elseif ((cpp || neko) && lime_opengl) - lime_gl_buffer_sub_data (target, offset, data.buffer, data.byteOffset, data.byteLength); + lime_gl_buffer_sub_data.call (target, offset, data.buffer, data.byteOffset, data.byteLength); #elseif (nodejs && lime_opengl) - lime_gl_buffer_sub_data (target, offset, data, data.byteOffset, data.byteLength); + lime_gl_buffer_sub_data.call (target, offset, data, data.byteOffset, data.byteLength); #elseif java //GL15.glBufferSubData (target, offset, data.buffer, data.byteOffset, data.byteLength); #end @@ -576,7 +576,7 @@ class GL { #if (js && html5 && !display) return context.checkFramebufferStatus (target); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_check_framebuffer_status (target); + return lime_gl_check_framebuffer_status.call (target); #elseif java return GL30.glCheckFramebufferStatus (target); #else @@ -591,7 +591,7 @@ class GL { #if (js && html5 && !display) context.clear (mask); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_clear (mask); + lime_gl_clear.call (mask); #elseif java GL11.glClear (mask); #end @@ -604,7 +604,7 @@ class GL { #if (js && html5 && !display) context.clearColor (red, green, blue, alpha); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_clear_color (red, green, blue, alpha); + lime_gl_clear_color.call (red, green, blue, alpha); #elseif java GL11.glClearColor (red, green, blue, alpha); #end @@ -617,7 +617,7 @@ class GL { #if (js && html5 && !display) context.clearDepth (depth); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_clear_depth (depth); + lime_gl_clear_depth.call (depth); #elseif java GL11.glClearDepth (depth); #end @@ -630,7 +630,7 @@ class GL { #if (js && html5 && !display) context.clearStencil (s); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_clear_stencil (s); + lime_gl_clear_stencil.call (s); #elseif java GL11.glClearStencil (s); #end @@ -643,7 +643,7 @@ class GL { #if (js && html5 && !display) context.colorMask (red, green, blue, alpha); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_color_mask (red, green, blue, alpha); + lime_gl_color_mask.call (red, green, blue, alpha); #elseif java GL11.glColorMask (red, green, blue, alpha); #end @@ -656,7 +656,7 @@ class GL { #if (js && html5 && !display) context.compileShader (shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_compile_shader (shader.id); + lime_gl_compile_shader.call (shader.id); #elseif java GL20.glCompileShader (shader.id); #end @@ -669,9 +669,9 @@ class GL { #if (js && html5 && !display) context.compressedTexImage2D (target, level, internalformat, width, height, border, data); #elseif ((cpp || neko) && lime_opengl) - lime_gl_compressed_tex_image_2d (target, level, internalformat, width, height, border, data == null ? null : data.buffer, data == null ? null : data.byteOffset); + lime_gl_compressed_tex_image_2d.call (target, level, internalformat, width, height, border, data == null ? null : data.buffer, data == null ? null : data.byteOffset); #elseif (nodejs && lime_opengl) - lime_gl_compressed_tex_image_2d (target, level, internalformat, width, height, border, data == null ? null : data , data == null ? null : data.byteOffset); + lime_gl_compressed_tex_image_2d.call (target, level, internalformat, width, height, border, data == null ? null : data , data == null ? null : data.byteOffset); #elseif java //GL13.glCompressedTexImage2D (target, level, internalformat, width, height, border, data == null ? null : data.buffer, data == null ? null : data.byteOffset); #end @@ -684,9 +684,9 @@ class GL { #if (js && html5 && !display) context.compressedTexSubImage2D (target, level, xoffset, yoffset, width, height, format, data); #elseif ((cpp || neko) && lime_opengl) - lime_gl_compressed_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, data == null ? null : data.buffer, data == null ? null : data.byteOffset); + lime_gl_compressed_tex_sub_image_2d.call (target, level, xoffset, yoffset, width, height, format, data == null ? null : data.buffer, data == null ? null : data.byteOffset); #elseif (nodejs && lime_opengl) - lime_gl_compressed_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, data == null ? null : data, data == null ? null : data.byteOffset); + lime_gl_compressed_tex_sub_image_2d.call (target, level, xoffset, yoffset, width, height, format, data == null ? null : data, data == null ? null : data.byteOffset); #elseif java //GL13.glCompressedTexSubImage2D (target, level, xoffset, yoffset, width, height, format, data == null ? null : data.buffer, data == null ? null : data.byteOffset); #end @@ -699,7 +699,7 @@ class GL { #if (js && html5 && !display) context.copyTexImage2D (target, level, internalformat, x, y, width, height, border); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_copy_tex_image_2d (target, level, internalformat, x, y, width, height, border); + lime_gl_copy_tex_image_2d.call (target, level, internalformat, x, y, width, height, border); #elseif java GL11.glCopyTexImage2D (target, level, internalformat, x, y, width, height, border); #end @@ -712,7 +712,7 @@ class GL { #if (js && html5 && !display) context.copyTexSubImage2D (target, level, xoffset, yoffset, x, y, width, height); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_copy_tex_sub_image_2d (target, level, xoffset, yoffset, x, y, width, height); + lime_gl_copy_tex_sub_image_2d.call (target, level, xoffset, yoffset, x, y, width, height); #elseif java GL11.glCopyTexSubImage2D (target, level, xoffset, yoffset, x, y, width, height); #end @@ -725,7 +725,7 @@ class GL { #if (js && html5 && !display) return context.createBuffer (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLBuffer (version, lime_gl_create_buffer ()); + return new GLBuffer (version, lime_gl_create_buffer.call ()); #elseif java //return new GLBuffer (version, GL15.glGenBuffers (1)); return null; @@ -741,7 +741,7 @@ class GL { #if (js && html5 && !display) return context.createFramebuffer (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLFramebuffer (version, lime_gl_create_framebuffer ()); + return new GLFramebuffer (version, lime_gl_create_framebuffer.call ()); #elseif java //return new GLFramebuffer (version, GL30.glGenFramebuffers (1)); return null; @@ -757,7 +757,7 @@ class GL { #if (js && html5 && !display) return context.createProgram (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLProgram (version, lime_gl_create_program ()); + return new GLProgram (version, lime_gl_create_program.call ()); #elseif java return new GLProgram (version, GL20.glCreateProgram ()); #else @@ -772,7 +772,7 @@ class GL { #if (js && html5 && !display) return context.createRenderbuffer (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLRenderbuffer (version, lime_gl_create_render_buffer ()); + return new GLRenderbuffer (version, lime_gl_create_render_buffer.call ()); #elseif java //return new GLRenderbuffer (version, GL30.glGenRenderbuffers (1)); return null; @@ -788,7 +788,7 @@ class GL { #if (js && html5 && !display) return context.createShader (type); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLShader (version, lime_gl_create_shader (type)); + return new GLShader (version, lime_gl_create_shader.call (type)); #elseif java return new GLShader (version, GL20.glCreateShader (type)); #else @@ -803,7 +803,7 @@ class GL { #if (js && html5 && !display) return context.createTexture (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return new GLTexture (version, lime_gl_create_texture ()); + return new GLTexture (version, lime_gl_create_texture.call ()); #elseif java //return new GLTexture (version, GL11.glGenTextures (1)); return null; @@ -819,7 +819,7 @@ class GL { #if (js && html5 && !display) context.cullFace (mode); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_cull_face (mode); + lime_gl_cull_face.call (mode); #elseif java GL11.glCullFace (mode); #end @@ -832,7 +832,7 @@ class GL { #if (js && html5 && !display) context.deleteBuffer (buffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_buffer (buffer.id); + lime_gl_delete_buffer.call (buffer.id); buffer.invalidate (); #elseif java GL15.glDeleteBuffers (buffer.id); @@ -847,7 +847,7 @@ class GL { #if (js && html5 && !display) context.deleteFramebuffer (framebuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_framebuffer (framebuffer.id); + lime_gl_delete_framebuffer.call (framebuffer.id); framebuffer.invalidate (); #elseif GL30.glDeleteFramebuffers (framebuffer.id); @@ -862,7 +862,7 @@ class GL { #if (js && html5 && !display) context.deleteProgram (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_program (program.id); + lime_gl_delete_program.call (program.id); program.invalidate (); #elseif java GL20.glDeleteProgram (program.id); @@ -877,7 +877,7 @@ class GL { #if (js && html5 && !display) context.deleteRenderbuffer (renderbuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_render_buffer (renderbuffer.id); + lime_gl_delete_render_buffer.call (renderbuffer.id); renderbuffer.invalidate (); #elseif java GL30.glDeleteRenderbuffers (renderbuffer.id); @@ -892,7 +892,7 @@ class GL { #if (js && html5 && !display) context.deleteShader (shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_shader (shader.id); + lime_gl_delete_shader.call (shader.id); shader.invalidate (); #elseif java GL20.glDeleteShader (shader.id); @@ -907,7 +907,7 @@ class GL { #if (js && html5 && !display) context.deleteTexture (texture); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_delete_texture (texture.id); + lime_gl_delete_texture.call (texture.id); texture.invalidate (); #elseif java GL11.glDeleteTextures (texture.id); @@ -922,7 +922,7 @@ class GL { #if (js && html5 && !display) context.depthFunc (func); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_depth_func (func); + lime_gl_depth_func.call (func); #elseif java GL11.glDepthFunc (func); #end @@ -935,7 +935,7 @@ class GL { #if (js && html5 && !display) context.depthMask (flag); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_depth_mask (flag); + lime_gl_depth_mask.call (flag); #elseif java GL11.glDepthMask (flag); #end @@ -948,7 +948,7 @@ class GL { #if (js && html5 && !display) context.depthRange (zNear, zFar); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_depth_range (zNear, zFar); + lime_gl_depth_range.call (zNear, zFar); #elseif java GL11.glDepthRange (zNear, zFar); #end @@ -961,7 +961,7 @@ class GL { #if (js && html5 && !display) context.detachShader (program, shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_detach_shader (program.id, shader.id); + lime_gl_detach_shader.call (program.id, shader.id); #elseif java GL20.glDetachShader (program.id, shader.id); #end @@ -974,7 +974,7 @@ class GL { #if (js && html5 && !display) context.disable (cap); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_disable (cap); + lime_gl_disable.call (cap); #elseif java GL11.glDisable (cap); #end @@ -987,7 +987,7 @@ class GL { #if (js && html5 && !display) context.disableVertexAttribArray (index); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_disable_vertex_attrib_array (index); + lime_gl_disable_vertex_attrib_array.call (index); #elseif java GL20.glDisableVertexAttribArray (index); #end @@ -1000,7 +1000,7 @@ class GL { #if (js && html5 && !display) context.drawArrays (mode, first, count); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_draw_arrays (mode, first, count); + lime_gl_draw_arrays.call (mode, first, count); #elseif java GL11.glDrawArrays (mode, first, count); #end @@ -1013,7 +1013,7 @@ class GL { #if (js && html5 && !display) context.drawElements (mode, count, type, offset); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_draw_elements (mode, count, type, offset); + lime_gl_draw_elements.call (mode, count, type, offset); #elseif java //GL11.glDrawElements (mode, count, type, offset); #end @@ -1026,7 +1026,7 @@ class GL { #if (js && html5 && !display) context.enable (cap); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_enable (cap); + lime_gl_enable.call (cap); #elseif java GL11.glEnable (cap); #end @@ -1039,7 +1039,7 @@ class GL { #if (js && html5 && !display) context.enableVertexAttribArray (index); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_enable_vertex_attrib_array (index); + lime_gl_enable_vertex_attrib_array.call (index); #elseif java GL20.glEnableVertexAttribArray (index); #end @@ -1052,7 +1052,7 @@ class GL { #if (js && html5 && !display) context.finish (); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_finish (); + lime_gl_finish.call (); #elseif java GL11.glFinish (); #end @@ -1065,7 +1065,7 @@ class GL { #if (js && html5 && !display) context.flush (); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_flush (); + lime_gl_flush.call (); #elseif java GL11.glFlush (); #end @@ -1078,7 +1078,7 @@ class GL { #if (js && html5 && !display) context.framebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_framebuffer_renderbuffer (target, attachment, renderbuffertarget, renderbuffer.id); + lime_gl_framebuffer_renderbuffer.call (target, attachment, renderbuffertarget, renderbuffer.id); #elseif java GL30.glFramebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer.id); #end @@ -1091,7 +1091,7 @@ class GL { #if (js && html5 && !display) context.framebufferTexture2D (target, attachment, textarget, texture, level); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_framebuffer_texture2D (target, attachment, textarget, texture.id, level); + lime_gl_framebuffer_texture2D.call (target, attachment, textarget, texture.id, level); #elseif java GL30.glFramebufferTexture2D (target, attachment, textarget, texture.id, level); #end @@ -1104,7 +1104,7 @@ class GL { #if (js && html5 && !display) context.frontFace (mode); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_front_face (mode); + lime_gl_front_face.call (mode); #elseif java GL11.glFrontFace (mode); #end @@ -1117,7 +1117,7 @@ class GL { #if (js && html5 && !display) context.generateMipmap (target); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_generate_mipmap (target); + lime_gl_generate_mipmap.call (target); #elseif java GL30.glGenerateMipmap (target); #end @@ -1130,7 +1130,7 @@ class GL { #if (js && html5 && !display) return context.getActiveAttrib (program, index); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_active_attrib (program.id, index); + return lime_gl_get_active_attrib.call (program.id, index); #elseif java //return GL20.glGetActiveAttrib (program.id, index); return null; @@ -1146,7 +1146,7 @@ class GL { #if (js && html5 && !display) return context.getActiveUniform (program, index); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_active_uniform (program.id, index); + return lime_gl_get_active_uniform.call (program.id, index); #elseif java //return GL20.glGetActiveUniform (program.id, index); return null; @@ -1177,7 +1177,7 @@ class GL { #if (js && html5 && !display) return context.getAttribLocation (program, name); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_attrib_location (program.id, name); + return lime_gl_get_attrib_location.call (program.id, name); #elseif java return GL20.glGetAttribLocation (program.id, name); #else @@ -1192,7 +1192,7 @@ class GL { #if (js && html5 && !display) return context.getBufferParameter (target, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_buffer_parameter (target, pname); + return lime_gl_get_buffer_parameter.call (target, pname); #elseif java //return GL15.glGetBufferParameter (target, pname); return 0; @@ -1208,7 +1208,7 @@ class GL { #if (js && html5 && !display) return context.getContextAttributes (); #elseif ((cpp || neko || nodejs) && lime_opengl) - var base = lime_gl_get_context_attributes (); + var base = lime_gl_get_context_attributes.call (); base.premultipliedAlpha = false; base.preserveDrawingBuffer = false; return base; @@ -1230,7 +1230,7 @@ class GL { #if (js && html5 && !display) return context.getError (); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_error (); + return lime_gl_get_error.call (); #elseif java return GL11.glGetError (); #else @@ -1245,9 +1245,7 @@ class GL { #if (js && html5 && !display) return context.getExtension (name); #elseif ((cpp || neko || nodejs) && lime_opengl) - //todo?! - return null; - // return lime_gl_get_extension(name); + return lime_gl_get_extension.call (name); #else return null; #end @@ -1260,7 +1258,7 @@ class GL { #if (js && html5 && !display) return context.getFramebufferAttachmentParameter (target, attachment, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_framebuffer_attachment_parameter (target, attachment, pname); + return lime_gl_get_framebuffer_attachment_parameter.call (target, attachment, pname); #elseif java //return GL30.glGetFramebufferAttachmentParameter (target, attachment, pname); return 0; @@ -1276,7 +1274,7 @@ class GL { #if (js && html5 && !display) return context.getParameter (pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_parameter (pname); + return lime_gl_get_parameter.call (pname); #elseif java return null; #else @@ -1291,7 +1289,7 @@ class GL { #if (js && html5 && !display) return context.getProgramInfoLog (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_program_info_log (program.id); + return lime_gl_get_program_info_log.call (program.id); #elseif java return GL20.glGetProgramInfoLog (program.id); #else @@ -1306,7 +1304,7 @@ class GL { #if (js && html5 && !display) return context.getProgramParameter (program, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_program_parameter (program.id, pname); + return lime_gl_get_program_parameter.call (program.id, pname); #elseif java //return GL20.glGetProgramParameter (program.id, pname); return 0; @@ -1322,7 +1320,7 @@ class GL { #if (js && html5 && !display) return context.getRenderbufferParameter (target, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_render_buffer_parameter (target, pname); + return lime_gl_get_render_buffer_parameter.call (target, pname); #elseif java //return GL30.glGetRenderbufferParameter (target, pname); return 0; @@ -1338,7 +1336,7 @@ class GL { #if (js && html5 && !display) return context.getShaderInfoLog (shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_shader_info_log (shader.id); + return lime_gl_get_shader_info_log.call (shader.id); #elseif java return GL20.glGetShaderInfoLog (shader.id); #else @@ -1353,7 +1351,7 @@ class GL { #if (js && html5 && !display) return context.getShaderParameter (shader, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_shader_parameter (shader.id, pname); + return lime_gl_get_shader_parameter.call (shader.id, pname); #elseif java //return GL20.glGetShaderParameter (shader.id, pname); return 0; @@ -1369,7 +1367,7 @@ class GL { #if (js && html5 && !display) return context.getShaderPrecisionFormat (shadertype, precisiontype); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_shader_precision_format (shadertype, precisiontype); + return lime_gl_get_shader_precision_format.call (shadertype, precisiontype); #elseif java //return GL20.glGetShaderPrecisionFormat (shadertype, precisiontype); return null; @@ -1385,7 +1383,7 @@ class GL { #if (js && html5 && !display) return context.getShaderSource (shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_shader_source (shader.id); + return lime_gl_get_shader_source.call (shader.id); #elseif java return GL20.glGetShaderSource (shader.id); #else @@ -1401,7 +1399,7 @@ class GL { return context.getSupportedExtensions (); #elseif ((cpp || neko || nodejs) && lime_opengl) var result = new Array (); - lime_gl_get_supported_extensions (result); + lime_gl_get_supported_extensions.call (result); return result; #elseif java return null; @@ -1417,7 +1415,7 @@ class GL { #if (js && html5 && !display) return context.getTexParameter (target, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_tex_parameter (target, pname); + return lime_gl_get_tex_parameter.call (target, pname); #elseif java //return GL11.nglGetTexParameteriv (target, pname); return 0; @@ -1433,7 +1431,7 @@ class GL { #if (js && html5 && !display) return context.getUniform (program, location); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_uniform (program.id, location); + return lime_gl_get_uniform.call (program.id, location); #elseif java //return GL20.glGetUniform (program.id, location); return null; @@ -1449,7 +1447,7 @@ class GL { #if (js && html5 && !display) return context.getUniformLocation (program, name); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_uniform_location (program.id, name); + return lime_gl_get_uniform_location.call (program.id, name); #elseif java return GL20.glGetUniformLocation (program.id, name); #else @@ -1464,7 +1462,7 @@ class GL { #if (js && html5 && !display) return context.getVertexAttrib (index, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_vertex_attrib (index, pname); + return lime_gl_get_vertex_attrib.call (index, pname); #elseif java return 0; #else @@ -1479,7 +1477,7 @@ class GL { #if (js && html5 && !display) return context.getVertexAttribOffset (index, pname); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_get_vertex_attrib_offset (index, pname); + return lime_gl_get_vertex_attrib_offset.call (index, pname); #elseif java return 0; #else @@ -1494,7 +1492,7 @@ class GL { #if (js && html5 && !display) context.hint (target, mode); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_hint (target, mode); + lime_gl_hint.call (target, mode); #end } @@ -1505,7 +1503,7 @@ class GL { #if (js && html5 && !display) return context.isBuffer (buffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - return buffer != null && buffer.id > 0 && lime_gl_is_buffer (buffer.id); + return buffer != null && buffer.id > 0 && lime_gl_is_buffer.call (buffer.id); #else return false; #end @@ -1529,7 +1527,7 @@ class GL { #if (js && html5 && !display) return context.isEnabled (cap); #elseif ((cpp || neko || nodejs) && lime_opengl) - return lime_gl_is_enabled (cap); + return lime_gl_is_enabled.call (cap); #else return false; #end @@ -1542,7 +1540,7 @@ class GL { #if (js && html5 && !display) return context.isFramebuffer (framebuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - return framebuffer != null && framebuffer.id > 0 && lime_gl_is_framebuffer (framebuffer.id); + return framebuffer != null && framebuffer.id > 0 && lime_gl_is_framebuffer.call (framebuffer.id); #else return false; #end @@ -1555,7 +1553,7 @@ class GL { #if (js && html5 && !display) return context.isProgram (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - return program != null && program.id > 0 && lime_gl_is_program (program.id); + return program != null && program.id > 0 && lime_gl_is_program.call (program.id); #else return false; #end @@ -1568,7 +1566,7 @@ class GL { #if (js && html5 && !display) return context.isRenderbuffer (renderbuffer); #elseif ((cpp || neko || nodejs) && lime_opengl) - return renderbuffer != null && renderbuffer.id > 0 && lime_gl_is_renderbuffer (renderbuffer.id); + return renderbuffer != null && renderbuffer.id > 0 && lime_gl_is_renderbuffer.call (renderbuffer.id); #else return false; #end @@ -1581,7 +1579,7 @@ class GL { #if (js && html5 && !display) return context.isShader (shader); #elseif ((cpp || neko || nodejs) && lime_opengl) - return shader != null && shader.id > 0 && lime_gl_is_shader (shader.id); + return shader != null && shader.id > 0 && lime_gl_is_shader.call (shader.id); #else return false; #end @@ -1594,7 +1592,7 @@ class GL { #if (js && html5 && !display) return context.isTexture (texture); #elseif ((cpp || neko || nodejs) && lime_opengl) - return texture != null && texture.id > 0 && lime_gl_is_texture (texture.id); + return texture != null && texture.id > 0 && lime_gl_is_texture.call (texture.id); #else return false; #end @@ -1607,7 +1605,7 @@ class GL { #if (js && html5 && !display) context.lineWidth (width); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_line_width (width); + lime_gl_line_width.call (width); #end } @@ -1618,7 +1616,7 @@ class GL { #if (js && html5 && !display) context.linkProgram (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_link_program (program.id); + lime_gl_link_program.call (program.id); #end } @@ -1629,7 +1627,7 @@ class GL { #if (js && html5 && !display) context.pixelStorei (pname, param); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_pixel_storei (pname, param); + lime_gl_pixel_storei.call (pname, param); #end } @@ -1640,7 +1638,7 @@ class GL { #if (js && html5 && !display) context.polygonOffset (factor, units); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_polygon_offset (factor, units); + lime_gl_polygon_offset.call (factor, units); #end } @@ -1651,9 +1649,9 @@ class GL { #if (js && html5 && !display) context.readPixels (x, y, width, height, format, type, pixels); #elseif ((cpp || neko) && lime_opengl) - lime_gl_read_pixels (x, y, width, height, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); + lime_gl_read_pixels.call (x, y, width, height, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); #elseif (nodejs && lime_opengl) - lime_gl_read_pixels (x, y, width, height, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); + lime_gl_read_pixels.call (x, y, width, height, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); #end } @@ -1664,7 +1662,7 @@ class GL { #if (js && html5 && !display) context.renderbufferStorage (target, internalformat, width, height); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_renderbuffer_storage (target, internalformat, width, height); + lime_gl_renderbuffer_storage.call (target, internalformat, width, height); #end } @@ -1675,7 +1673,7 @@ class GL { #if (js && html5 && !display) context.sampleCoverage (value, invert); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_sample_coverage (value, invert); + lime_gl_sample_coverage.call (value, invert); #end } @@ -1686,7 +1684,7 @@ class GL { #if (js && html5 && !display) context.scissor (x, y, width, height); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_scissor (x, y, width, height); + lime_gl_scissor.call (x, y, width, height); #end } @@ -1697,7 +1695,7 @@ class GL { #if (js && html5 && !display) context.shaderSource (shader, source); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_shader_source (shader.id, source); + lime_gl_shader_source.call (shader.id, source); #end } @@ -1708,7 +1706,7 @@ class GL { #if (js && html5 && !display) context.stencilFunc (func, ref, mask); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_func (func, ref, mask); + lime_gl_stencil_func.call (func, ref, mask); #end } @@ -1719,7 +1717,7 @@ class GL { #if (js && html5 && !display) context.stencilFuncSeparate (face, func, ref, mask); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_func_separate (face, func, ref, mask); + lime_gl_stencil_func_separate.call (face, func, ref, mask); #end } @@ -1730,7 +1728,7 @@ class GL { #if (js && html5 && !display) context.stencilMask (mask); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_mask (mask); + lime_gl_stencil_mask.call (mask); #end } @@ -1741,7 +1739,7 @@ class GL { #if (js && html5 && !display) context.stencilMaskSeparate (face, mask); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_mask_separate (face, mask); + lime_gl_stencil_mask_separate.call (face, mask); #end } @@ -1752,7 +1750,7 @@ class GL { #if (js && html5 && !display) context.stencilOp (fail, zfail, zpass); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_op (fail, zfail, zpass); + lime_gl_stencil_op.call (fail, zfail, zpass); #end } @@ -1763,7 +1761,7 @@ class GL { #if (js && html5 && !display) context.stencilOpSeparate (face, fail, zfail, zpass); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_stencil_op_separate (face, fail, zfail, zpass); + lime_gl_stencil_op_separate.call (face, fail, zfail, zpass); #end } @@ -1774,9 +1772,9 @@ class GL { #if (js && html5 && !display) context.texImage2D (target, level, internalformat, width, height, border, format, type, pixels); #elseif ((cpp || neko) && lime_opengl) - lime_gl_tex_image_2d (target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); + lime_gl_tex_image_2d.call (target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); #elseif (nodejs && lime_opengl) - lime_gl_tex_image_2d (target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); + lime_gl_tex_image_2d.call (target, level, internalformat, width, height, border, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); #end } @@ -1787,7 +1785,7 @@ class GL { #if (js && html5 && !display) context.texParameterf (target, pname, param); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_tex_parameterf (target, pname, param); + lime_gl_tex_parameterf.call (target, pname, param); #end } @@ -1798,7 +1796,7 @@ class GL { #if (js && html5 && !display) context.texParameteri (target, pname, param); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_tex_parameteri (target, pname, param); + lime_gl_tex_parameteri.call (target, pname, param); #end } @@ -1809,9 +1807,9 @@ class GL { #if (js && html5 && !display) context.texSubImage2D (target, level, xoffset, yoffset, width, height, format, type, pixels); #elseif ((cpp || neko) && lime_opengl) - lime_gl_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); + lime_gl_tex_sub_image_2d.call (target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels.buffer, pixels == null ? null : pixels.byteOffset); #elseif (nodejs && lime_opengl) - lime_gl_tex_sub_image_2d (target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); + lime_gl_tex_sub_image_2d.call (target, level, xoffset, yoffset, width, height, format, type, pixels == null ? null : pixels, pixels == null ? null : pixels.byteOffset); #end } @@ -1822,7 +1820,7 @@ class GL { #if (js && html5 && !display) context.uniform1f (location, x); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform1f (location, x); + lime_gl_uniform1f.call (location, x); #end } @@ -1833,9 +1831,9 @@ class GL { #if (js && html5 && !display) context.uniform1fv (location, x); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform1fv (location, x.buffer); + lime_gl_uniform1fv.call (location, x.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform1fv (location, x); + lime_gl_uniform1fv.call (location, x); #end } @@ -1846,7 +1844,7 @@ class GL { #if (js && html5 && !display) context.uniform1i (location, x); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform1i (location, x); + lime_gl_uniform1i.call (location, x); #end } @@ -1857,9 +1855,9 @@ class GL { #if (js && html5 && !display) context.uniform1iv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform1iv (location, v.buffer); + lime_gl_uniform1iv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform1iv (location, v); + lime_gl_uniform1iv.call (location, v); #end } @@ -1870,7 +1868,7 @@ class GL { #if (js && html5 && !display) context.uniform2f (location, x, y); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform2f (location, x, y); + lime_gl_uniform2f.call (location, x, y); #end } @@ -1881,9 +1879,9 @@ class GL { #if (js && html5 && !display) context.uniform2fv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform2fv (location, v.buffer); + lime_gl_uniform2fv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform2fv (location, v); + lime_gl_uniform2fv.call (location, v); #end } @@ -1894,7 +1892,7 @@ class GL { #if (js && html5 && !display) context.uniform2i (location, x, y); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform2i (location, x, y); + lime_gl_uniform2i.call (location, x, y); #end } @@ -1905,9 +1903,9 @@ class GL { #if (js && html5 && !display) context.uniform2iv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform2iv (location, v.buffer); + lime_gl_uniform2iv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform2iv (location, v); + lime_gl_uniform2iv.call (location, v); #end } @@ -1918,7 +1916,7 @@ class GL { #if (js && html5 && !display) context.uniform3f (location, x, y, z); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform3f (location, x, y, z); + lime_gl_uniform3f.call (location, x, y, z); #end } @@ -1929,9 +1927,9 @@ class GL { #if (js && html5 && !display) context.uniform3fv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform3fv (location, v.buffer); + lime_gl_uniform3fv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform3fv (location, v); + lime_gl_uniform3fv.call (location, v); #end } @@ -1942,7 +1940,7 @@ class GL { #if (js && html5 && !display) context.uniform3i (location, x, y, z); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform3i (location, x, y, z); + lime_gl_uniform3i.call (location, x, y, z); #end } @@ -1953,9 +1951,9 @@ class GL { #if (js && html5 && !display) context.uniform3iv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform3iv (location, v.buffer); + lime_gl_uniform3iv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform3iv (location, v); + lime_gl_uniform3iv.call (location, v); #end } @@ -1966,7 +1964,7 @@ class GL { #if (js && html5 && !display) context.uniform4f (location, x, y, z, w); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform4f (location, x, y, z, w); + lime_gl_uniform4f.call (location, x, y, z, w); #end } @@ -1977,9 +1975,9 @@ class GL { #if (js && html5 && !display) context.uniform4fv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform4fv (location, v.buffer); + lime_gl_uniform4fv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform4fv (location, v); + lime_gl_uniform4fv.call (location, v); #end } @@ -1990,7 +1988,7 @@ class GL { #if (js && html5 && !display) context.uniform4i (location, x, y, z, w); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_uniform4i (location, x, y, z, w); + lime_gl_uniform4i.call (location, x, y, z, w); #end } @@ -2001,9 +1999,9 @@ class GL { #if (js && html5 && !display) context.uniform4iv (location, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform4iv (location, v.buffer); + lime_gl_uniform4iv.call (location, v.buffer); #elseif (nodejs && lime_opengl) - lime_gl_uniform4iv (location, v); + lime_gl_uniform4iv.call (location, v); #end } @@ -2014,9 +2012,9 @@ class GL { #if (js && html5 && !display) context.uniformMatrix2fv (location, transpose, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v.buffer, 2); + lime_gl_uniform_matrix.call (location, transpose, v.buffer, 2); #elseif (nodejs && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v, 2); + lime_gl_uniform_matrix.call (location, transpose, v, 2); #end } @@ -2027,9 +2025,9 @@ class GL { #if (js && html5 && !display) context.uniformMatrix3fv (location, transpose, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v.buffer, 3); + lime_gl_uniform_matrix.call (location, transpose, v.buffer, 3); #elseif (nodejs && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v, 3); + lime_gl_uniform_matrix.call (location, transpose, v, 3); #end } @@ -2040,9 +2038,9 @@ class GL { #if (js && html5 && !display) context.uniformMatrix4fv (location, transpose, v); #elseif ((cpp || neko) && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v.buffer, 4); + lime_gl_uniform_matrix.call (location, transpose, v.buffer, 4); #elseif (nodejs && lime_opengl) - lime_gl_uniform_matrix (location, transpose, v, 4); + lime_gl_uniform_matrix.call (location, transpose, v, 4); #end } @@ -2060,7 +2058,7 @@ class GL { #if (js && html5 && !display) context.useProgram (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_use_program (program == null ? 0 : program.id); + lime_gl_use_program.call (program == null ? 0 : program.id); #end } @@ -2071,7 +2069,7 @@ class GL { #if (js && html5 && !display) context.validateProgram (program); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_validate_program (program.id); + lime_gl_validate_program.call (program.id); #end } @@ -2082,7 +2080,7 @@ class GL { #if (js && html5 && !display) context.vertexAttrib1f (indx, x); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_vertex_attrib1f (indx, x); + lime_gl_vertex_attrib1f.call (indx, x); #end } @@ -2093,9 +2091,9 @@ class GL { #if (js && html5 && !display) context.vertexAttrib1fv (indx, values); #elseif ((cpp || neko) && lime_opengl) - lime_gl_vertex_attrib1fv (indx, values.buffer); + lime_gl_vertex_attrib1fv.call (indx, values.buffer); #elseif (nodejs && lime_opengl) - lime_gl_vertex_attrib1fv (indx, values); + lime_gl_vertex_attrib1fv.call (indx, values); #end } @@ -2106,7 +2104,7 @@ class GL { #if (js && html5 && !display) context.vertexAttrib2f (indx, x, y); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_vertex_attrib2f (indx, x, y); + lime_gl_vertex_attrib2f.call (indx, x, y); #end } @@ -2117,9 +2115,9 @@ class GL { #if (js && html5 && !display) context.vertexAttrib2fv (indx, values); #elseif ((cpp || neko) && lime_opengl) - lime_gl_vertex_attrib2fv (indx, values.buffer); + lime_gl_vertex_attrib2fv.call (indx, values.buffer); #elseif (nodejs && lime_opengl) - lime_gl_vertex_attrib2fv (indx, values); + lime_gl_vertex_attrib2fv.call (indx, values); #end } @@ -2130,7 +2128,7 @@ class GL { #if (js && html5 && !display) context.vertexAttrib3f (indx, x, y, z); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_vertex_attrib3f (indx, x, y, z); + lime_gl_vertex_attrib3f.call (indx, x, y, z); #end } @@ -2141,9 +2139,9 @@ class GL { #if (js && html5 && !display) context.vertexAttrib3fv (indx, values); #elseif ((cpp || neko) && lime_opengl) - lime_gl_vertex_attrib3fv (indx, values.buffer); + lime_gl_vertex_attrib3fv.call (indx, values.buffer); #elseif (nodejs && lime_opengl) - lime_gl_vertex_attrib3fv (indx, values); + lime_gl_vertex_attrib3fv.call (indx, values); #end } @@ -2154,7 +2152,7 @@ class GL { #if (js && html5 && !display) context.vertexAttrib4f (indx, x, y, z, w); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_vertex_attrib4f (indx, x, y, z, w); + lime_gl_vertex_attrib4f.call (indx, x, y, z, w); #end } @@ -2165,9 +2163,9 @@ class GL { #if (js && html5 && !display) context.vertexAttrib4fv (indx, values); #elseif ((cpp || neko) && lime_opengl) - lime_gl_vertex_attrib4fv (indx, values.buffer); + lime_gl_vertex_attrib4fv.call (indx, values.buffer); #elseif (nodejs && lime_opengl) - lime_gl_vertex_attrib4fv (indx, values); + lime_gl_vertex_attrib4fv.call (indx, values); #end } @@ -2178,16 +2176,7 @@ class GL { #if (js && html5 && !display) context.vertexAttribPointer (indx, size, type, normalized, stride, offset); #elseif ((cpp || neko || nodejs) && lime_opengl) - if (normalized) { - - lime_gl_vertex_attrib_pointer_1 (indx, size, type, stride, offset); - - } else { - - lime_gl_vertex_attrib_pointer_2 (indx, size, type, stride, offset); - - } - //lime_gl_vertex_attrib_pointer (indx, size, type, normalized, stride, offset); + lime_gl_vertex_attrib_pointer.call (indx, size, type, normalized, stride, offset); #end } @@ -2198,7 +2187,7 @@ class GL { #if (js && html5 && !display) context.viewport (x, y, width, height); #elseif ((cpp || neko || nodejs) && lime_opengl) - lime_gl_viewport (x, y, width, height); + lime_gl_viewport.call (x, y, width, height); #end } @@ -2209,141 +2198,139 @@ class GL { #if ((cpp || neko || nodejs) && lime_opengl) - private static var lime_gl_active_texture = System.load ("lime", "lime_gl_active_texture", 1); - private static var lime_gl_attach_shader = System.load ("lime", "lime_gl_attach_shader", 2); - private static var lime_gl_bind_attrib_location = System.load ("lime", "lime_gl_bind_attrib_location", 3); - private static var lime_gl_bind_buffer = System.load ("lime", "lime_gl_bind_buffer", 2); - private static var lime_gl_bind_framebuffer = System.load ("lime", "lime_gl_bind_framebuffer", 2); - private static var lime_gl_bind_renderbuffer = System.load ("lime", "lime_gl_bind_renderbuffer", 2); - private static var lime_gl_bind_texture = System.load ("lime", "lime_gl_bind_texture", 2); - private static var lime_gl_blend_color = System.load ("lime", "lime_gl_blend_color", 4); - private static var lime_gl_blend_equation = System.load ("lime", "lime_gl_blend_equation", 1); - private static var lime_gl_blend_equation_separate = System.load ("lime", "lime_gl_blend_equation_separate", 2); - private static var lime_gl_blend_func = System.load ("lime", "lime_gl_blend_func", 2); - private static var lime_gl_blend_func_separate = System.load ("lime", "lime_gl_blend_func_separate", 4); - private static var lime_gl_buffer_data = System.load ("lime", "lime_gl_buffer_data", 5); - private static var lime_gl_buffer_sub_data = System.load ("lime", "lime_gl_buffer_sub_data", 5); - private static var lime_gl_check_framebuffer_status = System.load ("lime", "lime_gl_check_framebuffer_status", 1); - private static var lime_gl_clear = System.load ("lime", "lime_gl_clear", 1); - private static var lime_gl_clear_color = System.load ("lime", "lime_gl_clear_color", 4); - private static var lime_gl_clear_depth = System.load ("lime", "lime_gl_clear_depth", 1); - private static var lime_gl_clear_stencil = System.load ("lime", "lime_gl_clear_stencil", 1); - private static var lime_gl_color_mask = System.load ("lime", "lime_gl_color_mask", 4); - private static var lime_gl_compile_shader = System.load ("lime", "lime_gl_compile_shader", 1); - private static var lime_gl_compressed_tex_image_2d = System.load ("lime", "lime_gl_compressed_tex_image_2d", -1); - private static var lime_gl_compressed_tex_sub_image_2d = System.load ("lime", "lime_gl_compressed_tex_sub_image_2d", -1); - private static var lime_gl_copy_tex_image_2d = System.load ("lime", "lime_gl_copy_tex_image_2d", -1); - private static var lime_gl_copy_tex_sub_image_2d = System.load ("lime", "lime_gl_copy_tex_sub_image_2d", -1); - private static var lime_gl_create_buffer = System.load ("lime", "lime_gl_create_buffer", 0); - private static var lime_gl_create_framebuffer = System.load ("lime", "lime_gl_create_framebuffer", 0); - private static var lime_gl_create_program = System.load ("lime", "lime_gl_create_program", 0); - private static var lime_gl_create_render_buffer = System.load ("lime", "lime_gl_create_render_buffer", 0); - private static var lime_gl_create_shader = System.load ("lime", "lime_gl_create_shader", 1); - private static var lime_gl_create_texture = System.load ("lime", "lime_gl_create_texture", 0); - private static var lime_gl_cull_face = System.load ("lime", "lime_gl_cull_face", 1); - private static var lime_gl_delete_buffer = System.load ("lime", "lime_gl_delete_buffer", 1); - private static var lime_gl_delete_framebuffer = System.load ("lime", "lime_gl_delete_framebuffer", 1); - private static var lime_gl_delete_program = System.load ("lime", "lime_gl_delete_program", 1); - private static var lime_gl_delete_render_buffer = System.load ("lime", "lime_gl_delete_render_buffer", 1); - private static var lime_gl_delete_shader = System.load ("lime", "lime_gl_delete_shader", 1); - private static var lime_gl_delete_texture = System.load ("lime", "lime_gl_delete_texture", 1); - private static var lime_gl_depth_func = System.load ("lime", "lime_gl_depth_func", 1); - private static var lime_gl_depth_mask = System.load ("lime", "lime_gl_depth_mask", 1); - private static var lime_gl_depth_range = System.load ("lime", "lime_gl_depth_range", 2); - private static var lime_gl_detach_shader = System.load ("lime", "lime_gl_detach_shader", 2); - private static var lime_gl_disable = System.load ("lime", "lime_gl_disable", 1); - private static var lime_gl_disable_vertex_attrib_array = System.load ("lime", "lime_gl_disable_vertex_attrib_array", 1); - private static var lime_gl_draw_arrays = System.load ("lime", "lime_gl_draw_arrays", 3); - private static var lime_gl_draw_elements = System.load ("lime", "lime_gl_draw_elements", 4); - private static var lime_gl_enable = System.load ("lime", "lime_gl_enable", 1); - private static var lime_gl_enable_vertex_attrib_array = System.load ("lime", "lime_gl_enable_vertex_attrib_array", 1); - private static var lime_gl_finish = System.load ("lime", "lime_gl_finish", 0); - private static var lime_gl_flush = System.load ("lime", "lime_gl_flush", 0); - private static var lime_gl_framebuffer_renderbuffer = System.load ("lime", "lime_gl_framebuffer_renderbuffer", 4); - private static var lime_gl_framebuffer_texture2D = System.load ("lime", "lime_gl_framebuffer_texture2D", 5); - private static var lime_gl_front_face = System.load ("lime", "lime_gl_front_face", 1); - private static var lime_gl_generate_mipmap = System.load ("lime", "lime_gl_generate_mipmap", 1); - private static var lime_gl_get_active_attrib = System.load ("lime", "lime_gl_get_active_attrib", 2); - private static var lime_gl_get_active_uniform = System.load ("lime", "lime_gl_get_active_uniform", 2); - private static var lime_gl_get_attrib_location = System.load ("lime", "lime_gl_get_attrib_location", 2); - private static var lime_gl_get_buffer_parameter = System.load ("lime", "lime_gl_get_buffer_parameter", 2); - private static var lime_gl_get_context_attributes = System.load ("lime", "lime_gl_get_context_attributes", 0); - private static var lime_gl_get_error = System.load ("lime", "lime_gl_get_error", 0); - private static var lime_gl_get_framebuffer_attachment_parameter = System.load ("lime", "lime_gl_get_framebuffer_attachment_parameter", 3); - private static var lime_gl_get_parameter = System.load ("lime", "lime_gl_get_parameter", 1); - // static var lime_gl_get_extension = System.load ("lime", "lime_gl_get_extension", 1); - private static var lime_gl_get_program_info_log = System.load ("lime", "lime_gl_get_program_info_log", 1); - private static var lime_gl_get_program_parameter = System.load ("lime", "lime_gl_get_program_parameter", 2); - private static var lime_gl_get_render_buffer_parameter = System.load ("lime", "lime_gl_get_render_buffer_parameter", 2); - private static var lime_gl_get_shader_info_log = System.load ("lime", "lime_gl_get_shader_info_log", 1); - private static var lime_gl_get_shader_parameter = System.load ("lime", "lime_gl_get_shader_parameter", 2); - private static var lime_gl_get_shader_precision_format = System.load ("lime", "lime_gl_get_shader_precision_format", 2); - private static var lime_gl_get_shader_source = System.load ("lime", "lime_gl_get_shader_source", 1); - private static var lime_gl_get_supported_extensions = System.load ("lime", "lime_gl_get_supported_extensions", 1); - private static var lime_gl_get_tex_parameter = System.load ("lime", "lime_gl_get_tex_parameter", 2); - private static var lime_gl_get_uniform = System.load ("lime", "lime_gl_get_uniform", 2); - private static var lime_gl_get_uniform_location = System.load ("lime", "lime_gl_get_uniform_location", 2); - private static var lime_gl_get_vertex_attrib = System.load ("lime", "lime_gl_get_vertex_attrib", 2); - private static var lime_gl_get_vertex_attrib_offset = System.load ("lime", "lime_gl_get_vertex_attrib_offset", 2); - private static var lime_gl_hint = System.load ("lime", "lime_gl_hint", 2); - private static var lime_gl_is_buffer = System.load ("lime", "lime_gl_is_buffer", 1); - private static var lime_gl_is_enabled = System.load ("lime", "lime_gl_is_enabled", 1); - private static var lime_gl_is_framebuffer = System.load ("lime", "lime_gl_is_framebuffer", 1); - private static var lime_gl_is_program = System.load ("lime", "lime_gl_is_program", 1); - private static var lime_gl_is_renderbuffer = System.load ("lime", "lime_gl_is_renderbuffer", 1); - private static var lime_gl_is_shader = System.load ("lime", "lime_gl_is_shader", 1); - private static var lime_gl_is_texture = System.load ("lime", "lime_gl_is_texture", 1); - private static var lime_gl_line_width = System.load ("lime", "lime_gl_line_width", 1); - private static var lime_gl_link_program = System.load ("lime", "lime_gl_link_program", 1); - private static var lime_gl_pixel_storei = System.load ("lime", "lime_gl_pixel_storei", 2); - private static var lime_gl_polygon_offset = System.load ("lime", "lime_gl_polygon_offset", 2); - private static var lime_gl_read_pixels = System.load ("lime", "lime_gl_read_pixels", -1); - private static var lime_gl_renderbuffer_storage = System.load ("lime", "lime_gl_renderbuffer_storage", 4); - private static var lime_gl_sample_coverage = System.load ("lime", "lime_gl_sample_coverage", 2); - private static var lime_gl_scissor = System.load ("lime", "lime_gl_scissor", 4); - private static var lime_gl_shader_source = System.load ("lime", "lime_gl_shader_source", 2); - private static var lime_gl_stencil_func = System.load ("lime", "lime_gl_stencil_func", 3); - private static var lime_gl_stencil_func_separate = System.load ("lime", "lime_gl_stencil_func_separate", 4); - private static var lime_gl_stencil_mask = System.load ("lime", "lime_gl_stencil_mask", 1); - private static var lime_gl_stencil_mask_separate = System.load ("lime", "lime_gl_stencil_mask_separate", 2); - private static var lime_gl_stencil_op = System.load ("lime", "lime_gl_stencil_op", 3); - private static var lime_gl_stencil_op_separate = System.load ("lime", "lime_gl_stencil_op_separate", 4); - private static var lime_gl_tex_image_2d = System.load ("lime", "lime_gl_tex_image_2d", -1); - private static var lime_gl_tex_parameterf = System.load ("lime", "lime_gl_tex_parameterf", 3); - private static var lime_gl_tex_parameteri = System.load ("lime", "lime_gl_tex_parameteri", 3); - private static var lime_gl_tex_sub_image_2d = System.load ("lime", "lime_gl_tex_sub_image_2d", -1); - private static var lime_gl_uniform1f = System.load ("lime", "lime_gl_uniform1f", 2); - private static var lime_gl_uniform1fv = System.load ("lime", "lime_gl_uniform1fv", 2); - private static var lime_gl_uniform1i = System.load ("lime", "lime_gl_uniform1i", 2); - private static var lime_gl_uniform1iv = System.load ("lime", "lime_gl_uniform1iv", 2); - private static var lime_gl_uniform2f = System.load ("lime", "lime_gl_uniform2f", 3); - private static var lime_gl_uniform2fv = System.load ("lime", "lime_gl_uniform2fv", 2); - private static var lime_gl_uniform2i = System.load ("lime", "lime_gl_uniform2i", 3); - private static var lime_gl_uniform2iv = System.load ("lime", "lime_gl_uniform2iv", 2); - private static var lime_gl_uniform3f = System.load ("lime", "lime_gl_uniform3f", 4); - private static var lime_gl_uniform3fv = System.load ("lime", "lime_gl_uniform3fv", 2); - private static var lime_gl_uniform3i = System.load ("lime", "lime_gl_uniform3i", 4); - private static var lime_gl_uniform3iv = System.load ("lime", "lime_gl_uniform3iv", 2); - private static var lime_gl_uniform4f = System.load ("lime", "lime_gl_uniform4f", 5); - private static var lime_gl_uniform4fv = System.load ("lime", "lime_gl_uniform4fv", 2); - private static var lime_gl_uniform4i = System.load ("lime", "lime_gl_uniform4i", 5); - private static var lime_gl_uniform4iv = System.load ("lime", "lime_gl_uniform4iv", 2); - private static var lime_gl_uniform_matrix = System.load ("lime", "lime_gl_uniform_matrix", 4); - private static var lime_gl_use_program = System.load ("lime", "lime_gl_use_program", 1); - private static var lime_gl_validate_program = System.load ("lime", "lime_gl_validate_program", 1); - private static var lime_gl_version = System.load ("lime", "lime_gl_version", 0); - private static var lime_gl_vertex_attrib1f = System.load ("lime", "lime_gl_vertex_attrib1f", 2); - private static var lime_gl_vertex_attrib1fv = System.load ("lime", "lime_gl_vertex_attrib1fv", 2); - private static var lime_gl_vertex_attrib2f = System.load ("lime", "lime_gl_vertex_attrib2f", 3); - private static var lime_gl_vertex_attrib2fv = System.load ("lime", "lime_gl_vertex_attrib2fv", 2); - private static var lime_gl_vertex_attrib3f = System.load ("lime", "lime_gl_vertex_attrib3f", 4); - private static var lime_gl_vertex_attrib3fv = System.load ("lime", "lime_gl_vertex_attrib3fv", 2); - private static var lime_gl_vertex_attrib4f = System.load ("lime", "lime_gl_vertex_attrib4f", 5); - private static var lime_gl_vertex_attrib4fv = System.load ("lime", "lime_gl_vertex_attrib4fv", 2); - private static var lime_gl_vertex_attrib_pointer = System.load ("lime", "lime_gl_vertex_attrib_pointer", -1); - private static var lime_gl_vertex_attrib_pointer_1 = System.load ("lime", "lime_gl_vertex_attrib_pointer_1", 5); - private static var lime_gl_vertex_attrib_pointer_2 = System.load ("lime", "lime_gl_vertex_attrib_pointer_2", 5); - private static var lime_gl_viewport = System.load ("lime", "lime_gl_viewport", 4); + private static var lime_gl_active_texture = System.loadPrime ("lime", "lime_gl_active_texture", "iv"); + private static var lime_gl_attach_shader = System.loadPrime ("lime", "lime_gl_attach_shader", "iiv"); + private static var lime_gl_bind_attrib_location = System.loadPrime ("lime", "lime_gl_bind_attrib_location", "iisv"); + private static var lime_gl_bind_buffer = System.loadPrime ("lime", "lime_gl_bind_buffer", "iiv"); + private static var lime_gl_bind_framebuffer = System.loadPrime ("lime", "lime_gl_bind_framebuffer", "iiv"); + private static var lime_gl_bind_renderbuffer = System.loadPrime ("lime", "lime_gl_bind_renderbuffer", "iiv"); + private static var lime_gl_bind_texture = System.loadPrime ("lime", "lime_gl_bind_texture", "iiv"); + private static var lime_gl_blend_color = System.loadPrime ("lime", "lime_gl_blend_color", "ffffv"); + private static var lime_gl_blend_equation = System.loadPrime ("lime", "lime_gl_blend_equation", "iv"); + private static var lime_gl_blend_equation_separate = System.loadPrime ("lime", "lime_gl_blend_equation_separate", "iiv"); + private static var lime_gl_blend_func = System.loadPrime ("lime", "lime_gl_blend_func", "iiv"); + private static var lime_gl_blend_func_separate = System.loadPrime ("lime", "lime_gl_blend_func_separate", "iiiiv"); + private static var lime_gl_buffer_data = System.loadPrime ("lime", "lime_gl_buffer_data", "ioiiiv"); + private static var lime_gl_buffer_sub_data = System.loadPrime ("lime", "lime_gl_buffer_sub_data", "iioiiv"); + private static var lime_gl_check_framebuffer_status = System.loadPrime ("lime", "lime_gl_check_framebuffer_status", "ii"); + private static var lime_gl_clear = System.loadPrime ("lime", "lime_gl_clear", "iv"); + private static var lime_gl_clear_color = System.loadPrime ("lime", "lime_gl_clear_color", "ffffv"); + private static var lime_gl_clear_depth = System.loadPrime ("lime", "lime_gl_clear_depth", "fv"); + private static var lime_gl_clear_stencil = System.loadPrime ("lime", "lime_gl_clear_stencil", "iv"); + private static var lime_gl_color_mask = System.loadPrime ("lime", "lime_gl_color_mask", "bbbbv"); + private static var lime_gl_compile_shader = System.loadPrime ("lime", "lime_gl_compile_shader", "iv"); + private static var lime_gl_compressed_tex_image_2d = System.loadPrime ("lime", "lime_gl_compressed_tex_image_2d", "iiiiiioiv"); + private static var lime_gl_compressed_tex_sub_image_2d = System.loadPrime ("lime", "lime_gl_compressed_tex_sub_image_2d", "iiiiiiioiv"); + private static var lime_gl_copy_tex_image_2d = System.loadPrime ("lime", "lime_gl_copy_tex_image_2d", "iiiiiiiiv"); + private static var lime_gl_copy_tex_sub_image_2d = System.loadPrime ("lime", "lime_gl_copy_tex_sub_image_2d", "iiiiiiiiv"); + private static var lime_gl_create_buffer = System.loadPrime ("lime", "lime_gl_create_buffer", "i"); + private static var lime_gl_create_framebuffer = System.loadPrime ("lime", "lime_gl_create_framebuffer", "i"); + private static var lime_gl_create_program = System.loadPrime ("lime", "lime_gl_create_program", "i"); + private static var lime_gl_create_render_buffer = System.loadPrime ("lime", "lime_gl_create_render_buffer", "i"); + private static var lime_gl_create_shader = System.loadPrime ("lime", "lime_gl_create_shader", "ii"); + private static var lime_gl_create_texture = System.loadPrime ("lime", "lime_gl_create_texture", "i"); + private static var lime_gl_cull_face = System.loadPrime ("lime", "lime_gl_cull_face", "iv"); + private static var lime_gl_delete_buffer = System.loadPrime ("lime", "lime_gl_delete_buffer", "iv"); + private static var lime_gl_delete_framebuffer = System.loadPrime ("lime", "lime_gl_delete_framebuffer", "iv"); + private static var lime_gl_delete_program = System.loadPrime ("lime", "lime_gl_delete_program", "iv"); + private static var lime_gl_delete_render_buffer = System.loadPrime ("lime", "lime_gl_delete_render_buffer", "iv"); + private static var lime_gl_delete_shader = System.loadPrime ("lime", "lime_gl_delete_shader", "iv"); + private static var lime_gl_delete_texture = System.loadPrime ("lime", "lime_gl_delete_texture", "iv"); + private static var lime_gl_depth_func = System.loadPrime ("lime", "lime_gl_depth_func", "iv"); + private static var lime_gl_depth_mask = System.loadPrime ("lime", "lime_gl_depth_mask", "bv"); + private static var lime_gl_depth_range = System.loadPrime ("lime", "lime_gl_depth_range", "ffv"); + private static var lime_gl_detach_shader = System.loadPrime ("lime", "lime_gl_detach_shader", "iiv"); + private static var lime_gl_disable = System.loadPrime ("lime", "lime_gl_disable", "iv"); + private static var lime_gl_disable_vertex_attrib_array = System.loadPrime ("lime", "lime_gl_disable_vertex_attrib_array", "iv"); + private static var lime_gl_draw_arrays = System.loadPrime ("lime", "lime_gl_draw_arrays", "iiiv"); + private static var lime_gl_draw_elements = System.loadPrime ("lime", "lime_gl_draw_elements", "iiiiv"); + private static var lime_gl_enable = System.loadPrime ("lime", "lime_gl_enable", "iv"); + private static var lime_gl_enable_vertex_attrib_array = System.loadPrime ("lime", "lime_gl_enable_vertex_attrib_array", "iv"); + private static var lime_gl_finish = System.loadPrime ("lime", "lime_gl_finish", "v"); + private static var lime_gl_flush = System.loadPrime ("lime", "lime_gl_flush", "v"); + private static var lime_gl_framebuffer_renderbuffer = System.loadPrime ("lime", "lime_gl_framebuffer_renderbuffer", "iiiiv"); + private static var lime_gl_framebuffer_texture2D = System.loadPrime ("lime", "lime_gl_framebuffer_texture2D", "iiiiiv"); + private static var lime_gl_front_face = System.loadPrime ("lime", "lime_gl_front_face", "iv"); + private static var lime_gl_generate_mipmap = System.loadPrime ("lime", "lime_gl_generate_mipmap", "iv"); + private static var lime_gl_get_active_attrib = System.loadPrime ("lime", "lime_gl_get_active_attrib", "iio"); + private static var lime_gl_get_active_uniform = System.loadPrime ("lime", "lime_gl_get_active_uniform", "iio"); + private static var lime_gl_get_attrib_location = System.loadPrime ("lime", "lime_gl_get_attrib_location", "isi"); + private static var lime_gl_get_buffer_parameter = System.loadPrime ("lime", "lime_gl_get_buffer_parameter", "iii"); + private static var lime_gl_get_context_attributes = System.loadPrime ("lime", "lime_gl_get_context_attributes", "o"); + private static var lime_gl_get_error = System.loadPrime ("lime", "lime_gl_get_error", "i"); + private static var lime_gl_get_extension = System.loadPrime ("lime", "lime_gl_get_extension", "sv"); + private static var lime_gl_get_framebuffer_attachment_parameter = System.loadPrime ("lime", "lime_gl_get_framebuffer_attachment_parameter", "iiii"); + private static var lime_gl_get_parameter = System.loadPrime ("lime", "lime_gl_get_parameter", "io"); + private static var lime_gl_get_program_info_log = System.loadPrime ("lime", "lime_gl_get_program_info_log", "is"); + private static var lime_gl_get_program_parameter = System.loadPrime ("lime", "lime_gl_get_program_parameter", "iii"); + private static var lime_gl_get_render_buffer_parameter = System.loadPrime ("lime", "lime_gl_get_render_buffer_parameter", "iii"); + private static var lime_gl_get_shader_info_log = System.loadPrime ("lime", "lime_gl_get_shader_info_log", "is"); + private static var lime_gl_get_shader_parameter = System.loadPrime ("lime", "lime_gl_get_shader_parameter", "iii"); + private static var lime_gl_get_shader_precision_format = System.loadPrime ("lime", "lime_gl_get_shader_precision_format", "iio"); + private static var lime_gl_get_shader_source = System.loadPrime ("lime", "lime_gl_get_shader_source", "is"); + private static var lime_gl_get_supported_extensions = System.loadPrime ("lime", "lime_gl_get_supported_extensions", "ov"); + private static var lime_gl_get_tex_parameter = System.loadPrime ("lime", "lime_gl_get_tex_parameter", "iii"); + private static var lime_gl_get_uniform = System.loadPrime ("lime", "lime_gl_get_uniform", "iio"); + private static var lime_gl_get_uniform_location = System.loadPrime ("lime", "lime_gl_get_uniform_location", "isi"); + private static var lime_gl_get_vertex_attrib = System.loadPrime ("lime", "lime_gl_get_vertex_attrib", "iii"); + private static var lime_gl_get_vertex_attrib_offset = System.loadPrime ("lime", "lime_gl_get_vertex_attrib_offset", "iii"); + private static var lime_gl_hint = System.loadPrime ("lime", "lime_gl_hint", "iiv"); + private static var lime_gl_is_buffer = System.loadPrime ("lime", "lime_gl_is_buffer", "ib"); + private static var lime_gl_is_enabled = System.loadPrime ("lime", "lime_gl_is_enabled", "ib"); + private static var lime_gl_is_framebuffer = System.loadPrime ("lime", "lime_gl_is_framebuffer", "ib"); + private static var lime_gl_is_program = System.loadPrime ("lime", "lime_gl_is_program", "ib"); + private static var lime_gl_is_renderbuffer = System.loadPrime ("lime", "lime_gl_is_renderbuffer", "ib"); + private static var lime_gl_is_shader = System.loadPrime ("lime", "lime_gl_is_shader", "ib"); + private static var lime_gl_is_texture = System.loadPrime ("lime", "lime_gl_is_texture", "ib"); + private static var lime_gl_line_width = System.loadPrime ("lime", "lime_gl_line_width", "fv"); + private static var lime_gl_link_program = System.loadPrime ("lime", "lime_gl_link_program", "iv"); + private static var lime_gl_pixel_storei = System.loadPrime ("lime", "lime_gl_pixel_storei", "iiv"); + private static var lime_gl_polygon_offset = System.loadPrime ("lime", "lime_gl_polygon_offset", "ffv"); + private static var lime_gl_read_pixels = System.loadPrime ("lime", "lime_gl_read_pixels", "iiiiiioiv"); + private static var lime_gl_renderbuffer_storage = System.loadPrime ("lime", "lime_gl_renderbuffer_storage", "iiiiv"); + private static var lime_gl_sample_coverage = System.loadPrime ("lime", "lime_gl_sample_coverage", "fbv"); + private static var lime_gl_scissor = System.loadPrime ("lime", "lime_gl_scissor", "iiiiv"); + private static var lime_gl_shader_source = System.loadPrime ("lime", "lime_gl_shader_source", "isv"); + private static var lime_gl_stencil_func = System.loadPrime ("lime", "lime_gl_stencil_func", "iiiv"); + private static var lime_gl_stencil_func_separate = System.loadPrime ("lime", "lime_gl_stencil_func_separate", "iiiiv"); + private static var lime_gl_stencil_mask = System.loadPrime ("lime", "lime_gl_stencil_mask", "iv"); + private static var lime_gl_stencil_mask_separate = System.loadPrime ("lime", "lime_gl_stencil_mask_separate", "iiv"); + private static var lime_gl_stencil_op = System.loadPrime ("lime", "lime_gl_stencil_op", "iiiv"); + private static var lime_gl_stencil_op_separate = System.loadPrime ("lime", "lime_gl_stencil_op_separate", "iiiiv"); + private static var lime_gl_tex_image_2d = System.loadPrime ("lime", "lime_gl_tex_image_2d", "iiiiiiiioiv"); + private static var lime_gl_tex_parameterf = System.loadPrime ("lime", "lime_gl_tex_parameterf", "iidv"); + private static var lime_gl_tex_parameteri = System.loadPrime ("lime", "lime_gl_tex_parameteri", "iiiv"); + private static var lime_gl_tex_sub_image_2d = System.loadPrime ("lime", "lime_gl_tex_sub_image_2d", "iiiiiiiioiv"); + private static var lime_gl_uniform1f = System.loadPrime ("lime", "lime_gl_uniform1f", "ifv"); + private static var lime_gl_uniform1fv = System.loadPrime ("lime", "lime_gl_uniform1fv", "iov"); + private static var lime_gl_uniform1i = System.loadPrime ("lime", "lime_gl_uniform1i", "iiv"); + private static var lime_gl_uniform1iv = System.loadPrime ("lime", "lime_gl_uniform1iv", "iov"); + private static var lime_gl_uniform2f = System.loadPrime ("lime", "lime_gl_uniform2f", "iffv"); + private static var lime_gl_uniform2fv = System.loadPrime ("lime", "lime_gl_uniform2fv", "iov"); + private static var lime_gl_uniform2i = System.loadPrime ("lime", "lime_gl_uniform2i", "iiiv"); + private static var lime_gl_uniform2iv = System.loadPrime ("lime", "lime_gl_uniform2iv", "iov"); + private static var lime_gl_uniform3f = System.loadPrime ("lime", "lime_gl_uniform3f", "ifffv"); + private static var lime_gl_uniform3fv = System.loadPrime ("lime", "lime_gl_uniform3fv", "iov"); + private static var lime_gl_uniform3i = System.loadPrime ("lime", "lime_gl_uniform3i", "iiiiv"); + private static var lime_gl_uniform3iv = System.loadPrime ("lime", "lime_gl_uniform3iv", "iov"); + private static var lime_gl_uniform4f = System.loadPrime ("lime", "lime_gl_uniform4f", "iffffv"); + private static var lime_gl_uniform4fv = System.loadPrime ("lime", "lime_gl_uniform4fv", "iov"); + private static var lime_gl_uniform4i = System.loadPrime ("lime", "lime_gl_uniform4i", "iiiiiv"); + private static var lime_gl_uniform4iv = System.loadPrime ("lime", "lime_gl_uniform4iv", "iov"); + private static var lime_gl_uniform_matrix = System.loadPrime ("lime", "lime_gl_uniform_matrix", "iioiv"); + private static var lime_gl_use_program = System.loadPrime ("lime", "lime_gl_use_program", "iv"); + private static var lime_gl_validate_program = System.loadPrime ("lime", "lime_gl_validate_program", "iv"); + private static var lime_gl_version = System.loadPrime ("lime", "lime_gl_version", "s"); + private static var lime_gl_vertex_attrib1f = System.loadPrime ("lime", "lime_gl_vertex_attrib1f", "ifv"); + private static var lime_gl_vertex_attrib1fv = System.loadPrime ("lime", "lime_gl_vertex_attrib1fv", "iov"); + private static var lime_gl_vertex_attrib2f = System.loadPrime ("lime", "lime_gl_vertex_attrib2f", "iffv"); + private static var lime_gl_vertex_attrib2fv = System.loadPrime ("lime", "lime_gl_vertex_attrib2fv", "iov"); + private static var lime_gl_vertex_attrib3f = System.loadPrime ("lime", "lime_gl_vertex_attrib3f", "ifffv"); + private static var lime_gl_vertex_attrib3fv = System.loadPrime ("lime", "lime_gl_vertex_attrib3fv", "iov"); + private static var lime_gl_vertex_attrib4f = System.loadPrime ("lime", "lime_gl_vertex_attrib4f", "iffffv"); + private static var lime_gl_vertex_attrib4fv = System.loadPrime ("lime", "lime_gl_vertex_attrib4fv", "iov"); + private static var lime_gl_vertex_attrib_pointer = System.loadPrime ("lime", "lime_gl_vertex_attrib_pointer", "iiibiiv"); + private static var lime_gl_viewport = System.loadPrime ("lime", "lime_gl_viewport", "iiiiv"); #end diff --git a/project/src/graphics/opengl/OpenGLBindings.cpp b/project/src/graphics/opengl/OpenGLBindings.cpp index 07ed971d4..12c516af1 100644 --- a/project/src/graphics/opengl/OpenGLBindings.cpp +++ b/project/src/graphics/opengl/OpenGLBindings.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include "OpenGL.h" #include "OpenGLBindings.h" @@ -14,6 +14,10 @@ #include #endif +#ifdef LIME_SDL +#include +#endif + namespace lime { @@ -22,109 +26,93 @@ namespace lime { void *OpenGLBindings::handle = 0; - value lime_gl_active_texture (value inSlot) { + void lime_gl_active_texture (int inSlot) { - glActiveTexture (val_int (inSlot)); - return alloc_null (); + glActiveTexture (inSlot); } - value lime_gl_attach_shader (value inProg, value inShader) { + void lime_gl_attach_shader (int inProg, int inShader) { - glAttachShader (val_int (inProg), val_int (inShader)); - return alloc_null (); + glAttachShader (inProg, inShader); } - value lime_gl_bind_attrib_location (value inId, value inSlot, value inName) { + void lime_gl_bind_attrib_location (int id, int inSlot, const char* inName) { - int id = val_int (inId); - glBindAttribLocation (id, val_int (inSlot), val_string (inName)); - return alloc_null (); + glBindAttribLocation (id, inSlot, inName); } - value lime_gl_bind_buffer (value inTarget, value inId) { + void lime_gl_bind_buffer (int inTarget, int inId) { - glBindBuffer (val_int (inTarget), val_int (inId)); - return alloc_null (); + glBindBuffer (inTarget, inId); } - value lime_gl_bind_framebuffer (value target, value framebuffer) { + void lime_gl_bind_framebuffer (int target, int framebuffer) { - glBindFramebuffer (val_int (target), val_int (framebuffer)); - return alloc_null (); + glBindFramebuffer (target, framebuffer); } - value lime_gl_bind_renderbuffer (value target, value renderbuffer) { + void lime_gl_bind_renderbuffer (int target, int renderbuffer) { - glBindRenderbuffer (val_int (target), val_int (renderbuffer)); - return alloc_null (); + glBindRenderbuffer (target, renderbuffer); } - value lime_gl_bind_texture (value inTarget, value inTexture) { + void lime_gl_bind_texture (int inTarget, int inTexture) { - glBindTexture (val_int (inTarget), val_int (inTexture)); - return alloc_null (); + glBindTexture (inTarget, inTexture); } - value lime_gl_blend_color (value r, value g, value b, value a) { + void lime_gl_blend_color (float r, float g, float b, float a) { - glBlendColor (val_number (r), val_number (g), val_number (b), val_number (a)); - return alloc_null (); + glBlendColor (r, g, b, a); } - value lime_gl_blend_equation (value mode) { + void lime_gl_blend_equation (int mode) { - glBlendEquation (val_int (mode)); - return alloc_null (); + glBlendEquation (mode); } - value lime_gl_blend_equation_separate (value rgb, value a) { + void lime_gl_blend_equation_separate (int rgb, int a) { - glBlendEquationSeparate (val_int (rgb), val_int (a)); - return alloc_null (); + glBlendEquationSeparate (rgb, a); } - value lime_gl_blend_func (value s, value d) { + void lime_gl_blend_func (int s, int d) { - glBlendFunc (val_int (s), val_int (d)); - return alloc_null (); + glBlendFunc (s, d); } - value lime_gl_blend_func_separate (value srgb, value drgb, value sa, value da) { + void lime_gl_blend_func_separate (int srgb, int drgb, int sa, int da) { - glBlendFuncSeparate (val_int (srgb), val_int (drgb), val_int (sa), val_int (da)); - return alloc_null (); + glBlendFuncSeparate (srgb, drgb, sa, da); } - value lime_gl_buffer_data (value inTarget, value inByteBuffer, value inStart, value inLen, value inUsage) { + void lime_gl_buffer_data (int inTarget, value inByteBuffer, int start, int len, int inUsage) { - int len = val_int (inLen); - int start = val_int (inStart); - - if (len == 0) return alloc_null (); + if (len == 0) return; Bytes bytes (inByteBuffer); const unsigned char *data = bytes.Data (); @@ -136,18 +124,14 @@ namespace lime { } - glBufferData (val_int (inTarget), len, data + start, val_int (inUsage)); - return alloc_null (); + glBufferData (inTarget, len, data + start, inUsage); } - value lime_gl_buffer_sub_data (value inTarget, value inOffset, value inByteBuffer, value inStart, value inLen) { + void lime_gl_buffer_sub_data (int inTarget, int inOffset, value inByteBuffer, int start, int len) { - int len = val_int (inLen); - int start = val_int (inStart); - - if (len == 0) return alloc_null (); + if (len == 0) return; Bytes bytes (inByteBuffer); @@ -160,386 +144,386 @@ namespace lime { } - glBufferSubData (val_int (inTarget), val_int (inOffset), len, data + start); - return alloc_null (); + glBufferSubData (inTarget, inOffset, len, data + start); } - value lime_gl_check_framebuffer_status (value inTarget) { + int lime_gl_check_framebuffer_status (int inTarget) { - return alloc_int (glCheckFramebufferStatus (val_int (inTarget))); + return glCheckFramebufferStatus (inTarget); } - value lime_gl_clear (value inMask) { + void lime_gl_clear (int inMask) { - glClear (val_int (inMask)); - return alloc_null (); + glClear (inMask); } - value lime_gl_clear_color (value r,value g, value b, value a) { + void lime_gl_clear_color (float r, float g, float b, float a) { - glClearColor (val_number (r), val_number (g), val_number (b), val_number (a)); - return alloc_null (); + glClearColor (r, g, b, a); } - value lime_gl_clear_depth (value depth) { + void lime_gl_clear_depth (float depth) { #ifdef LIME_GLES - glClearDepthf (val_number (depth)); + glClearDepthf (depth); #else - glClearDepth (val_number (depth)); + glClearDepth (depth); #endif - return alloc_null (); } - value lime_gl_clear_stencil (value stencil) { + void lime_gl_clear_stencil (int stencil) { - glClearStencil (val_int (stencil)); - return alloc_null (); + glClearStencil (stencil); } - value lime_gl_color_mask (value r, value g, value b, value a) { + void lime_gl_color_mask (bool r, bool g, bool b, bool a) { - glColorMask (val_bool (r), val_bool (g), val_bool (b), val_bool (a)); - return alloc_null (); + glColorMask (r, g, b, a); } - value lime_gl_compile_shader (value inId) { + void lime_gl_compile_shader (int id) { - int id = val_int (inId); glCompileShader (id); - return alloc_null (); } - value lime_gl_compressed_tex_image_2d (value *arg, int argCount) { - - enum { aTarget, aLevel, aInternal, aWidth, aHeight, aBorder, aBuffer, aOffset }; + void lime_gl_compressed_tex_image_2d (int target, int level, int internalFormat, int width, int height, int border, value buffer, int offset) { unsigned char *data = 0; int size = 0; - Bytes bytes (arg[aBuffer]); + Bytes bytes (buffer); if (bytes.Length ()) { - data = bytes.Data () + val_int (arg[aOffset]); - size = bytes.Length () - val_int (arg[aOffset]); + data = bytes.Data () + offset; + size = bytes.Length () - offset; } - glCompressedTexImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aInternal]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aBorder]), size, data); - return alloc_null (); + glCompressedTexImage2D (target, level, internalFormat, width, height, border, size, data); } - value lime_gl_compressed_tex_sub_image_2d (value *arg, int argCount) { - - enum { aTarget, aLevel, aXOffset, aYOffset, aWidth, aHeight, aFormat, aBuffer, aOffset }; + void lime_gl_compressed_tex_sub_image_2d (int target, int level, int xOffset, int yOffset, int width, int height, int format, value buffer, int offset) { unsigned char *data = 0; int size = 0; - Bytes bytes (arg[aBuffer]); + Bytes bytes (buffer); if (bytes.Length ()) { - data = bytes.Data () + val_int (arg[aOffset]); - size = bytes.Length () - val_int (arg[aOffset]); + data = bytes.Data () + offset; + size = bytes.Length () - offset; } - glCompressedTexSubImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aXOffset]), val_int (arg[aYOffset]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aFormat]), size, data); - return alloc_null (); + glCompressedTexSubImage2D (target, level, xOffset, yOffset, width, height, format, size, data); } - value lime_gl_copy_tex_image_2d (value *arg, int argCount) { + void lime_gl_copy_tex_image_2d (int target, int level, int internalFormat, int x, int y, int width, int height, int border) { - enum { aTarget, aLevel, aInternalFormat, aX, aY, aWidth, aHeight, aBorder }; - - glCopyTexImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aInternalFormat]), val_int (arg[aX]), val_int (arg[aY]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aBorder])); - return alloc_null (); + glCopyTexImage2D (target, level, internalFormat, x, y, width, height, border); } - value lime_gl_copy_tex_sub_image_2d (value *arg, int argCount) { + void lime_gl_copy_tex_sub_image_2d (int target, int level, int xOffset, int yOffset, int x, int y, int width, int height) { - enum { aTarget, aLevel, aXOffset, aYOffset, aX, aY, aWidth, aHeight }; - - glCopyTexSubImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aXOffset]), val_int (arg[aYOffset]), val_int (arg[aX]), val_int (arg[aY]), val_int (arg[aWidth]), val_int (arg[aHeight])); - return alloc_null (); + glCopyTexSubImage2D (target, level, xOffset, yOffset, x, y, width, height); } - value lime_gl_create_buffer () { + int lime_gl_create_buffer () { GLuint buffers; glGenBuffers (1, &buffers); - return alloc_int (buffers); + return buffers; } - value lime_gl_create_framebuffer () { + int lime_gl_create_framebuffer () { GLuint id = 0; glGenFramebuffers (1, &id); - return alloc_int (id); + return id; } - value lime_gl_create_program () { + int lime_gl_create_program () { - int result = glCreateProgram (); - return alloc_int (result); + return glCreateProgram (); } - value lime_gl_create_render_buffer () { + int lime_gl_create_render_buffer () { GLuint id = 0; glGenRenderbuffers (1, &id); - return alloc_int (id); + return id; } - value lime_gl_create_shader (value inType) { + int lime_gl_create_shader (int inType) { - return alloc_int (glCreateShader (val_int (inType))); + return glCreateShader (inType); } - value lime_gl_create_texture () { + int lime_gl_create_texture () { unsigned int id = 0; glGenTextures (1, &id); - return alloc_int (id); + return id; } - value lime_gl_cull_face (value mode) { + void lime_gl_cull_face (int mode) { - glCullFace (val_int (mode)); - return alloc_null (); + glCullFace (mode); } - value lime_gl_delete_buffer (value inId) { + void lime_gl_delete_buffer (int inId) { - GLuint id = val_int (inId); + GLuint id = inId; glDeleteBuffers (1, &id); - return alloc_null (); } - value lime_gl_delete_framebuffer (value target) { + void lime_gl_delete_framebuffer (int inId) { - GLuint id = val_int (target); + GLuint id = inId; glDeleteFramebuffers (1, &id); - return alloc_null (); } - value lime_gl_delete_program (value inId) { + void lime_gl_delete_program (int id) { - int id = val_int (inId); glDeleteProgram (id); - return alloc_null (); } - value lime_gl_delete_render_buffer (value target) { + void lime_gl_delete_render_buffer (int inId) { - GLuint id = val_int (target); + GLuint id = inId; glDeleteRenderbuffers (1, &id); - return alloc_null(); } - value lime_gl_delete_shader (value inId) { + void lime_gl_delete_shader (int id) { - int id = val_int (inId); glDeleteShader (id); - return alloc_null (); } - value lime_gl_delete_texture (value inId) { + void lime_gl_delete_texture (int inId) { - GLuint id = val_int (inId); + GLuint id = inId; glDeleteTextures (1, &id); - return alloc_null (); } - value lime_gl_depth_func (value func) { + void lime_gl_depth_func (int func) { - glDepthFunc (val_int (func)); - return alloc_null (); + glDepthFunc (func); } - value lime_gl_depth_mask (value mask) { + void lime_gl_depth_mask (bool mask) { - glDepthMask (val_bool (mask)); - return alloc_null (); + glDepthMask (mask); } - value lime_gl_depth_range (value inNear, value inFar) { + void lime_gl_depth_range (float inNear, float inFar) { #ifdef LIME_GLES - glDepthRangef (val_number (inNear), val_number (inFar)); + glDepthRangef (inNear, inFar); #else - glDepthRange (val_number (inNear), val_number (inFar)); + glDepthRange (inNear, inFar); #endif - return alloc_null (); } - value lime_gl_detach_shader (value inProg, value inShader) { + void lime_gl_detach_shader (int inProg, int inShader) { - glDetachShader (val_int (inProg), val_int (inShader)); - return alloc_null (); + glDetachShader (inProg, inShader); } - value lime_gl_disable (value inCap) { + void lime_gl_disable (int inCap) { - glDisable (val_int (inCap)); - return alloc_null (); + glDisable (inCap); } - value lime_gl_disable_vertex_attrib_array (value inIndex) { + void lime_gl_disable_vertex_attrib_array (int inIndex) { - glDisableVertexAttribArray (val_int (inIndex)); - return alloc_null (); + glDisableVertexAttribArray (inIndex); } - value lime_gl_draw_arrays (value inMode, value inFirst, value inCount) { + void lime_gl_draw_arrays (int inMode, int inFirst, int inCount) { - glDrawArrays (val_int (inMode), val_int (inFirst), val_int (inCount)); - return alloc_null (); + glDrawArrays (inMode, inFirst, inCount); } - value lime_gl_draw_elements (value inMode, value inCount, value inType, value inOffset) { + void lime_gl_draw_elements (int inMode, int inCount, int inType, int inOffset) { - glDrawElements (val_int (inMode), val_int (inCount), val_int (inType), (void *)(intptr_t)val_int (inOffset)); - return alloc_null (); + glDrawElements (inMode, inCount, inType, (void *)(intptr_t)inOffset); } - value lime_gl_enable (value inCap) { + void lime_gl_enable (int inCap) { - glEnable (val_int (inCap)); - return alloc_null (); + glEnable (inCap); } - value lime_gl_enable_vertex_attrib_array (value inIndex) { + void lime_gl_enable_vertex_attrib_array (int inIndex) { - glEnableVertexAttribArray (val_int (inIndex)); - return alloc_null (); + glEnableVertexAttribArray (inIndex); } - value lime_gl_finish () { + void lime_gl_finish () { glFinish (); - return alloc_null (); } - value lime_gl_flush () { + void lime_gl_flush () { glFlush (); - return alloc_null (); } - value lime_gl_framebuffer_renderbuffer (value target, value attachment, value renderbuffertarget, value renderbuffer) { + void lime_gl_framebuffer_renderbuffer (int target, int attachment, int renderbuffertarget, int renderbuffer) { - glFramebufferRenderbuffer (val_int (target), val_int (attachment), val_int (renderbuffertarget), val_int (renderbuffer)); - return alloc_null (); + glFramebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer); } - value lime_gl_framebuffer_texture2D (value target, value attachment, value textarget, value texture, value level) { + void lime_gl_framebuffer_texture2D (int target, int attachment, int textarget, int texture, int level) { - glFramebufferTexture2D (val_int (target), val_int (attachment), val_int (textarget), val_int (texture), val_int (level)); - return alloc_null (); + glFramebufferTexture2D (target, attachment, textarget, texture, level); } - value lime_gl_front_face (value inFace) { + void lime_gl_front_face (int inFace) { - glFrontFace (val_int (inFace)); - return alloc_null (); + glFrontFace (inFace); } - value lime_gl_generate_mipmap(value inTarget) { + void lime_gl_generate_mipmap (int inTarget) { - glGenerateMipmap (val_int (inTarget)); - return alloc_null (); + glGenerateMipmap (inTarget); } - value lime_gl_get_buffer_parameter (value inTarget, value inIndex) { + value lime_gl_get_active_attrib (int id, int inIndex) { + + value result = alloc_empty_object (); + + char buf[1024]; + GLsizei outLen = 1024; + GLsizei size = 0; + GLenum type = 0; + + glGetActiveAttrib (id, inIndex, 1024, &outLen, &size, &type, buf); + + alloc_field (result, val_id ("size"), alloc_int (size)); + alloc_field (result, val_id ("type"), alloc_int (type)); + alloc_field (result, val_id ("name"), alloc_string (buf)); + + return result; + + } + + + value lime_gl_get_active_uniform (int id, int inIndex) { + + char buf[1024]; + GLsizei outLen = 1024; + GLsizei size = 0; + GLenum type = 0; + + glGetActiveUniform (id, inIndex, 1024, &outLen, &size, &type, buf); + + value result = alloc_empty_object (); + alloc_field (result, val_id ("size"), alloc_int (size)); + alloc_field (result, val_id ("type"), alloc_int (type)); + alloc_field (result, val_id ("name"), alloc_string (buf)); + + return result; + + } + + + int lime_gl_get_attrib_location (int id, const char* inName) { + + return glGetAttribLocation (id, inName); + + } + + + int lime_gl_get_buffer_parameter (int inTarget, int inIndex) { GLint data = 0; - glGetBufferParameteriv (val_int (inTarget), val_int (inIndex), &data); - return alloc_int (data); + glGetBufferParameteriv (inTarget, inIndex, &data); + return data; } @@ -558,78 +542,56 @@ namespace lime { } - value lime_gl_get_active_attrib (value inProg, value inIndex) { + int lime_gl_get_error () { - int id = val_int (inProg); - value result = alloc_empty_object (); - - char buf[1024]; - GLsizei outLen = 1024; - GLsizei size = 0; - GLenum type = 0; - - glGetActiveAttrib (id, val_int (inIndex), 1024, &outLen, &size, &type, buf); - - alloc_field (result, val_id ("size"), alloc_int (size)); - alloc_field (result, val_id ("type"), alloc_int (type)); - alloc_field (result, val_id ("name"), alloc_string (buf)); - - return result; + return glGetError (); } - value lime_gl_get_active_uniform (value inProg, value inIndex) { + value lime_gl_get_extension (const char* name) { - int id = val_int (inProg); + void *result = 0; - char buf[1024]; - GLsizei outLen = 1024; - GLsizei size = 0; - GLenum type = 0; + #ifdef LIME_SDL + result = SDL_GL_GetProcAddress (name); + #endif - glGetActiveUniform (id, val_int (inIndex), 1024, &outLen, &size, &type, buf); + if (result) { + + static bool init = false; + static vkind functionKind; + + if (!init) { + + init = true; + kind_share (&functionKind, "function"); + + } + + return alloc_abstract (functionKind, result); + + } - value result = alloc_empty_object (); - alloc_field (result, val_id ("size"), alloc_int (size)); - alloc_field (result, val_id ("type"), alloc_int (type)); - alloc_field (result, val_id ("name"), alloc_string (buf)); - - return result; + return alloc_null (); } - value lime_gl_get_attrib_location (value inId, value inName) { - - int id = val_int (inId); - return alloc_int (glGetAttribLocation (id, val_string (inName))); - - } - - - value lime_gl_get_error () { - - return alloc_int (glGetError ()); - - } - - - value lime_gl_get_framebuffer_attachment_parameter (value target, value attachment, value pname) { + int lime_gl_get_framebuffer_attachment_parameter (int target, int attachment, int pname) { GLint result = 0; - glGetFramebufferAttachmentParameteriv (val_int (target), val_int (attachment), val_int (pname), &result); - return alloc_int (result); + glGetFramebufferAttachmentParameteriv (target, attachment, pname, &result); + return result; } - value lime_gl_get_parameter (value pname_val) { + value lime_gl_get_parameter (int pname) { int floats = 0; int ints = 0; int strings = 0; - int pname = val_int (pname_val); switch (pname) { @@ -755,17 +717,17 @@ namespace lime { glGetIntegerv (pname, &val); return alloc_int (val); - }else if (strings == 1) { + } else if (strings == 1) { return alloc_string ((const char *)glGetString (pname)); - }else if (floats == 1) { + } else if (floats == 1) { float f; glGetFloatv (pname, &f); return alloc_float (f); - }else if (ints > 0) { + } else if (ints > 0) { int vals[4]; glGetIntegerv (pname, vals); @@ -779,7 +741,7 @@ namespace lime { return result; - }else if (floats > 0) { + } else if (floats > 0) { float vals[4]; glGetFloatv (pname, vals); @@ -800,67 +762,61 @@ namespace lime { } - value lime_gl_get_program_info_log (value inId) { + HxString lime_gl_get_program_info_log (int id) { char buf[1024]; - int id = val_int (inId); glGetProgramInfoLog (id, 1024, 0, buf); - return alloc_string (buf); + return HxString (buf); } - value lime_gl_get_program_parameter (value inId, value inName) { - - int id = val_int (inId); - int result = 0; - glGetProgramiv (id, val_int (inName), &result); - return alloc_int (result); - - } - - - value lime_gl_get_render_buffer_parameter (value target, value pname) { + int lime_gl_get_program_parameter (int id, int inName) { int result = 0; - glGetRenderbufferParameteriv (val_int (target), val_int (pname), &result); - return alloc_int (result); + glGetProgramiv (id, inName, &result); + return result; } - value lime_gl_get_shader_info_log (value inId) { + int lime_gl_get_render_buffer_parameter (int target, int pname) { + + int result = 0; + glGetRenderbufferParameteriv (target, pname, &result); + return result; + + } + + + HxString lime_gl_get_shader_info_log (int id) { - int id = val_int (inId); char buf[1024] = ""; glGetShaderInfoLog (id, 1024, 0, buf); - return alloc_string (buf); + return HxString (buf); } - value lime_gl_get_shader_parameter (value inId, value inName) { + int lime_gl_get_shader_parameter (int id, int inName) { - int id = val_int (inId); int result = 0; - - glGetShaderiv (id, val_int (inName), &result); - - return alloc_int (result); + glGetShaderiv (id, inName, &result); + return result; } - value lime_gl_get_shader_precision_format (value inShader, value inPrec) { + value lime_gl_get_shader_precision_format (int inShader, int inPrec) { #ifdef LIME_GLES int range[2]; int precision; - glGetShaderPrecisionFormat (val_int (inShader), val_int (inPrec), range, &precision); + glGetShaderPrecisionFormat (inShader, inPrec, range, &precision); value result = alloc_empty_object (); alloc_field (result, val_id ("rangeMin"), alloc_int (range[0])); @@ -877,22 +833,20 @@ namespace lime { } - value lime_gl_get_shader_source (value inId) { - - int id = val_int (inId); + HxString lime_gl_get_shader_source (int id) { int len = 0; glGetShaderiv (id, GL_SHADER_SOURCE_LENGTH, &len); if (len == 0) { - return alloc_null (); + return 0; } char *buf = new char[len + 1]; glGetShaderSource (id, len + 1, 0, buf); - value result = alloc_string (buf); + HxString result = HxString (buf); delete [] buf; @@ -901,7 +855,7 @@ namespace lime { } - value lime_gl_get_supported_extensions (value ioList) { + void lime_gl_get_supported_extensions (value ioList) { const char *ext = (const char *)glGetString (GL_EXTENSIONS); @@ -931,24 +885,20 @@ namespace lime { } - return alloc_null (); } - value lime_gl_get_tex_parameter (value inTarget, value inPname) { + int lime_gl_get_tex_parameter (int inTarget, int inPname) { int result = 0; - glGetTexParameteriv (val_int (inTarget), val_int (inPname), &result); - return alloc_int (result); + glGetTexParameteriv (inTarget, inPname, &result); + return result; } - value lime_gl_get_uniform (value inId, value inLocation) { - - int id = val_int (inId); - int loc = val_int (inLocation); + value lime_gl_get_uniform (int id, int loc) { char buf[1]; GLsizei outLen = 1; @@ -1023,7 +973,7 @@ namespace lime { int buffer[4]; glGetUniformiv (id, loc, buffer); - value result = alloc_array(ints + bools); + value result = alloc_array (ints + bools); for (int i = 0; i < ints + bools; i++) { @@ -1057,285 +1007,249 @@ namespace lime { } - value lime_gl_get_uniform_location (value inId, value inName) { + int lime_gl_get_uniform_location (int id, const char* inName) { - int id = val_int (inId); - return alloc_int (glGetUniformLocation (id, val_string (inName))); + return glGetUniformLocation (id, inName); } - value lime_gl_get_vertex_attrib (value index, value name) { + int lime_gl_get_vertex_attrib (int index, int name) { int result = 0; - glGetVertexAttribiv (val_int (index), val_int (name), &result); - return alloc_int (result); + glGetVertexAttribiv (index, name, &result); + return result; } - value lime_gl_get_vertex_attrib_offset (value index, value name) { + int lime_gl_get_vertex_attrib_offset (int index, int name) { int result = 0; - glGetVertexAttribPointerv (val_int (index), val_int (name), (void **)&result); - return alloc_int (result); + glGetVertexAttribPointerv (index, name, (void **)&result); + return result; } - value lime_gl_hint (value inTarget, value inValue) { + void lime_gl_hint (int inTarget, int inValue) { - glHint (val_int (inTarget), val_int (inValue)); - return alloc_null (); + glHint (inTarget, inValue); } - value lime_gl_is_buffer (value val) { + bool lime_gl_is_buffer (int val) { - return alloc_bool (glIsBuffer (val_int (val))); + return glIsBuffer (val); } - value lime_gl_is_enabled (value val) { + bool lime_gl_is_enabled (int val) { - return alloc_bool (glIsEnabled (val_int (val))); + return glIsEnabled (val); } - value lime_gl_is_framebuffer (value val) { + bool lime_gl_is_framebuffer (int val) { - return alloc_bool (glIsFramebuffer (val_int (val))); + return glIsFramebuffer (val); } - value lime_gl_is_program (value val) { + bool lime_gl_is_program (int val) { - return alloc_bool (glIsProgram (val_int (val))); + return glIsProgram (val); } - value lime_gl_is_renderbuffer (value val) { + bool lime_gl_is_renderbuffer (int val) { - return alloc_bool (glIsRenderbuffer (val_int (val))); + return glIsRenderbuffer (val); } - value lime_gl_is_shader (value val) { + bool lime_gl_is_shader (int val) { - return alloc_bool (glIsShader (val_int (val))); + return glIsShader (val); } - value lime_gl_is_texture (value val) { + bool lime_gl_is_texture (int val) { - return alloc_bool (glIsTexture (val_int (val))); + return glIsTexture (val); } - value lime_gl_line_width (value inWidth) { + void lime_gl_line_width (float inWidth) { - glLineWidth (val_number (inWidth)); - return alloc_null (); + glLineWidth (inWidth); } - value lime_gl_link_program (value inId) { + void lime_gl_link_program (int id) { - int id = val_int (inId); glLinkProgram (id); - return alloc_null (); } - value lime_gl_pixel_storei (value pname, value param) { + void lime_gl_pixel_storei (int pname, int param) { - glPixelStorei (val_int (pname), val_int (param)); - return alloc_null (); + glPixelStorei (pname, param); } - value lime_gl_polygon_offset (value factor, value units) { + void lime_gl_polygon_offset (float factor, float units) { - glPolygonOffset (val_number (factor), val_number (units)); - return alloc_null (); + glPolygonOffset (factor, units); } - value lime_gl_read_pixels (value *arg, int argCount) { - - enum { aX, aY, aWidth, aHeight, aFormat, aType, aBuffer, aOffset }; + void lime_gl_read_pixels (int x, int y, int width, int height, int format, int type, value buffer, int offset) { unsigned char *data = 0; - Bytes bytes (arg[aBuffer]); + Bytes bytes (buffer); if (bytes.Length ()) { - data = bytes.Data () + val_int (arg[aOffset]); + data = bytes.Data () + offset; } - glReadPixels (val_int (arg[aX]), val_int (arg[aY]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aFormat]), val_int (arg[aType]), data); - return alloc_null (); + glReadPixels (x, y, width, height, format, type, data); } - value lime_gl_renderbuffer_storage (value target, value internalFormat, value width, value height) { + void lime_gl_renderbuffer_storage (int target, int internalFormat, int width, int height) { - glRenderbufferStorage (val_int (target), val_int (internalFormat), val_int (width), val_int (height)); - return alloc_null (); + glRenderbufferStorage (target, internalFormat, width, height); } - value lime_gl_sample_coverage (value f, value invert) { + void lime_gl_sample_coverage (float f, bool invert) { - glSampleCoverage (val_number (f), val_bool (invert)); - return alloc_null (); + glSampleCoverage (f, invert); } - value lime_gl_scissor (value inX, value inY, value inW, value inH) { + void lime_gl_scissor (int inX, int inY, int inW, int inH) { - glScissor (val_int (inX), val_int (inY), val_int (inW), val_int (inH)); - return alloc_null (); + glScissor (inX, inY, inW, inH); } - value lime_gl_shader_source (value inId, value inSource) { - - int id = val_int (inId); - const char *source = val_string (inSource); + void lime_gl_shader_source (int id, const char* source) { glShaderSource (id, 1, &source, 0); - return alloc_null (); + } + + + void lime_gl_stencil_func (int func, int ref, int mask) { + + glStencilFunc (func, ref, mask); } - value lime_gl_stencil_func (value func, value ref, value mask) { + void lime_gl_stencil_func_separate (int face, int func, int ref, int mask) { - glStencilFunc (val_int (func), val_int (ref), val_int (mask)); - return alloc_null (); + glStencilFuncSeparate (face, func, ref, mask); } - value lime_gl_stencil_func_separate (value face, value func, value ref, value mask) { + void lime_gl_stencil_mask (int mask) { - glStencilFuncSeparate (val_int (face), val_int (func), val_int (ref), val_int (mask)); - return alloc_null (); + glStencilMask (mask); } - value lime_gl_stencil_mask (value mask) { + void lime_gl_stencil_mask_separate (int face, int mask) { - glStencilMask (val_int (mask)); - return alloc_null (); + glStencilMaskSeparate (face, mask); } - value lime_gl_stencil_mask_separate (value face, value mask) { + void lime_gl_stencil_op (int fail, int zfail, int zpass) { - glStencilMaskSeparate (val_int (face), val_int (mask)); - return alloc_null (); + glStencilOp (fail, zfail, zpass); } - value lime_gl_stencil_op (value fail, value zfail, value zpass) { + void lime_gl_stencil_op_separate (int face, int fail, int zfail, int zpass) { - glStencilOp (val_int (fail), val_int (zfail), val_int (zpass)); - return alloc_null (); + glStencilOpSeparate (face, fail, zfail, zpass); } - value lime_gl_stencil_op_separate (value face, value fail, value zfail, value zpass) { - - glStencilOpSeparate (val_int (face), val_int (fail), val_int (zfail), val_int (zpass)); - return alloc_null (); - - } - - - value lime_gl_tex_image_2d(value *arg, int argCount) { - - enum { aTarget, aLevel, aInternal, aWidth, aHeight, aBorder, aFormat, aType, aBuffer, aOffset }; + void lime_gl_tex_image_2d (int target, int level, int internal, int width, int height, int border, int format, int type, value buffer, int offset) { unsigned char *data = 0; - Bytes bytes (arg[aBuffer]); + Bytes bytes (buffer); if (bytes.Length ()) { - data = bytes.Data () + val_int (arg[aOffset]); + data = bytes.Data () + offset; } - glTexImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aInternal]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aBorder]), val_int (arg[aFormat]), val_int (arg[aType]), data); - return alloc_null (); + glTexImage2D (target, level, internal, width, height, border, format, type, data); } - value lime_gl_tex_parameterf (value inTarget, value inPName, value inVal) { + void lime_gl_tex_parameterf (int inTarget, int inPName, double inVal) { - glTexParameterf (val_int (inTarget), val_int (inPName), val_number (inVal)); - return alloc_null (); + glTexParameterf (inTarget, inPName, inVal); } - value lime_gl_tex_parameteri (value inTarget, value inPName, value inVal) { + void lime_gl_tex_parameteri (int inTarget, int inPName, int inVal) { - glTexParameterf (val_int (inTarget), val_int (inPName), val_int (inVal)); - return alloc_null (); + glTexParameterf (inTarget, inPName, inVal); } - value lime_gl_tex_sub_image_2d (value *arg, int argCount) { - - enum { aTarget, aLevel, aXOffset, aYOffset, aWidth, aHeight, aFormat, aType, aBuffer, aOffset }; + void lime_gl_tex_sub_image_2d (int target, int level, int xOffset, int yOffset, int width, int height, int format, int type, value buffer, int offset) { unsigned char *data = 0; - Bytes bytes (arg[aBuffer]); + Bytes bytes (buffer); if (bytes.Length ()) { - data = bytes.Data () + val_int (arg[aOffset]); + data = bytes.Data () + offset; } - glTexSubImage2D (val_int (arg[aTarget]), val_int (arg[aLevel]), val_int (arg[aXOffset]), val_int (arg[aYOffset]), val_int (arg[aWidth]), val_int (arg[aHeight]), val_int (arg[aFormat]), val_int (arg[aType]), data); - return alloc_null (); + glTexSubImage2D (target, level, xOffset, yOffset, width, height, format, type, data); } - value lime_gl_uniform_matrix (value inLocation, value inTranspose, value inBytes, value inCount) { - - int loc = val_int (inLocation); - int count = val_int (inCount); - bool trans = val_bool (inTranspose); + void lime_gl_uniform_matrix (int loc, int trans, value inBytes, int count) { Bytes bytes (inBytes); int size = bytes.Length (); @@ -1350,22 +1264,17 @@ namespace lime { } - return alloc_null (); + } + + + void lime_gl_uniform1f (int inLocation, double inV0) { + + glUniform1f (inLocation, inV0); } - value lime_gl_uniform1f (value inLocation, value inV0) { - - glUniform1f (val_int (inLocation), val_number (inV0)); - return alloc_null (); - - } - - - value lime_gl_uniform1fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform1fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1374,22 +1283,17 @@ namespace lime { glUniform1fv (loc, nbElems, data); - return alloc_null (); + } + + + void lime_gl_uniform1i (int inLocation, int inV0) { + + glUniform1i (inLocation, inV0); } - value lime_gl_uniform1i (value inLocation, value inV0) { - - glUniform1i (val_int (inLocation), val_int (inV0)); - return alloc_null (); - - } - - - value lime_gl_uniform1iv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform1iv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1398,22 +1302,17 @@ namespace lime { glUniform1iv (loc, nbElems, data); - return alloc_null (); + } + + + void lime_gl_uniform2f (int inLocation, float inV0, float inV1) { + + glUniform2f (inLocation, inV0, inV1); } - value lime_gl_uniform2f (value inLocation, value inV0, value inV1) { - - glUniform2f (val_int (inLocation), val_number (inV0), val_number (inV1)); - return alloc_null (); - - } - - - value lime_gl_uniform2fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform2fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1422,22 +1321,17 @@ namespace lime { glUniform2fv (loc, nbElems >> 1, data); - return alloc_null (); + } + + + void lime_gl_uniform2i (int inLocation, int inV0, int inV1) { + + glUniform2i (inLocation, inV0, inV1); } - value lime_gl_uniform2i (value inLocation, value inV0, value inV1) { - - glUniform2i (val_int (inLocation), val_int (inV0), val_int (inV1)); - return alloc_null (); - - } - - - value lime_gl_uniform2iv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform2iv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1446,22 +1340,17 @@ namespace lime { glUniform2iv (loc, nbElems >> 1, data); - return alloc_null (); + } + + + void lime_gl_uniform3f (int inLocation, float inV0, float inV1, float inV2) { + + glUniform3f (inLocation, inV0, inV1, inV2); } - value lime_gl_uniform3f (value inLocation, value inV0, value inV1, value inV2) { - - glUniform3f (val_int (inLocation), val_number (inV0), val_number (inV1), val_number (inV2)); - return alloc_null (); - - } - - - value lime_gl_uniform3fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform3fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1470,22 +1359,17 @@ namespace lime { glUniform3fv (loc, nbElems / 3, data); - return alloc_null (); + } + + + void lime_gl_uniform3i (int inLocation, int inV0, int inV1, int inV2) { + + glUniform3i (inLocation, inV0, inV1, inV2); } - value lime_gl_uniform3i (value inLocation, value inV0, value inV1, value inV2) { - - glUniform3i (val_int (inLocation), val_int (inV0), val_int (inV1), val_int (inV2)); - return alloc_null (); - - } - - - value lime_gl_uniform3iv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform3iv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1494,22 +1378,17 @@ namespace lime { glUniform3iv (loc, nbElems / 3, data); - return alloc_null (); + } + + + void lime_gl_uniform4f (int inLocation, float inV0, float inV1, float inV2, float inV3) { + + glUniform4f (inLocation, inV0, inV1, inV2, inV3); } - value lime_gl_uniform4f (value inLocation, value inV0, value inV1, value inV2, value inV3) { - - glUniform4f (val_int (inLocation), val_number (inV0), val_number (inV1), val_number (inV2), val_number (inV3)); - return alloc_null (); - - } - - - value lime_gl_uniform4fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform4fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1518,22 +1397,17 @@ namespace lime { glUniform4fv (loc, nbElems >> 2, data); - return alloc_null (); + } + + + void lime_gl_uniform4i (int inLocation, int inV0, int inV1, int inV2, int inV3) { + + glUniform4i (inLocation, inV0, inV1, inV2, inV3); } - value lime_gl_uniform4i (value inLocation, value inV0, value inV1, value inV2, value inV3) { - - glUniform4i (val_int (inLocation), val_int (inV0), val_int (inV1), val_int (inV2), val_int (inV3)); - return alloc_null (); - - } - - - value lime_gl_uniform4iv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_uniform4iv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1542,38 +1416,24 @@ namespace lime { glUniform4iv (loc, nbElems >> 2, data); - return alloc_null (); - } - value lime_gl_use_program (value inId) { + void lime_gl_use_program (int id) { - int id = val_int (inId); glUseProgram (id); - return alloc_null (); } - value lime_gl_validate_program (value inId) { + void lime_gl_validate_program (int id) { - int id = val_int (inId); glValidateProgram (id); - return alloc_null (); } - value lime_gl_viewport (value inX, value inY, value inW, value inH) { - - glViewport (val_int (inX), val_int (inY), val_int (inW), val_int (inH)); - return alloc_null (); - - } - - - value lime_gl_version () { + HxString lime_gl_version () { const char* gl_ver = (const char*)glGetString (GL_VERSION); const char* gl_sl = (const char*)glGetString (GL_SHADING_LANGUAGE_VERSION); @@ -1587,48 +1447,26 @@ namespace lime { std::string res = "/ " + glver + " / " + glslver + " / " + glren + " / " + glven + " /"; - return alloc_string (res.c_str ()); + return HxString (res.c_str ()); } - value lime_gl_vertex_attrib_pointer (value *arg, int nargs) { + void lime_gl_vertex_attrib_pointer (int index, int size, int type, bool normalized, int stride, int offset) { - enum { aIndex, aSize, aType, aNormalized, aStride, aOffset }; - - glVertexAttribPointer (val_int (arg[aIndex]), val_int (arg[aSize]), val_int (arg[aType]), val_bool (arg[aNormalized]), val_int (arg[aStride]), (void *)(intptr_t)val_int (arg[aOffset])); - return alloc_null (); + glVertexAttribPointer (index, size, type, normalized, stride, (void *)(intptr_t)offset); } - value lime_gl_vertex_attrib_pointer_1 (value index, value size, value type, value stride, value offset) { + void lime_gl_vertex_attrib1f (int inLocation, float inV0) { - glVertexAttribPointer (val_int (index), val_int (size), val_int (type), true, val_int (stride), (void *)(intptr_t)val_int (offset)); - return alloc_null (); + glVertexAttrib1f (inLocation, inV0); } - value lime_gl_vertex_attrib_pointer_2 (value index, value size, value type, value stride, value offset) { - - glVertexAttribPointer (val_int (index), val_int (size), val_int (type), false, val_int (stride), (void *)(intptr_t)val_int (offset)); - return alloc_null (); - - } - - - value lime_gl_vertex_attrib1f (value inLocation, value inV0) { - - glVertexAttrib1f (val_int (inLocation), val_number (inV0)); - return alloc_null (); - - } - - - value lime_gl_vertex_attrib1fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_vertex_attrib1fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1636,22 +1474,17 @@ namespace lime { glVertexAttrib1fv (loc, data); - return alloc_null (); + } + + + void lime_gl_vertex_attrib2f (int inLocation, float inV0, float inV1) { + + glVertexAttrib2f (inLocation, inV0, inV1); } - value lime_gl_vertex_attrib2f (value inLocation, value inV0, value inV1) { - - glVertexAttrib2f (val_int (inLocation), val_number (inV0), val_number (inV1)); - return alloc_null (); - - } - - - value lime_gl_vertex_attrib2fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_vertex_attrib2fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1659,22 +1492,17 @@ namespace lime { glVertexAttrib2fv (loc, data); - return alloc_null (); + } + + + void lime_gl_vertex_attrib3f (int inLocation, float inV0, float inV1, float inV2) { + + glVertexAttrib3f (inLocation, inV0, inV1, inV2); } - value lime_gl_vertex_attrib3f (value inLocation, value inV0, value inV1, value inV2) { - - glVertexAttrib3f (val_int (inLocation), val_number (inV0), val_number (inV1), val_number (inV2)); - return alloc_null (); - - } - - - value lime_gl_vertex_attrib3fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_vertex_attrib3fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1682,22 +1510,17 @@ namespace lime { glVertexAttrib3fv (loc, data); - return alloc_null (); + } + + + void lime_gl_vertex_attrib4f (int inLocation, float inV0, float inV1, float inV2, float inV3) { + + glVertexAttrib4f (inLocation, inV0, inV1, inV2, inV3); } - value lime_gl_vertex_attrib4f (value inLocation, value inV0, value inV1, value inV2, value inV3) { - - glVertexAttrib4f (val_int (inLocation), val_number (inV0), val_number (inV1), val_number (inV2), val_number (inV3)); - return alloc_null (); - - } - - - value lime_gl_vertex_attrib4fv (value inLocation, value inByteBuffer) { - - int loc = val_int (inLocation); + void lime_gl_vertex_attrib4fv (int loc, value inByteBuffer) { Bytes bytes (inByteBuffer); int size = bytes.Length (); @@ -1705,7 +1528,12 @@ namespace lime { glVertexAttrib4fv (loc, data); - return alloc_null (); + } + + + void lime_gl_viewport (int inX, int inY, int inW, int inH) { + + glViewport (inX, inY, inW, inH); } @@ -1750,140 +1578,139 @@ namespace lime { } - DEFINE_PRIM (lime_gl_active_texture, 1); - DEFINE_PRIM (lime_gl_attach_shader, 2); - DEFINE_PRIM (lime_gl_bind_attrib_location, 3); - DEFINE_PRIM (lime_gl_bind_buffer, 2); - DEFINE_PRIM (lime_gl_bind_framebuffer, 2); - DEFINE_PRIM (lime_gl_bind_renderbuffer, 2); - DEFINE_PRIM (lime_gl_bind_texture, 2); - DEFINE_PRIM (lime_gl_blend_color, 4); - DEFINE_PRIM (lime_gl_blend_equation, 1); - DEFINE_PRIM (lime_gl_blend_equation_separate, 2); - DEFINE_PRIM (lime_gl_blend_func, 2); - DEFINE_PRIM (lime_gl_blend_func_separate, 4); - DEFINE_PRIM (lime_gl_buffer_data, 5); - DEFINE_PRIM (lime_gl_buffer_sub_data, 5); - DEFINE_PRIM (lime_gl_check_framebuffer_status, 1); - DEFINE_PRIM (lime_gl_clear, 1); - DEFINE_PRIM (lime_gl_clear_color, 4); - DEFINE_PRIM (lime_gl_clear_depth, 1); - DEFINE_PRIM (lime_gl_clear_stencil, 1); - DEFINE_PRIM (lime_gl_color_mask, 4); - DEFINE_PRIM (lime_gl_compile_shader, 1); - DEFINE_PRIM_MULT (lime_gl_compressed_tex_image_2d); - DEFINE_PRIM_MULT (lime_gl_compressed_tex_sub_image_2d); - DEFINE_PRIM_MULT (lime_gl_copy_tex_image_2d); - DEFINE_PRIM_MULT (lime_gl_copy_tex_sub_image_2d); - DEFINE_PRIM (lime_gl_create_buffer, 0); - DEFINE_PRIM (lime_gl_create_framebuffer, 0); - DEFINE_PRIM (lime_gl_create_program, 0); - DEFINE_PRIM (lime_gl_create_render_buffer, 0); - DEFINE_PRIM (lime_gl_create_shader, 1); - DEFINE_PRIM (lime_gl_create_texture, 0); - DEFINE_PRIM (lime_gl_cull_face, 1); - DEFINE_PRIM (lime_gl_delete_buffer, 1); - DEFINE_PRIM (lime_gl_delete_framebuffer, 1); - DEFINE_PRIM (lime_gl_delete_program, 1); - DEFINE_PRIM (lime_gl_delete_render_buffer, 1); - DEFINE_PRIM (lime_gl_delete_shader, 1); - DEFINE_PRIM (lime_gl_delete_texture, 1); - DEFINE_PRIM (lime_gl_detach_shader, 2); - DEFINE_PRIM (lime_gl_depth_func, 1); - DEFINE_PRIM (lime_gl_depth_mask, 1); - DEFINE_PRIM (lime_gl_depth_range, 2); - DEFINE_PRIM (lime_gl_disable, 1); - DEFINE_PRIM (lime_gl_disable_vertex_attrib_array, 1); - DEFINE_PRIM (lime_gl_draw_arrays, 3); - DEFINE_PRIM (lime_gl_draw_elements, 4); - DEFINE_PRIM (lime_gl_enable, 1); - DEFINE_PRIM (lime_gl_enable_vertex_attrib_array, 1); - DEFINE_PRIM (lime_gl_finish, 0); - DEFINE_PRIM (lime_gl_flush, 0); - DEFINE_PRIM (lime_gl_framebuffer_renderbuffer, 4); - DEFINE_PRIM (lime_gl_framebuffer_texture2D, 5); - DEFINE_PRIM (lime_gl_front_face, 1); - DEFINE_PRIM (lime_gl_generate_mipmap, 1); - DEFINE_PRIM (lime_gl_get_active_attrib, 2); - DEFINE_PRIM (lime_gl_get_active_uniform, 2); - DEFINE_PRIM (lime_gl_get_attrib_location, 2); - DEFINE_PRIM (lime_gl_get_buffer_parameter, 2); - DEFINE_PRIM (lime_gl_get_context_attributes, 0); - DEFINE_PRIM (lime_gl_get_error, 0); - DEFINE_PRIM (lime_gl_get_framebuffer_attachment_parameter, 3); - DEFINE_PRIM (lime_gl_get_parameter, 1); - DEFINE_PRIM (lime_gl_get_program_info_log, 1); - DEFINE_PRIM (lime_gl_get_program_parameter, 2); - DEFINE_PRIM (lime_gl_get_render_buffer_parameter, 2); - DEFINE_PRIM (lime_gl_get_shader_info_log, 1); - DEFINE_PRIM (lime_gl_get_shader_parameter, 2); - DEFINE_PRIM (lime_gl_get_shader_precision_format, 2); - DEFINE_PRIM (lime_gl_get_shader_source, 1); - DEFINE_PRIM (lime_gl_get_supported_extensions, 1); - DEFINE_PRIM (lime_gl_get_tex_parameter, 2); - DEFINE_PRIM (lime_gl_get_uniform, 2); - DEFINE_PRIM (lime_gl_get_uniform_location, 2); - DEFINE_PRIM (lime_gl_get_vertex_attrib, 2); - DEFINE_PRIM (lime_gl_get_vertex_attrib_offset, 2); - DEFINE_PRIM (lime_gl_hint, 2); - DEFINE_PRIM (lime_gl_is_buffer, 1); - DEFINE_PRIM (lime_gl_is_enabled, 1); - DEFINE_PRIM (lime_gl_is_framebuffer, 1); - DEFINE_PRIM (lime_gl_is_program, 1); - DEFINE_PRIM (lime_gl_is_renderbuffer, 1); - DEFINE_PRIM (lime_gl_is_shader, 1); - DEFINE_PRIM (lime_gl_is_texture, 1); - DEFINE_PRIM (lime_gl_line_width, 1); - DEFINE_PRIM (lime_gl_link_program, 1); - DEFINE_PRIM (lime_gl_pixel_storei, 2); - DEFINE_PRIM (lime_gl_polygon_offset, 2); - DEFINE_PRIM_MULT (lime_gl_read_pixels); - DEFINE_PRIM (lime_gl_renderbuffer_storage, 4); - DEFINE_PRIM (lime_gl_sample_coverage, 2); - DEFINE_PRIM (lime_gl_scissor, 4); - DEFINE_PRIM (lime_gl_shader_source, 2); - DEFINE_PRIM (lime_gl_stencil_func, 3); - DEFINE_PRIM (lime_gl_stencil_func_separate, 4); - DEFINE_PRIM (lime_gl_stencil_mask, 1); - DEFINE_PRIM (lime_gl_stencil_mask_separate, 2); - DEFINE_PRIM (lime_gl_stencil_op, 3); - DEFINE_PRIM (lime_gl_stencil_op_separate, 4); - DEFINE_PRIM_MULT (lime_gl_tex_image_2d); - DEFINE_PRIM (lime_gl_tex_parameterf, 3); - DEFINE_PRIM (lime_gl_tex_parameteri, 3); - DEFINE_PRIM_MULT (lime_gl_tex_sub_image_2d); - DEFINE_PRIM (lime_gl_uniform_matrix, 4); - DEFINE_PRIM (lime_gl_uniform1f, 2); - DEFINE_PRIM (lime_gl_uniform1fv, 2); - DEFINE_PRIM (lime_gl_uniform1i, 2); - DEFINE_PRIM (lime_gl_uniform1iv, 2); - DEFINE_PRIM (lime_gl_uniform2f, 3); - DEFINE_PRIM (lime_gl_uniform2fv, 2); - DEFINE_PRIM (lime_gl_uniform2i, 3); - DEFINE_PRIM (lime_gl_uniform2iv, 2); - DEFINE_PRIM (lime_gl_uniform3f, 4); - DEFINE_PRIM (lime_gl_uniform3fv, 2); - DEFINE_PRIM (lime_gl_uniform3i, 4); - DEFINE_PRIM (lime_gl_uniform3iv, 2); - DEFINE_PRIM (lime_gl_uniform4f, 5); - DEFINE_PRIM (lime_gl_uniform4fv, 2); - DEFINE_PRIM (lime_gl_uniform4i, 5); - DEFINE_PRIM (lime_gl_uniform4iv, 2); - DEFINE_PRIM (lime_gl_use_program, 1); - DEFINE_PRIM (lime_gl_validate_program, 1); - DEFINE_PRIM (lime_gl_viewport, 4); - DEFINE_PRIM (lime_gl_version, 0); - DEFINE_PRIM_MULT (lime_gl_vertex_attrib_pointer); - DEFINE_PRIM (lime_gl_vertex_attrib_pointer_1, 5); - DEFINE_PRIM (lime_gl_vertex_attrib_pointer_2, 5); - DEFINE_PRIM (lime_gl_vertex_attrib1f, 2); - DEFINE_PRIM (lime_gl_vertex_attrib1fv, 2); - DEFINE_PRIM (lime_gl_vertex_attrib2f, 3); - DEFINE_PRIM (lime_gl_vertex_attrib2fv, 2); - DEFINE_PRIM (lime_gl_vertex_attrib3f, 4); - DEFINE_PRIM (lime_gl_vertex_attrib3fv, 2); - DEFINE_PRIM (lime_gl_vertex_attrib4f, 5); - DEFINE_PRIM (lime_gl_vertex_attrib4fv, 2); + DEFINE_PRIME1v (lime_gl_active_texture); + DEFINE_PRIME2v (lime_gl_attach_shader); + DEFINE_PRIME3v (lime_gl_bind_attrib_location); + DEFINE_PRIME2v (lime_gl_bind_buffer); + DEFINE_PRIME2v (lime_gl_bind_framebuffer); + DEFINE_PRIME2v (lime_gl_bind_renderbuffer); + DEFINE_PRIME2v (lime_gl_bind_texture); + DEFINE_PRIME4v (lime_gl_blend_color); + DEFINE_PRIME1v (lime_gl_blend_equation); + DEFINE_PRIME2v (lime_gl_blend_equation_separate); + DEFINE_PRIME2v (lime_gl_blend_func); + DEFINE_PRIME4v (lime_gl_blend_func_separate); + DEFINE_PRIME5v (lime_gl_buffer_data); + DEFINE_PRIME5v (lime_gl_buffer_sub_data); + DEFINE_PRIME1 (lime_gl_check_framebuffer_status); + DEFINE_PRIME1v (lime_gl_clear); + DEFINE_PRIME4v (lime_gl_clear_color); + DEFINE_PRIME1v (lime_gl_clear_depth); + DEFINE_PRIME1v (lime_gl_clear_stencil); + DEFINE_PRIME4v (lime_gl_color_mask); + DEFINE_PRIME1v (lime_gl_compile_shader); + DEFINE_PRIME8v (lime_gl_compressed_tex_image_2d); + DEFINE_PRIME9v (lime_gl_compressed_tex_sub_image_2d); + DEFINE_PRIME8v (lime_gl_copy_tex_image_2d); + DEFINE_PRIME8v (lime_gl_copy_tex_sub_image_2d); + DEFINE_PRIME0 (lime_gl_create_buffer); + DEFINE_PRIME0 (lime_gl_create_framebuffer); + DEFINE_PRIME0 (lime_gl_create_program); + DEFINE_PRIME0 (lime_gl_create_render_buffer); + DEFINE_PRIME1 (lime_gl_create_shader); + DEFINE_PRIME0 (lime_gl_create_texture); + DEFINE_PRIME1v (lime_gl_cull_face); + DEFINE_PRIME1v (lime_gl_delete_buffer); + DEFINE_PRIME1v (lime_gl_delete_framebuffer); + DEFINE_PRIME1v (lime_gl_delete_program); + DEFINE_PRIME1v (lime_gl_delete_render_buffer); + DEFINE_PRIME1v (lime_gl_delete_shader); + DEFINE_PRIME1v (lime_gl_delete_texture); + DEFINE_PRIME2v (lime_gl_detach_shader); + DEFINE_PRIME1v (lime_gl_depth_func); + DEFINE_PRIME1v (lime_gl_depth_mask); + DEFINE_PRIME2v (lime_gl_depth_range); + DEFINE_PRIME1v (lime_gl_disable); + DEFINE_PRIME1v (lime_gl_disable_vertex_attrib_array); + DEFINE_PRIME3v (lime_gl_draw_arrays); + DEFINE_PRIME4v (lime_gl_draw_elements); + DEFINE_PRIME1v (lime_gl_enable); + DEFINE_PRIME1v (lime_gl_enable_vertex_attrib_array); + DEFINE_PRIME0v (lime_gl_finish); + DEFINE_PRIME0v (lime_gl_flush); + DEFINE_PRIME4v (lime_gl_framebuffer_renderbuffer); + DEFINE_PRIME5v (lime_gl_framebuffer_texture2D); + DEFINE_PRIME1v (lime_gl_front_face); + DEFINE_PRIME1v (lime_gl_generate_mipmap); + DEFINE_PRIME2 (lime_gl_get_active_attrib); + DEFINE_PRIME2 (lime_gl_get_active_uniform); + DEFINE_PRIME2 (lime_gl_get_attrib_location); + DEFINE_PRIME2 (lime_gl_get_buffer_parameter); + DEFINE_PRIME0 (lime_gl_get_context_attributes); + DEFINE_PRIME0 (lime_gl_get_error); + DEFINE_PRIME1 (lime_gl_get_extension); + DEFINE_PRIME3 (lime_gl_get_framebuffer_attachment_parameter); + DEFINE_PRIME1 (lime_gl_get_parameter); + DEFINE_PRIME1 (lime_gl_get_program_info_log); + DEFINE_PRIME2 (lime_gl_get_program_parameter); + DEFINE_PRIME2 (lime_gl_get_render_buffer_parameter); + DEFINE_PRIME1 (lime_gl_get_shader_info_log); + DEFINE_PRIME2 (lime_gl_get_shader_parameter); + DEFINE_PRIME2 (lime_gl_get_shader_precision_format); + DEFINE_PRIME1 (lime_gl_get_shader_source); + DEFINE_PRIME1v (lime_gl_get_supported_extensions); + DEFINE_PRIME2 (lime_gl_get_tex_parameter); + DEFINE_PRIME2 (lime_gl_get_uniform); + DEFINE_PRIME2 (lime_gl_get_uniform_location); + DEFINE_PRIME2 (lime_gl_get_vertex_attrib); + DEFINE_PRIME2 (lime_gl_get_vertex_attrib_offset); + DEFINE_PRIME2v (lime_gl_hint); + DEFINE_PRIME1 (lime_gl_is_buffer); + DEFINE_PRIME1 (lime_gl_is_enabled); + DEFINE_PRIME1 (lime_gl_is_framebuffer); + DEFINE_PRIME1 (lime_gl_is_program); + DEFINE_PRIME1 (lime_gl_is_renderbuffer); + DEFINE_PRIME1 (lime_gl_is_shader); + DEFINE_PRIME1 (lime_gl_is_texture); + DEFINE_PRIME1v (lime_gl_line_width); + DEFINE_PRIME1v (lime_gl_link_program); + DEFINE_PRIME2v (lime_gl_pixel_storei); + DEFINE_PRIME2v (lime_gl_polygon_offset); + DEFINE_PRIME8v (lime_gl_read_pixels); + DEFINE_PRIME4v (lime_gl_renderbuffer_storage); + DEFINE_PRIME2v (lime_gl_sample_coverage); + DEFINE_PRIME4v (lime_gl_scissor); + DEFINE_PRIME2v (lime_gl_shader_source); + DEFINE_PRIME3v (lime_gl_stencil_func); + DEFINE_PRIME4v (lime_gl_stencil_func_separate); + DEFINE_PRIME1v (lime_gl_stencil_mask); + DEFINE_PRIME2v (lime_gl_stencil_mask_separate); + DEFINE_PRIME3v (lime_gl_stencil_op); + DEFINE_PRIME4v (lime_gl_stencil_op_separate); + DEFINE_PRIME10v (lime_gl_tex_image_2d); + DEFINE_PRIME3v (lime_gl_tex_parameterf); + DEFINE_PRIME3v (lime_gl_tex_parameteri); + DEFINE_PRIME10v (lime_gl_tex_sub_image_2d); + DEFINE_PRIME4v (lime_gl_uniform_matrix); + DEFINE_PRIME2v (lime_gl_uniform1f); + DEFINE_PRIME2v (lime_gl_uniform1fv); + DEFINE_PRIME2v (lime_gl_uniform1i); + DEFINE_PRIME2v (lime_gl_uniform1iv); + DEFINE_PRIME3v (lime_gl_uniform2f); + DEFINE_PRIME2v (lime_gl_uniform2fv); + DEFINE_PRIME3v (lime_gl_uniform2i); + DEFINE_PRIME2v (lime_gl_uniform2iv); + DEFINE_PRIME4v (lime_gl_uniform3f); + DEFINE_PRIME2v (lime_gl_uniform3fv); + DEFINE_PRIME4v (lime_gl_uniform3i); + DEFINE_PRIME2v (lime_gl_uniform3iv); + DEFINE_PRIME5v (lime_gl_uniform4f); + DEFINE_PRIME2v (lime_gl_uniform4fv); + DEFINE_PRIME5v (lime_gl_uniform4i); + DEFINE_PRIME2v (lime_gl_uniform4iv); + DEFINE_PRIME1v (lime_gl_use_program); + DEFINE_PRIME1v (lime_gl_validate_program); + DEFINE_PRIME4v (lime_gl_viewport); + DEFINE_PRIME0 (lime_gl_version); + DEFINE_PRIME6v (lime_gl_vertex_attrib_pointer); + DEFINE_PRIME2v (lime_gl_vertex_attrib1f); + DEFINE_PRIME2v (lime_gl_vertex_attrib1fv); + DEFINE_PRIME3v (lime_gl_vertex_attrib2f); + DEFINE_PRIME2v (lime_gl_vertex_attrib2fv); + DEFINE_PRIME4v (lime_gl_vertex_attrib3f); + DEFINE_PRIME2v (lime_gl_vertex_attrib3fv); + DEFINE_PRIME5v (lime_gl_vertex_attrib4f); + DEFINE_PRIME2v (lime_gl_vertex_attrib4fv); }