require "OpenglConstants" gl = gl or {} --Create functions function gl.createTexture() local retTable = {} retTable.texture_id = gl._createTexture() return retTable end function gl.createBuffer() local retTable = {} retTable.buffer_id = gl._createBuffer() return retTable end function gl.createRenderbuffer() local retTable = {} retTable.renderbuffer_id = gl._createRenderuffer() return retTable end function gl.createFramebuffer( ) local retTable = {} retTable.framebuffer_id = gl._createFramebuffer() return retTable end function gl.createProgram() local retTable = {} retTable.program_id = gl._createProgram() return retTable end function gl.createShader(shaderType) local retTable = {} retTable.shader_id = gl._createShader(shaderType) return retTable end --Delete Fun function gl.deleteTexture(texture) local texture_id = 0 if "number" == type(texture) then texture_id = texture elseif "table" == type(texture) then texture_id = texture.texture_id end gl._deleteTexture(texture_id) end function gl.deleteBuffer(buffer) local buffer_id = 0 if "number" == type(buffer) then buffer_id = buffer elseif "table" == type(buffer) then buffer_id = buffer.buffer_id end gl._deleteBuffer(buffer_id) end function gl.deleteRenderbuffer(buffer) local renderbuffer_id = 0 if "number" == type(buffer) then renderbuffer_id = buffer elseif "table" == type(buffer) then renderbuffer_id = buffer.renderbuffer_id end gl._deleteRenderbuffer(renderbuffer_id) end function gl.deleteFramebuffer(buffer) local framebuffer_id = 0 if "number" == type(buffer) then framebuffer_id = buffer elseif "table" == type(buffer) then framebuffer_id = buffer.framebuffer_id end gl._deleteFramebuffer(framebuffer_id) end function gl.deleteProgram( program ) local program_id = 0 if "number" == type(buffer) then program_id = program elseif "table" == type(program) then program_id = program.program_id end gl._deleteProgram(program_id) end function gl.deleteShader(shader) local shader_id = 0 if "number" == type(shader) then shader_id = shader elseif "table" == type(shader) then shader_id = shader.shader_id end gl._deleteShader(shader_id) end --Bind Related function gl.bindTexture(target, texture) local texture_id = 0 if "number" == type(texture) then texture_id = texture elseif "table" == type(texture) then texture_id = texture.texture_id end gl._bindTexture(target,texture_id) end function gl.bindBuffer( target,buffer ) local buffer_id = 0 if "number" == type(buffer) then buffer_id = buffer elseif "table" == type(buffer) then buffer_id = buffer.buffer_id end gl._bindBuffer(target, buffer_id) end function gl.bindRenderBuffer(target, buffer) local buffer_id = 0 if "number" == type(buffer) then buffer_id = buffer; elseif "table" == type(buffer) then buffer_id = buffer.buffer_id end gl._bindRenderbuffer(target, buffer_id) end function gl.bindFramebuffer(target, buffer) local buffer_id = 0 if "number" == type(buffer) then buffer_id = buffer elseif "table" == type(buffer) then buffer_id = buffer.buffer_id end gl._bindFramebuffer(target, buffer_id) end --Uniform related function gl.getUniform(program, location) local program_id = 0 local location_id = 0 if "number" == type(program) then program_id = program else program_id = program.program_id end if "number" == type(location) then location_id = location else location_id = location.location_id end return gl._getUniform(program_id, location_id) end --shader related function gl.compileShader(shader) gl._compileShader( shader.shader_id) end function gl.shaderSource(shader, source) gl._shaderSource(shader.shader_id, source) end function gl.getShaderParameter(shader, e) return gl._getShaderParameter(shader.shader_id,e) end function gl.getShaderInfoLog( shader ) return gl._getShaderInfoLog(shader.shader_id) end --program related function gl.attachShader( program, shader ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end gl._attachShader(program_id, shader.shader_id) end function gl.linkProgram( program ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end gl._linkProgram(program_id) end function gl.getProgramParameter(program, e) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getProgramParameter(program_id, e) end function gl.useProgram(program) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end gl._useProgram (program_id) end function gl.getAttribLocation(program, name ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getAttribLocation(program_id, name) end function gl.getUniformLocation( program, name ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getUniformLocation(program_id,name) end function gl.getActiveAttrib( program, index ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getActiveAttrib(program_id, index); end function gl.getActiveUniform( program, index ) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getActiveUniform(program_id, index) end function gl.getAttachedShaders(program) local program_id = 0 if "number" == type(program) then program_id = program elseif "table" == type(program) then program_id = program.program_id end return gl._getAttachedShaders(program_id) end function gl.glNodeCreate() return cc.GLNode:create() end