You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

300 line
6.7 KiB

  1. require("luaScript.cc.OpenglConstants")
  2. gl = gl or {}
  3. --Create functions
  4. function gl.createTexture()
  5. local retTable = {}
  6. retTable.texture_id = gl._createTexture()
  7. return retTable
  8. end
  9. function gl.createBuffer()
  10. local retTable = {}
  11. retTable.buffer_id = gl._createBuffer()
  12. return retTable
  13. end
  14. function gl.createRenderbuffer()
  15. local retTable = {}
  16. retTable.renderbuffer_id = gl._createRenderuffer()
  17. return retTable
  18. end
  19. function gl.createFramebuffer( )
  20. local retTable = {}
  21. retTable.framebuffer_id = gl._createFramebuffer()
  22. return retTable
  23. end
  24. function gl.createProgram()
  25. local retTable = {}
  26. retTable.program_id = gl._createProgram()
  27. return retTable
  28. end
  29. function gl.createShader(shaderType)
  30. local retTable = {}
  31. retTable.shader_id = gl._createShader(shaderType)
  32. return retTable
  33. end
  34. --Delete Fun
  35. function gl.deleteTexture(texture)
  36. local texture_id = 0
  37. if "number" == type(texture) then
  38. texture_id = texture
  39. elseif "table" == type(texture) then
  40. texture_id = texture.texture_id
  41. end
  42. gl._deleteTexture(texture_id)
  43. end
  44. function gl.deleteBuffer(buffer)
  45. local buffer_id = 0
  46. if "number" == type(buffer) then
  47. buffer_id = buffer
  48. elseif "table" == type(buffer) then
  49. buffer_id = buffer.buffer_id
  50. end
  51. gl._deleteBuffer(buffer_id)
  52. end
  53. function gl.deleteRenderbuffer(buffer)
  54. local renderbuffer_id = 0
  55. if "number" == type(buffer) then
  56. renderbuffer_id = buffer
  57. elseif "table" == type(buffer) then
  58. renderbuffer_id = buffer.renderbuffer_id
  59. end
  60. gl._deleteRenderbuffer(renderbuffer_id)
  61. end
  62. function gl.deleteFramebuffer(buffer)
  63. local framebuffer_id = 0
  64. if "number" == type(buffer) then
  65. framebuffer_id = buffer
  66. elseif "table" == type(buffer) then
  67. framebuffer_id = buffer.framebuffer_id
  68. end
  69. gl._deleteFramebuffer(framebuffer_id)
  70. end
  71. function gl.deleteProgram( program )
  72. local program_id = 0
  73. if "number" == type(buffer) then
  74. program_id = program
  75. elseif "table" == type(program) then
  76. program_id = program.program_id
  77. end
  78. gl._deleteProgram(program_id)
  79. end
  80. function gl.deleteShader(shader)
  81. local shader_id = 0
  82. if "number" == type(shader) then
  83. shader_id = shader
  84. elseif "table" == type(shader) then
  85. shader_id = shader.shader_id
  86. end
  87. gl._deleteShader(shader_id)
  88. end
  89. --Bind Related
  90. function gl.bindTexture(target, texture)
  91. local texture_id = 0
  92. if "number" == type(texture) then
  93. texture_id = texture
  94. elseif "table" == type(texture) then
  95. texture_id = texture.texture_id
  96. end
  97. gl._bindTexture(target,texture_id)
  98. end
  99. function gl.bindBuffer( target,buffer )
  100. local buffer_id = 0
  101. if "number" == type(buffer) then
  102. buffer_id = buffer
  103. elseif "table" == type(buffer) then
  104. buffer_id = buffer.buffer_id
  105. end
  106. gl._bindBuffer(target, buffer_id)
  107. end
  108. function gl.bindRenderBuffer(target, buffer)
  109. local buffer_id = 0
  110. if "number" == type(buffer) then
  111. buffer_id = buffer;
  112. elseif "table" == type(buffer) then
  113. buffer_id = buffer.buffer_id
  114. end
  115. gl._bindRenderbuffer(target, buffer_id)
  116. end
  117. function gl.bindFramebuffer(target, buffer)
  118. local buffer_id = 0
  119. if "number" == type(buffer) then
  120. buffer_id = buffer
  121. elseif "table" == type(buffer) then
  122. buffer_id = buffer.buffer_id
  123. end
  124. gl._bindFramebuffer(target, buffer_id)
  125. end
  126. --Uniform related
  127. function gl.getUniform(program, location)
  128. local program_id = 0
  129. local location_id = 0
  130. if "number" == type(program) then
  131. program_id = program
  132. else
  133. program_id = program.program_id
  134. end
  135. if "number" == type(location) then
  136. location_id = location
  137. else
  138. location_id = location.location_id
  139. end
  140. return gl._getUniform(program_id, location_id)
  141. end
  142. --shader related
  143. function gl.compileShader(shader)
  144. gl._compileShader( shader.shader_id)
  145. end
  146. function gl.shaderSource(shader, source)
  147. gl._shaderSource(shader.shader_id, source)
  148. end
  149. function gl.getShaderParameter(shader, e)
  150. return gl._getShaderParameter(shader.shader_id,e)
  151. end
  152. function gl.getShaderInfoLog( shader )
  153. return gl._getShaderInfoLog(shader.shader_id)
  154. end
  155. --program related
  156. function gl.attachShader( program, shader )
  157. local program_id = 0
  158. if "number" == type(program) then
  159. program_id = program
  160. elseif "table" == type(program) then
  161. program_id = program.program_id
  162. end
  163. gl._attachShader(program_id, shader.shader_id)
  164. end
  165. function gl.linkProgram( program )
  166. local program_id = 0
  167. if "number" == type(program) then
  168. program_id = program
  169. elseif "table" == type(program) then
  170. program_id = program.program_id
  171. end
  172. gl._linkProgram(program_id)
  173. end
  174. function gl.getProgramParameter(program, e)
  175. local program_id = 0
  176. if "number" == type(program) then
  177. program_id = program
  178. elseif "table" == type(program) then
  179. program_id = program.program_id
  180. end
  181. return gl._getProgramParameter(program_id, e)
  182. end
  183. function gl.useProgram(program)
  184. local program_id = 0
  185. if "number" == type(program) then
  186. program_id = program
  187. elseif "table" == type(program) then
  188. program_id = program.program_id
  189. end
  190. gl._useProgram (program_id)
  191. end
  192. function gl.getAttribLocation(program, name )
  193. local program_id = 0
  194. if "number" == type(program) then
  195. program_id = program
  196. elseif "table" == type(program) then
  197. program_id = program.program_id
  198. end
  199. return gl._getAttribLocation(program_id, name)
  200. end
  201. function gl.getUniformLocation( program, name )
  202. local program_id = 0
  203. if "number" == type(program) then
  204. program_id = program
  205. elseif "table" == type(program) then
  206. program_id = program.program_id
  207. end
  208. return gl._getUniformLocation(program_id,name)
  209. end
  210. function gl.getActiveAttrib( program, index )
  211. local program_id = 0
  212. if "number" == type(program) then
  213. program_id = program
  214. elseif "table" == type(program) then
  215. program_id = program.program_id
  216. end
  217. return gl._getActiveAttrib(program_id, index);
  218. end
  219. function gl.getActiveUniform( program, index )
  220. local program_id = 0
  221. if "number" == type(program) then
  222. program_id = program
  223. elseif "table" == type(program) then
  224. program_id = program.program_id
  225. end
  226. return gl._getActiveUniform(program_id, index)
  227. end
  228. function gl.getAttachedShaders(program)
  229. local program_id = 0
  230. if "number" == type(program) then
  231. program_id = program
  232. elseif "table" == type(program) then
  233. program_id = program.program_id
  234. end
  235. return gl._getAttachedShaders(program_id)
  236. end
  237. function gl.glNodeCreate()
  238. return cc.GLNode:create()
  239. end