gles20.monkey2 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. Namespace gles20
  2. #Import "<libc.monkey2>"
  3. Using monkey
  4. #If __TARGET__="windows"
  5. 'USE ANGLE!
  6. #Import "angle/lib/libEGL.lib"
  7. #Import "angle/lib/libGLESv2.lib"
  8. #Import "angle/bin/libEGL.dll"
  9. #Import "angle/bin/libGLESv2.dll"
  10. #Import "angle/bin/d3dcompiler_47.dll"
  11. #Import "angle/include/*.h"
  12. #Import "<GLES2/gl2.h>"
  13. #Else If __TARGET__="macos"
  14. #Import "<OpenGL.framework>"
  15. #Import "native/gles20_macos.h"
  16. #Else If __TARGET__="linux"
  17. #Import "<libGL.a>"
  18. #Import "native/gles20_linux.h"
  19. #Else If __TARGET__="raspbian"
  20. #Import "<libEGL.a>"
  21. #Import "<libGLESv1_CM.a>"
  22. #Import "<libGLESv2.a>"
  23. #Import "<GLES2/gl2.h>"
  24. #Else If __TARGET__="emscripten"
  25. #Import "<GLES2/gl2.h>"
  26. #Else If __TARGET__="android"
  27. #Import "<libGLESv1_CM.a>"
  28. #Import "<libGLESv2.a>"
  29. #Import "<GLES2/gl2.h>"
  30. #Else If __TARGET__="ios"
  31. #Import "<OpenGLES.framework>"
  32. #import "<OpenGLES/ES2/gl.h>"
  33. #Endif
  34. #rem
  35. typedef void GLvoid;
  36. typedef char GLchar;
  37. typedef unsigned int GLenum;
  38. typedef unsigned char GLboolean;
  39. typedef unsigned int GLbitfield;
  40. typedef khronos_int8_t GLbyte;
  41. typedef short GLshort;
  42. typedef int GLint;
  43. typedef int GLsizei;
  44. typedef khronos_uint8_t GLubyte;
  45. typedef unsigned short GLushort;
  46. typedef unsigned int GLuint;
  47. typedef khronos_float_t GLfloat;
  48. typedef khronos_float_t GLclampf;
  49. typedef khronos_int32_t GLfixed;
  50. typedef khronos_intptr_t GLintptr;
  51. typedef khronos_ssize_t GLsizeiptr;
  52. #end
  53. 'Not quite right, but less annoying...
  54. Alias GLvoid:Void
  55. Alias GLenum:Int
  56. Alias GLboolean:Bool
  57. Alias GLbitfield:Int
  58. Alias GLshort:Short
  59. Alias GLint:Int
  60. Alias GLsizei:Int
  61. Alias GLubyte:UByte
  62. Alias GLushort:UShort
  63. Alias GLuint:UInt
  64. Alias GLfloat:Float
  65. Alias GLfixed:Int
  66. Alias GLclampf:Float
  67. Alias GLintptr:Int
  68. Alias GLsizeiptr:Int
  69. Extern
  70. Struct GLchar="char"
  71. End
  72. Struct GLcchar="const char"
  73. End
  74. '${CONSTS}
  75. Const GL_ES_VERSION_2_0:Int
  76. Const GL_DEPTH_BUFFER_BIT:Int
  77. Const GL_STENCIL_BUFFER_BIT:Int
  78. Const GL_COLOR_BUFFER_BIT:Int
  79. Const GL_FALSE:Int
  80. Const GL_TRUE:Int
  81. Const GL_POINTS:Int
  82. Const GL_LINES:Int
  83. Const GL_LINE_LOOP:Int
  84. Const GL_LINE_STRIP:Int
  85. Const GL_TRIANGLES:Int
  86. Const GL_TRIANGLE_STRIP:Int
  87. Const GL_TRIANGLE_FAN:Int
  88. Const GL_ZERO:Int
  89. Const GL_ONE:Int
  90. Const GL_SRC_COLOR:Int
  91. Const GL_ONE_MINUS_SRC_COLOR:Int
  92. Const GL_SRC_ALPHA:Int
  93. Const GL_ONE_MINUS_SRC_ALPHA:Int
  94. Const GL_DST_ALPHA:Int
  95. Const GL_ONE_MINUS_DST_ALPHA:Int
  96. Const GL_DST_COLOR:Int
  97. Const GL_ONE_MINUS_DST_COLOR:Int
  98. Const GL_SRC_ALPHA_SATURATE:Int
  99. Const GL_FUNC_ADD:Int
  100. Const GL_BLEND_EQUATION:Int
  101. Const GL_BLEND_EQUATION_RGB:Int
  102. Const GL_BLEND_EQUATION_ALPHA:Int
  103. Const GL_FUNC_SUBTRACT:Int
  104. Const GL_FUNC_REVERSE_SUBTRACT:Int
  105. Const GL_BLEND_DST_RGB:Int
  106. Const GL_BLEND_SRC_RGB:Int
  107. Const GL_BLEND_DST_ALPHA:Int
  108. Const GL_BLEND_SRC_ALPHA:Int
  109. Const GL_CONSTANT_COLOR:Int
  110. Const GL_ONE_MINUS_CONSTANT_COLOR:Int
  111. Const GL_CONSTANT_ALPHA:Int
  112. Const GL_ONE_MINUS_CONSTANT_ALPHA:Int
  113. Const GL_BLEND_COLOR:Int
  114. Const GL_ARRAY_BUFFER:Int
  115. Const GL_ELEMENT_ARRAY_BUFFER:Int
  116. Const GL_ARRAY_BUFFER_BINDING:Int
  117. Const GL_ELEMENT_ARRAY_BUFFER_BINDING:Int
  118. Const GL_STREAM_DRAW:Int
  119. Const GL_STATIC_DRAW:Int
  120. Const GL_DYNAMIC_DRAW:Int
  121. Const GL_BUFFER_SIZE:Int
  122. Const GL_BUFFER_USAGE:Int
  123. Const GL_CURRENT_VERTEX_ATTRIB:Int
  124. Const GL_FRONT:Int
  125. Const GL_BACK:Int
  126. Const GL_FRONT_AND_BACK:Int
  127. Const GL_TEXTURE_2D:Int
  128. Const GL_CULL_FACE:Int
  129. Const GL_BLEND:Int
  130. Const GL_DITHER:Int
  131. Const GL_STENCIL_TEST:Int
  132. Const GL_DEPTH_TEST:Int
  133. Const GL_SCISSOR_TEST:Int
  134. Const GL_POLYGON_OFFSET_FILL:Int
  135. Const GL_SAMPLE_ALPHA_TO_COVERAGE:Int
  136. Const GL_SAMPLE_COVERAGE:Int
  137. Const GL_NO_ERROR:Int
  138. Const GL_INVALID_ENUM:Int
  139. Const GL_INVALID_VALUE:Int
  140. Const GL_INVALID_OPERATION:Int
  141. Const GL_OUT_OF_MEMORY:Int
  142. Const GL_CW:Int
  143. Const GL_CCW:Int
  144. Const GL_LINE_WIDTH:Int
  145. Const GL_ALIASED_POINT_SIZE_RANGE:Int
  146. Const GL_ALIASED_LINE_WIDTH_RANGE:Int
  147. Const GL_CULL_FACE_MODE:Int
  148. Const GL_FRONT_FACE:Int
  149. Const GL_DEPTH_RANGE:Int
  150. Const GL_DEPTH_WRITEMASK:Int
  151. Const GL_DEPTH_CLEAR_VALUE:Int
  152. Const GL_DEPTH_FUNC:Int
  153. Const GL_STENCIL_CLEAR_VALUE:Int
  154. Const GL_STENCIL_FUNC:Int
  155. Const GL_STENCIL_FAIL:Int
  156. Const GL_STENCIL_PASS_DEPTH_FAIL:Int
  157. Const GL_STENCIL_PASS_DEPTH_PASS:Int
  158. Const GL_STENCIL_REF:Int
  159. Const GL_STENCIL_VALUE_MASK:Int
  160. Const GL_STENCIL_WRITEMASK:Int
  161. Const GL_STENCIL_BACK_FUNC:Int
  162. Const GL_STENCIL_BACK_FAIL:Int
  163. Const GL_STENCIL_BACK_PASS_DEPTH_FAIL:Int
  164. Const GL_STENCIL_BACK_PASS_DEPTH_PASS:Int
  165. Const GL_STENCIL_BACK_REF:Int
  166. Const GL_STENCIL_BACK_VALUE_MASK:Int
  167. Const GL_STENCIL_BACK_WRITEMASK:Int
  168. Const GL_VIEWPORT:Int
  169. Const GL_SCISSOR_BOX:Int
  170. Const GL_COLOR_CLEAR_VALUE:Int
  171. Const GL_COLOR_WRITEMASK:Int
  172. Const GL_UNPACK_ALIGNMENT:Int
  173. Const GL_PACK_ALIGNMENT:Int
  174. Const GL_MAX_TEXTURE_SIZE:Int
  175. Const GL_MAX_VIEWPORT_DIMS:Int
  176. Const GL_SUBPIXEL_BITS:Int
  177. Const GL_RED_BITS:Int
  178. Const GL_GREEN_BITS:Int
  179. Const GL_BLUE_BITS:Int
  180. Const GL_ALPHA_BITS:Int
  181. Const GL_DEPTH_BITS:Int
  182. Const GL_STENCIL_BITS:Int
  183. Const GL_POLYGON_OFFSET_UNITS:Int
  184. Const GL_POLYGON_OFFSET_FACTOR:Int
  185. Const GL_TEXTURE_BINDING_2D:Int
  186. Const GL_SAMPLE_BUFFERS:Int
  187. Const GL_SAMPLES:Int
  188. Const GL_SAMPLE_COVERAGE_VALUE:Int
  189. Const GL_SAMPLE_COVERAGE_INVERT:Int
  190. Const GL_NUM_COMPRESSED_TEXTURE_FORMATS:Int
  191. Const GL_COMPRESSED_TEXTURE_FORMATS:Int
  192. Const GL_DONT_CARE:Int
  193. Const GL_FASTEST:Int
  194. Const GL_NICEST:Int
  195. Const GL_GENERATE_MIPMAP_HINT:Int
  196. Const GL_BYTE:Int
  197. Const GL_UNSIGNED_BYTE:Int
  198. Const GL_SHORT:Int
  199. Const GL_UNSIGNED_SHORT:Int
  200. Const GL_INT:Int
  201. Const GL_UNSIGNED_INT:Int
  202. Const GL_FLOAT:Int
  203. Const GL_FIXED:Int
  204. Const GL_DEPTH_COMPONENT:Int
  205. Const GL_ALPHA:Int
  206. Const GL_RGB:Int
  207. Const GL_RGBA:Int
  208. Const GL_LUMINANCE:Int
  209. Const GL_LUMINANCE_ALPHA:Int
  210. Const GL_UNSIGNED_SHORT_4_4_4_4:Int
  211. Const GL_UNSIGNED_SHORT_5_5_5_1:Int
  212. Const GL_UNSIGNED_SHORT_5_6_5:Int
  213. Const GL_FRAGMENT_SHADER:Int
  214. Const GL_VERTEX_SHADER:Int
  215. Const GL_MAX_VERTEX_ATTRIBS:Int
  216. Const GL_MAX_VERTEX_UNIFORM_VECTORS:Int
  217. Const GL_MAX_VARYING_VECTORS:Int
  218. Const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:Int
  219. Const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:Int
  220. Const GL_MAX_TEXTURE_IMAGE_UNITS:Int
  221. Const GL_MAX_FRAGMENT_UNIFORM_VECTORS:Int
  222. Const GL_SHADER_TYPE:Int
  223. Const GL_DELETE_STATUS:Int
  224. Const GL_LINK_STATUS:Int
  225. Const GL_VALIDATE_STATUS:Int
  226. Const GL_ATTACHED_SHADERS:Int
  227. Const GL_ACTIVE_UNIFORMS:Int
  228. Const GL_ACTIVE_UNIFORM_MAX_LENGTH:Int
  229. Const GL_ACTIVE_ATTRIBUTES:Int
  230. Const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:Int
  231. Const GL_SHADING_LANGUAGE_VERSION:Int
  232. Const GL_CURRENT_PROGRAM:Int
  233. Const GL_NEVER:Int
  234. Const GL_LESS:Int
  235. Const GL_EQUAL:Int
  236. Const GL_LEQUAL:Int
  237. Const GL_GREATER:Int
  238. Const GL_NOTEQUAL:Int
  239. Const GL_GEQUAL:Int
  240. Const GL_ALWAYS:Int
  241. Const GL_KEEP:Int
  242. Const GL_REPLACE:Int
  243. Const GL_INCR:Int
  244. Const GL_DECR:Int
  245. Const GL_INVERT:Int
  246. Const GL_INCR_WRAP:Int
  247. Const GL_DECR_WRAP:Int
  248. Const GL_VENDOR:Int
  249. Const GL_RENDERER:Int
  250. Const GL_VERSION:Int
  251. Const GL_EXTENSIONS:Int
  252. Const GL_NEAREST:Int
  253. Const GL_LINEAR:Int
  254. Const GL_NEAREST_MIPMAP_NEAREST:Int
  255. Const GL_LINEAR_MIPMAP_NEAREST:Int
  256. Const GL_NEAREST_MIPMAP_LINEAR:Int
  257. Const GL_LINEAR_MIPMAP_LINEAR:Int
  258. Const GL_TEXTURE_MAG_FILTER:Int
  259. Const GL_TEXTURE_MIN_FILTER:Int
  260. Const GL_TEXTURE_WRAP_S:Int
  261. Const GL_TEXTURE_WRAP_T:Int
  262. Const GL_TEXTURE:Int
  263. Const GL_TEXTURE_CUBE_MAP:Int
  264. Const GL_TEXTURE_BINDING_CUBE_MAP:Int
  265. Const GL_TEXTURE_CUBE_MAP_POSITIVE_X:Int
  266. Const GL_TEXTURE_CUBE_MAP_NEGATIVE_X:Int
  267. Const GL_TEXTURE_CUBE_MAP_POSITIVE_Y:Int
  268. Const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:Int
  269. Const GL_TEXTURE_CUBE_MAP_POSITIVE_Z:Int
  270. Const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:Int
  271. Const GL_MAX_CUBE_MAP_TEXTURE_SIZE:Int
  272. Const GL_TEXTURE0:Int
  273. Const GL_TEXTURE1:Int
  274. Const GL_TEXTURE2:Int
  275. Const GL_TEXTURE3:Int
  276. Const GL_TEXTURE4:Int
  277. Const GL_TEXTURE5:Int
  278. Const GL_TEXTURE6:Int
  279. Const GL_TEXTURE7:Int
  280. Const GL_TEXTURE8:Int
  281. Const GL_TEXTURE9:Int
  282. Const GL_TEXTURE10:Int
  283. Const GL_TEXTURE11:Int
  284. Const GL_TEXTURE12:Int
  285. Const GL_TEXTURE13:Int
  286. Const GL_TEXTURE14:Int
  287. Const GL_TEXTURE15:Int
  288. Const GL_TEXTURE16:Int
  289. Const GL_TEXTURE17:Int
  290. Const GL_TEXTURE18:Int
  291. Const GL_TEXTURE19:Int
  292. Const GL_TEXTURE20:Int
  293. Const GL_TEXTURE21:Int
  294. Const GL_TEXTURE22:Int
  295. Const GL_TEXTURE23:Int
  296. Const GL_TEXTURE24:Int
  297. Const GL_TEXTURE25:Int
  298. Const GL_TEXTURE26:Int
  299. Const GL_TEXTURE27:Int
  300. Const GL_TEXTURE28:Int
  301. Const GL_TEXTURE29:Int
  302. Const GL_TEXTURE30:Int
  303. Const GL_TEXTURE31:Int
  304. Const GL_ACTIVE_TEXTURE:Int
  305. Const GL_REPEAT:Int
  306. Const GL_CLAMP_TO_EDGE:Int
  307. Const GL_MIRRORED_REPEAT:Int
  308. Const GL_FLOAT_VEC2:Int
  309. Const GL_FLOAT_VEC3:Int
  310. Const GL_FLOAT_VEC4:Int
  311. Const GL_INT_VEC2:Int
  312. Const GL_INT_VEC3:Int
  313. Const GL_INT_VEC4:Int
  314. Const GL_BOOL:Int
  315. Const GL_BOOL_VEC2:Int
  316. Const GL_BOOL_VEC3:Int
  317. Const GL_BOOL_VEC4:Int
  318. Const GL_FLOAT_MAT2:Int
  319. Const GL_FLOAT_MAT3:Int
  320. Const GL_FLOAT_MAT4:Int
  321. Const GL_SAMPLER_2D:Int
  322. Const GL_SAMPLER_CUBE:Int
  323. Const GL_VERTEX_ATTRIB_ARRAY_ENABLED:Int
  324. Const GL_VERTEX_ATTRIB_ARRAY_SIZE:Int
  325. Const GL_VERTEX_ATTRIB_ARRAY_STRIDE:Int
  326. Const GL_VERTEX_ATTRIB_ARRAY_TYPE:Int
  327. Const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:Int
  328. Const GL_VERTEX_ATTRIB_ARRAY_POINTER:Int
  329. Const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:Int
  330. Const GL_IMPLEMENTATION_COLOR_READ_TYPE:Int
  331. Const GL_IMPLEMENTATION_COLOR_READ_FORMAT:Int
  332. Const GL_COMPILE_STATUS:Int
  333. Const GL_INFO_LOG_LENGTH:Int
  334. Const GL_SHADER_SOURCE_LENGTH:Int
  335. Const GL_SHADER_COMPILER:Int
  336. Const GL_SHADER_BINARY_FORMATS:Int
  337. Const GL_NUM_SHADER_BINARY_FORMATS:Int
  338. Const GL_LOW_FLOAT:Int
  339. Const GL_MEDIUM_FLOAT:Int
  340. Const GL_HIGH_FLOAT:Int
  341. Const GL_LOW_INT:Int
  342. Const GL_MEDIUM_INT:Int
  343. Const GL_HIGH_INT:Int
  344. Const GL_FRAMEBUFFER:Int
  345. Const GL_RENDERBUFFER:Int
  346. Const GL_RGBA4:Int
  347. Const GL_RGB5_A1:Int
  348. Const GL_RGB565:Int
  349. Const GL_DEPTH_COMPONENT16:Int
  350. Const GL_STENCIL_INDEX:Int
  351. Const GL_STENCIL_INDEX8:Int
  352. Const GL_RENDERBUFFER_WIDTH:Int
  353. Const GL_RENDERBUFFER_HEIGHT:Int
  354. Const GL_RENDERBUFFER_INTERNAL_FORMAT:Int
  355. Const GL_RENDERBUFFER_RED_SIZE:Int
  356. Const GL_RENDERBUFFER_GREEN_SIZE:Int
  357. Const GL_RENDERBUFFER_BLUE_SIZE:Int
  358. Const GL_RENDERBUFFER_ALPHA_SIZE:Int
  359. Const GL_RENDERBUFFER_DEPTH_SIZE:Int
  360. Const GL_RENDERBUFFER_STENCIL_SIZE:Int
  361. Const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:Int
  362. Const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:Int
  363. Const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:Int
  364. Const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:Int
  365. Const GL_COLOR_ATTACHMENT0:Int
  366. Const GL_DEPTH_ATTACHMENT:Int
  367. Const GL_STENCIL_ATTACHMENT:Int
  368. Const GL_NONE:Int
  369. Const GL_FRAMEBUFFER_COMPLETE:Int
  370. Const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:Int
  371. Const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:Int
  372. Const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:Int
  373. Const GL_FRAMEBUFFER_UNSUPPORTED:Int
  374. Const GL_FRAMEBUFFER_BINDING:Int
  375. Const GL_RENDERBUFFER_BINDING:Int
  376. Const GL_MAX_RENDERBUFFER_SIZE:Int
  377. Const GL_INVALID_FRAMEBUFFER_OPERATION:Int
  378. '${END}
  379. '${FUNCTIONS}
  380. Function glActiveTexture:Void(texture_:GLenum)
  381. Function glAttachShader:Void(program_:GLuint,shader_:GLuint)
  382. Function glBindAttribLocation:Void(program_:GLuint,index_:GLuint,name_:CString)
  383. Function glBindBuffer:Void(target_:GLenum,buffer_:GLuint)
  384. Function glBindFramebuffer:Void(target_:GLenum,framebuffer_:GLuint)
  385. Function glBindRenderbuffer:Void(target_:GLenum,renderbuffer_:GLuint)
  386. Function glBindTexture:Void(target_:GLenum,texture_:GLuint)
  387. Function glBlendColor:Void(red_:GLclampf,green_:GLclampf,blue_:GLclampf,alpha_:GLclampf)
  388. Function glBlendEquation:Void(mode_:GLenum)
  389. Function glBlendEquationSeparate:Void(modeRGB_:GLenum,modeAlpha_:GLenum)
  390. Function glBlendFunc:Void(sfactor_:GLenum,dfactor_:GLenum)
  391. Function glBlendFuncSeparate:Void(srcRGB_:GLenum,dstRGB_:GLenum,srcAlpha_:GLenum,dstAlpha_:GLenum)
  392. Function glBufferData:Void(target_:GLenum,size_:GLsizeiptr,data_:GLvoid Ptr,usage_:GLenum)
  393. Function glBufferSubData:Void(target_:GLenum,offset_:GLintptr,size_:GLsizeiptr,data_:GLvoid Ptr)
  394. Function glCheckFramebufferStatus:GLenum(target_:GLenum)
  395. Function glClear:Void(mask_:GLbitfield)
  396. Function glClearColor:Void(red_:GLclampf,green_:GLclampf,blue_:GLclampf,alpha_:GLclampf)
  397. Function glClearDepthf:Void(depth_:GLclampf)
  398. Function glClearStencil:Void(s_:GLint)
  399. Function glColorMask:Void(red_:GLboolean,green_:GLboolean,blue_:GLboolean,alpha_:GLboolean)
  400. Function glCompileShader:Void(shader_:GLuint)
  401. Function glCompressedTexImage2D:Void(target_:GLenum,level_:GLint,internalformat_:GLenum,width_:GLsizei,height_:GLsizei,border_:GLint,imageSize_:GLsizei,data_:GLvoid Ptr)
  402. Function glCompressedTexSubImage2D:Void(target_:GLenum,level_:GLint,xoffset_:GLint,yoffset_:GLint,width_:GLsizei,height_:GLsizei,format_:GLenum,imageSize_:GLsizei,data_:GLvoid Ptr)
  403. Function glCopyTexImage2D:Void(target_:GLenum,level_:GLint,internalformat_:GLenum,x_:GLint,y_:GLint,width_:GLsizei,height_:GLsizei,border_:GLint)
  404. Function glCopyTexSubImage2D:Void(target_:GLenum,level_:GLint,xoffset_:GLint,yoffset_:GLint,x_:GLint,y_:GLint,width_:GLsizei,height_:GLsizei)
  405. Function glCreateProgram:GLuint()
  406. Function glCreateShader:GLuint(type_:GLenum)
  407. Function glCullFace:Void(mode_:GLenum)
  408. Function glDeleteBuffers:Void(n_:GLsizei,buffers_:GLuint Ptr)
  409. Function glDeleteFramebuffers:Void(n_:GLsizei,framebuffers_:GLuint Ptr)
  410. Function glDeleteProgram:Void(program_:GLuint)
  411. Function glDeleteRenderbuffers:Void(n_:GLsizei,renderbuffers_:GLuint Ptr)
  412. Function glDeleteShader:Void(shader_:GLuint)
  413. Function glDeleteTextures:Void(n_:GLsizei,textures_:GLuint Ptr)
  414. Function glDepthFunc:Void(func_:GLenum)
  415. Function glDepthMask:Void(flag_:GLboolean)
  416. Function glDepthRangef:Void(zNear_:GLclampf,zFar_:GLclampf)
  417. Function glDetachShader:Void(program_:GLuint,shader_:GLuint)
  418. Function glDisable:Void(cap_:GLenum)
  419. Function glDisableVertexAttribArray:Void(index_:GLuint)
  420. Function glDrawArrays:Void(mode_:GLenum,first_:GLint,count_:GLsizei)
  421. Function glDrawElements:Void(mode_:GLenum,count_:GLsizei,type_:GLenum,indices_:GLvoid Ptr)
  422. Function glEnable:Void(cap_:GLenum)
  423. Function glEnableVertexAttribArray:Void(index_:GLuint)
  424. Function glFinish:Void()
  425. Function glFlush:Void()
  426. Function glFramebufferRenderbuffer:Void(target_:GLenum,attachment_:GLenum,renderbuffertarget_:GLenum,renderbuffer_:GLuint)
  427. Function glFramebufferTexture2D:Void(target_:GLenum,attachment_:GLenum,textarget_:GLenum,texture_:GLuint,level_:GLint)
  428. Function glFrontFace:Void(mode_:GLenum)
  429. Function glGenBuffers:Void(n_:GLsizei,buffers_:GLuint Ptr)
  430. Function glGenerateMipmap:Void(target_:GLenum)
  431. Function glGenFramebuffers:Void(n_:GLsizei,framebuffers_:GLuint Ptr)
  432. Function glGenRenderbuffers:Void(n_:GLsizei,renderbuffers_:GLuint Ptr)
  433. Function glGenTextures:Void(n_:GLsizei,textures_:GLuint Ptr)
  434. Function glGetActiveAttrib:Void(program_:GLuint,index_:GLuint,bufsize_:GLsizei,length_:GLsizei Ptr,size_:GLint Ptr,type_:GLenum Ptr,name_:GLchar Ptr)
  435. Function glGetActiveUniform:Void(program_:GLuint,index_:GLuint,bufsize_:GLsizei,length_:GLsizei Ptr,size_:GLint Ptr,type_:UInt Ptr,name_:GLchar Ptr)
  436. Function glGetAttachedShaders:Void(program_:GLuint,maxcount_:GLsizei,count_:GLsizei Ptr,shaders_:GLuint Ptr)
  437. Function glGetAttribLocation:int(program_:GLuint,name_:CString)
  438. Function glGetBooleanv:Void(pname_:GLenum,params_:GLboolean Ptr)
  439. Function glGetBufferParameteriv:Void(target_:GLenum,pname_:GLenum,params_:GLint Ptr)
  440. Function glGetError:GLenum()
  441. Function glGetFloatv:Void(pname_:GLenum,params_:GLfloat Ptr)
  442. Function glGetFramebufferAttachmentParameteriv:Void(target_:GLenum,attachment_:GLenum,pname_:GLenum,params_:GLint Ptr)
  443. Function glGetIntegerv:Void(pname_:GLenum,params_:GLint Ptr)
  444. Function glGetProgramiv:Void(program_:GLuint,pname_:GLenum,params_:GLint Ptr)
  445. Function glGetProgramInfoLog:Void(program_:GLuint,bufsize_:GLsizei,length_:GLsizei Ptr,infolog_:GLchar Ptr )
  446. Function glGetRenderbufferParameteriv:Void(target_:GLenum,pname_:GLenum,params_:GLint Ptr)
  447. Function glGetShaderiv:Void(shader_:GLuint,pname_:GLenum,params_:GLint Ptr)
  448. Function glGetShaderInfoLog:Void(shader_:GLuint,bufsize_:GLsizei,length_:GLsizei Ptr,infolog_:GLchar Ptr )
  449. Function glGetShaderPrecisionFormat:Void(shadertype_:GLenum,precisiontype_:GLenum,range_:GLint Ptr,precision_:GLint Ptr)
  450. Function glGetShaderSource:Void(shader_:GLuint,bufsize_:GLsizei,length_:GLsizei Ptr,source_:CString)
  451. Function glGetString:GLubyte Ptr(name_:GLenum)
  452. Function glGetTexParameterfv:Void(target_:GLenum,pname_:GLenum,params_:GLfloat Ptr)
  453. Function glGetTexParameteriv:Void(target_:GLenum,pname_:GLenum,params_:GLint Ptr)
  454. Function glGetUniformfv:Void(program_:GLuint,location_:GLint,params_:GLfloat Ptr)
  455. Function glGetUniformiv:Void(program_:GLuint,location_:GLint,params_:GLint Ptr)
  456. Function glGetUniformLocation:Int(program_:GLuint,name_:CString)
  457. Function glGetVertexAttribfv:Void(index_:GLuint,pname_:GLenum,params_:GLfloat Ptr)
  458. Function glGetVertexAttribiv:Void(index_:GLuint,pname_:GLenum,params_:GLint Ptr)
  459. Function glGetVertexAttribPointerv:Void(index_:GLuint,pname_:GLenum,pointer_:GLvoid Ptr Ptr)
  460. Function glHint:Void(target_:GLenum,mode_:GLenum)
  461. Function glIsBuffer:GLboolean(buffer_:GLuint)
  462. Function glIsEnabled:GLboolean(cap_:GLenum)
  463. Function glIsFramebuffer:GLboolean(framebuffer_:GLuint)
  464. Function glIsProgram:GLboolean(program_:GLuint)
  465. Function glIsRenderbuffer:GLboolean(renderbuffer_:GLuint)
  466. Function glIsShader:GLboolean(shader_:GLuint)
  467. Function glIsTexture:GLboolean(texture_:GLuint)
  468. Function glLineWidth:Void(width_:GLfloat)
  469. Function glLinkProgram:Void(program_:GLuint)
  470. Function glPixelStorei:Void(pname_:GLenum,param_:GLint)
  471. Function glPolygonOffset:Void(factor_:GLfloat,units_:GLfloat)
  472. Function glReadPixels:Void(x_:GLint,y_:GLint,width_:GLsizei,height_:GLsizei,format_:GLenum,type_:GLenum,pixels_:GLvoid Ptr)
  473. Function glReleaseShaderCompiler:Void()
  474. Function glRenderbufferStorage:Void(target_:GLenum,internalformat_:GLenum,width_:GLsizei,height_:GLsizei)
  475. Function glSampleCoverage:Void(value_:GLclampf,invert_:GLboolean)
  476. Function glScissor:Void(x_:GLint,y_:GLint,width_:GLsizei,height_:GLsizei)
  477. Function glShaderBinary:Void(n_:GLsizei,shaders_:GLuint Ptr,binaryformat_:GLenum,binary_:GLvoid Ptr,length_:GLsizei)
  478. Function glShaderSource:Void(shader_:GLuint,count_:GLsizei,string_:GLcchar Ptr Ptr,length_:GLint Ptr)
  479. Function glStencilFunc:Void(func_:GLenum,ref_:GLint,mask_:GLuint)
  480. Function glStencilFuncSeparate:Void(face_:GLenum,func_:GLenum,ref_:GLint,mask_:GLuint)
  481. Function glStencilMask:Void(mask_:GLuint)
  482. Function glStencilMaskSeparate:Void(face_:GLenum,mask_:GLuint)
  483. Function glStencilOp:Void(fail_:GLenum,zfail_:GLenum,zpass_:GLenum)
  484. Function glStencilOpSeparate:Void(face_:GLenum,fail_:GLenum,zfail_:GLenum,zpass_:GLenum)
  485. Function glTexImage2D:Void(target_:GLenum,level_:GLint,internalformat_:GLint,width_:GLsizei,height_:GLsizei,border_:GLint,format_:GLenum,type_:GLenum,pixels_:GLvoid Ptr)
  486. Function glTexParameterf:Void(target_:GLenum,pname_:GLenum,param_:GLfloat)
  487. Function glTexParameterfv:Void(target_:GLenum,pname_:GLenum,params_:GLfloat Ptr)
  488. Function glTexParameteri:Void(target_:GLenum,pname_:GLenum,param_:GLint)
  489. Function glTexParameteriv:Void(target_:GLenum,pname_:GLenum,params_:GLint Ptr)
  490. Function glTexSubImage2D:Void(target_:GLenum,level_:GLint,xoffset_:GLint,yoffset_:GLint,width_:GLsizei,height_:GLsizei,format_:GLenum,type_:GLenum,pixels_:GLvoid Ptr)
  491. Function glUniform1f:Void(location_:GLint,x_:GLfloat)
  492. Function glUniform1fv:Void(location_:GLint,count_:GLsizei,v_:GLfloat Ptr)
  493. Function glUniform1i:Void(location_:GLint,x_:GLint)
  494. Function glUniform1iv:Void(location_:GLint,count_:GLsizei,v_:GLint Ptr)
  495. Function glUniform2f:Void(location_:GLint,x_:GLfloat,y_:GLfloat)
  496. Function glUniform2fv:Void(location_:GLint,count_:GLsizei,v_:GLfloat Ptr)
  497. Function glUniform2i:Void(location_:GLint,x_:GLint,y_:GLint)
  498. Function glUniform2iv:Void(location_:GLint,count_:GLsizei,v_:GLint Ptr)
  499. Function glUniform3f:Void(location_:GLint,x_:GLfloat,y_:GLfloat,z_:GLfloat)
  500. Function glUniform3fv:Void(location_:GLint,count_:GLsizei,v_:GLfloat Ptr)
  501. Function glUniform3i:Void(location_:GLint,x_:GLint,y_:GLint,z_:GLint)
  502. Function glUniform3iv:Void(location_:GLint,count_:GLsizei,v_:GLint Ptr)
  503. Function glUniform4f:Void(location_:GLint,x_:GLfloat,y_:GLfloat,z_:GLfloat,w_:GLfloat)
  504. Function glUniform4fv:Void(location_:GLint,count_:GLsizei,v_:GLfloat Ptr)
  505. Function glUniform4i:Void(location_:GLint,x_:GLint,y_:GLint,z_:GLint,w_:GLint)
  506. Function glUniform4iv:Void(location_:GLint,count_:GLsizei,v_:GLint Ptr)
  507. Function glUniformMatrix2fv:Void(location_:GLint,count_:GLsizei,transpose_:GLboolean,value_:GLfloat Ptr)
  508. Function glUniformMatrix3fv:Void(location_:GLint,count_:GLsizei,transpose_:GLboolean,value_:GLfloat Ptr)
  509. Function glUniformMatrix4fv:Void(location_:GLint,count_:GLsizei,transpose_:GLboolean,value_:GLfloat Ptr)
  510. Function glUseProgram:Void(program_:GLuint)
  511. Function glValidateProgram:Void(program_:GLuint)
  512. Function glVertexAttrib1f:Void(indx_:GLuint,x_:GLfloat)
  513. Function glVertexAttrib1fv:Void(indx_:GLuint,values_:GLfloat Ptr)
  514. Function glVertexAttrib2f:Void(indx_:GLuint,x_:GLfloat,y_:GLfloat)
  515. Function glVertexAttrib2fv:Void(indx_:GLuint,values_:GLfloat Ptr)
  516. Function glVertexAttrib3f:Void(indx_:GLuint,x_:GLfloat,y_:GLfloat,z_:GLfloat)
  517. Function glVertexAttrib3fv:Void(indx_:GLuint,values_:GLfloat Ptr)
  518. Function glVertexAttrib4f:Void(indx_:GLuint,x_:GLfloat,y_:GLfloat,z_:GLfloat,w_:GLfloat)
  519. Function glVertexAttrib4fv:Void(indx_:GLuint,values_:GLfloat Ptr)
  520. Function glVertexAttribPointer:Void(indx_:GLuint,size_:GLint,type_:GLenum,normalized_:GLboolean,stride_:GLsizei,ptr_:GLvoid Ptr)
  521. Function glViewport:Void(x_:GLint,y_:GLint,width_:GLsizei,height_:GLsizei)
  522. '${END}
  523. #If __TARGET__="windows"
  524. Function bb_gles20_windows_init()
  525. #Endif
  526. Public
  527. 'Must call this after creating context...
  528. '
  529. Function glInitEx()
  530. #If __TARGET__="windows"
  531. ' bb_gles20_windows_init()
  532. #Endif
  533. End
  534. 'Saner versions of some string functions...
  535. '
  536. Function glShaderSourceEx:Void( shader:GLuint,source:String )
  537. Local n:=source.Length
  538. Local buf:=Cast<Byte Ptr>( libc.malloc( n+1 ) )
  539. For Local i:=0 Until n
  540. buf[i]=source[i]
  541. Next
  542. buf[n]=0
  543. Local p:=Cast<GLcchar Ptr>( buf )
  544. glShaderSource( shader,1,Varptr p,Null )
  545. libc.free( buf )
  546. End
  547. Function glGetShaderInfoLogEx:String( shader:GLuint )
  548. Local buf:=New Byte[1024],length:GLsizei
  549. glGetShaderInfoLog( shader,buf.Length,Varptr length,Cast<GLchar Ptr>( Varptr buf[0] ) )
  550. Return String.FromCString( Varptr buf[0] )
  551. End
  552. Function glGetProgramInfoLogEx:String( program:GLuint )
  553. Local buf:=New Byte[1024],length:GLsizei
  554. glGetProgramInfoLog( program,buf.Length,Varptr length,Cast<GLchar Ptr>( Varptr buf[0] ) )
  555. Return String.FromCString( Varptr buf[0] )
  556. End