| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Go Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style | |
| 3 // license that can be found in the LICENSE file. | |
| 4 | |
| 5 // Generated from gl.go using go generate. DO NOT EDIT. | |
| 6 // See doc.go for details. | |
| 7 | |
| 8 // +build linux darwin | |
| 9 // +build gldebug | |
| 10 | |
| 11 package gl | |
| 12 | |
| 13 /* | |
| 14 #include <stdlib.h> | |
| 15 | |
| 16 #ifdef os_linux | |
| 17 #include <GLES2/gl2.h> | |
| 18 #endif | |
| 19 #ifdef os_darwin_arm | |
| 20 #include <OpenGLES/ES2/gl.h> | |
| 21 #endif | |
| 22 #ifdef os_darwin_amd64 | |
| 23 #include <OpenGL/gl3.h> | |
| 24 #endif | |
| 25 */ | |
| 26 import "C" | |
| 27 | |
| 28 import ( | |
| 29 "fmt" | |
| 30 "log" | |
| 31 "unsafe" | |
| 32 ) | |
| 33 | |
| 34 func errDrain() string { | |
| 35 var errs []Enum | |
| 36 for { | |
| 37 e := Enum(C.glGetError()) | |
| 38 if e == 0 { | |
| 39 break | |
| 40 } | |
| 41 errs = append(errs, e) | |
| 42 } | |
| 43 if len(errs) > 0 { | |
| 44 return fmt.Sprintf(" error: %v", errs) | |
| 45 } | |
| 46 return "" | |
| 47 } | |
| 48 | |
| 49 func (v Enum) String() string { | |
| 50 switch v { | |
| 51 case 0x0: | |
| 52 return "0" | |
| 53 case 0x1: | |
| 54 return "1" | |
| 55 case 0x2: | |
| 56 return "LINE_LOOP" | |
| 57 case 0x3: | |
| 58 return "LINE_STRIP" | |
| 59 case 0x4: | |
| 60 return "TRIANGLES" | |
| 61 case 0x5: | |
| 62 return "TRIANGLE_STRIP" | |
| 63 case 0x6: | |
| 64 return "TRIANGLE_FAN" | |
| 65 case 0x300: | |
| 66 return "SRC_COLOR" | |
| 67 case 0x301: | |
| 68 return "ONE_MINUS_SRC_COLOR" | |
| 69 case 0x302: | |
| 70 return "SRC_ALPHA" | |
| 71 case 0x303: | |
| 72 return "ONE_MINUS_SRC_ALPHA" | |
| 73 case 0x304: | |
| 74 return "DST_ALPHA" | |
| 75 case 0x305: | |
| 76 return "ONE_MINUS_DST_ALPHA" | |
| 77 case 0x306: | |
| 78 return "DST_COLOR" | |
| 79 case 0x307: | |
| 80 return "ONE_MINUS_DST_COLOR" | |
| 81 case 0x308: | |
| 82 return "SRC_ALPHA_SATURATE" | |
| 83 case 0x8006: | |
| 84 return "FUNC_ADD" | |
| 85 case 0x8009: | |
| 86 return "32777" | |
| 87 case 0x883d: | |
| 88 return "BLEND_EQUATION_ALPHA" | |
| 89 case 0x800a: | |
| 90 return "FUNC_SUBTRACT" | |
| 91 case 0x800b: | |
| 92 return "FUNC_REVERSE_SUBTRACT" | |
| 93 case 0x80c8: | |
| 94 return "BLEND_DST_RGB" | |
| 95 case 0x80c9: | |
| 96 return "BLEND_SRC_RGB" | |
| 97 case 0x80ca: | |
| 98 return "BLEND_DST_ALPHA" | |
| 99 case 0x80cb: | |
| 100 return "BLEND_SRC_ALPHA" | |
| 101 case 0x8001: | |
| 102 return "CONSTANT_COLOR" | |
| 103 case 0x8002: | |
| 104 return "ONE_MINUS_CONSTANT_COLOR" | |
| 105 case 0x8003: | |
| 106 return "CONSTANT_ALPHA" | |
| 107 case 0x8004: | |
| 108 return "ONE_MINUS_CONSTANT_ALPHA" | |
| 109 case 0x8005: | |
| 110 return "BLEND_COLOR" | |
| 111 case 0x8892: | |
| 112 return "ARRAY_BUFFER" | |
| 113 case 0x8893: | |
| 114 return "ELEMENT_ARRAY_BUFFER" | |
| 115 case 0x8894: | |
| 116 return "ARRAY_BUFFER_BINDING" | |
| 117 case 0x8895: | |
| 118 return "ELEMENT_ARRAY_BUFFER_BINDING" | |
| 119 case 0x88e0: | |
| 120 return "STREAM_DRAW" | |
| 121 case 0x88e4: | |
| 122 return "STATIC_DRAW" | |
| 123 case 0x88e8: | |
| 124 return "DYNAMIC_DRAW" | |
| 125 case 0x8764: | |
| 126 return "BUFFER_SIZE" | |
| 127 case 0x8765: | |
| 128 return "BUFFER_USAGE" | |
| 129 case 0x8626: | |
| 130 return "CURRENT_VERTEX_ATTRIB" | |
| 131 case 0x404: | |
| 132 return "FRONT" | |
| 133 case 0x405: | |
| 134 return "BACK" | |
| 135 case 0x408: | |
| 136 return "FRONT_AND_BACK" | |
| 137 case 0xde1: | |
| 138 return "TEXTURE_2D" | |
| 139 case 0xb44: | |
| 140 return "CULL_FACE" | |
| 141 case 0xbe2: | |
| 142 return "BLEND" | |
| 143 case 0xbd0: | |
| 144 return "DITHER" | |
| 145 case 0xb90: | |
| 146 return "STENCIL_TEST" | |
| 147 case 0xb71: | |
| 148 return "DEPTH_TEST" | |
| 149 case 0xc11: | |
| 150 return "SCISSOR_TEST" | |
| 151 case 0x8037: | |
| 152 return "POLYGON_OFFSET_FILL" | |
| 153 case 0x809e: | |
| 154 return "SAMPLE_ALPHA_TO_COVERAGE" | |
| 155 case 0x80a0: | |
| 156 return "SAMPLE_COVERAGE" | |
| 157 case 0x500: | |
| 158 return "INVALID_ENUM" | |
| 159 case 0x501: | |
| 160 return "INVALID_VALUE" | |
| 161 case 0x502: | |
| 162 return "INVALID_OPERATION" | |
| 163 case 0x505: | |
| 164 return "OUT_OF_MEMORY" | |
| 165 case 0x900: | |
| 166 return "CW" | |
| 167 case 0x901: | |
| 168 return "CCW" | |
| 169 case 0xb21: | |
| 170 return "LINE_WIDTH" | |
| 171 case 0x846d: | |
| 172 return "ALIASED_POINT_SIZE_RANGE" | |
| 173 case 0x846e: | |
| 174 return "ALIASED_LINE_WIDTH_RANGE" | |
| 175 case 0xb45: | |
| 176 return "CULL_FACE_MODE" | |
| 177 case 0xb46: | |
| 178 return "FRONT_FACE" | |
| 179 case 0xb70: | |
| 180 return "DEPTH_RANGE" | |
| 181 case 0xb72: | |
| 182 return "DEPTH_WRITEMASK" | |
| 183 case 0xb73: | |
| 184 return "DEPTH_CLEAR_VALUE" | |
| 185 case 0xb74: | |
| 186 return "DEPTH_FUNC" | |
| 187 case 0xb91: | |
| 188 return "STENCIL_CLEAR_VALUE" | |
| 189 case 0xb92: | |
| 190 return "STENCIL_FUNC" | |
| 191 case 0xb94: | |
| 192 return "STENCIL_FAIL" | |
| 193 case 0xb95: | |
| 194 return "STENCIL_PASS_DEPTH_FAIL" | |
| 195 case 0xb96: | |
| 196 return "STENCIL_PASS_DEPTH_PASS" | |
| 197 case 0xb97: | |
| 198 return "STENCIL_REF" | |
| 199 case 0xb93: | |
| 200 return "STENCIL_VALUE_MASK" | |
| 201 case 0xb98: | |
| 202 return "STENCIL_WRITEMASK" | |
| 203 case 0x8800: | |
| 204 return "STENCIL_BACK_FUNC" | |
| 205 case 0x8801: | |
| 206 return "STENCIL_BACK_FAIL" | |
| 207 case 0x8802: | |
| 208 return "STENCIL_BACK_PASS_DEPTH_FAIL" | |
| 209 case 0x8803: | |
| 210 return "STENCIL_BACK_PASS_DEPTH_PASS" | |
| 211 case 0x8ca3: | |
| 212 return "STENCIL_BACK_REF" | |
| 213 case 0x8ca4: | |
| 214 return "STENCIL_BACK_VALUE_MASK" | |
| 215 case 0x8ca5: | |
| 216 return "STENCIL_BACK_WRITEMASK" | |
| 217 case 0xba2: | |
| 218 return "VIEWPORT" | |
| 219 case 0xc10: | |
| 220 return "SCISSOR_BOX" | |
| 221 case 0xc22: | |
| 222 return "COLOR_CLEAR_VALUE" | |
| 223 case 0xc23: | |
| 224 return "COLOR_WRITEMASK" | |
| 225 case 0xcf5: | |
| 226 return "UNPACK_ALIGNMENT" | |
| 227 case 0xd05: | |
| 228 return "PACK_ALIGNMENT" | |
| 229 case 0xd33: | |
| 230 return "MAX_TEXTURE_SIZE" | |
| 231 case 0xd3a: | |
| 232 return "MAX_VIEWPORT_DIMS" | |
| 233 case 0xd50: | |
| 234 return "SUBPIXEL_BITS" | |
| 235 case 0xd52: | |
| 236 return "RED_BITS" | |
| 237 case 0xd53: | |
| 238 return "GREEN_BITS" | |
| 239 case 0xd54: | |
| 240 return "BLUE_BITS" | |
| 241 case 0xd55: | |
| 242 return "ALPHA_BITS" | |
| 243 case 0xd56: | |
| 244 return "DEPTH_BITS" | |
| 245 case 0xd57: | |
| 246 return "STENCIL_BITS" | |
| 247 case 0x2a00: | |
| 248 return "POLYGON_OFFSET_UNITS" | |
| 249 case 0x8038: | |
| 250 return "POLYGON_OFFSET_FACTOR" | |
| 251 case 0x8069: | |
| 252 return "TEXTURE_BINDING_2D" | |
| 253 case 0x80a8: | |
| 254 return "SAMPLE_BUFFERS" | |
| 255 case 0x80a9: | |
| 256 return "SAMPLES" | |
| 257 case 0x80aa: | |
| 258 return "SAMPLE_COVERAGE_VALUE" | |
| 259 case 0x80ab: | |
| 260 return "SAMPLE_COVERAGE_INVERT" | |
| 261 case 0x86a2: | |
| 262 return "NUM_COMPRESSED_TEXTURE_FORMATS" | |
| 263 case 0x86a3: | |
| 264 return "COMPRESSED_TEXTURE_FORMATS" | |
| 265 case 0x1100: | |
| 266 return "DONT_CARE" | |
| 267 case 0x1101: | |
| 268 return "FASTEST" | |
| 269 case 0x1102: | |
| 270 return "NICEST" | |
| 271 case 0x8192: | |
| 272 return "GENERATE_MIPMAP_HINT" | |
| 273 case 0x1400: | |
| 274 return "BYTE" | |
| 275 case 0x1401: | |
| 276 return "UNSIGNED_BYTE" | |
| 277 case 0x1402: | |
| 278 return "SHORT" | |
| 279 case 0x1403: | |
| 280 return "UNSIGNED_SHORT" | |
| 281 case 0x1404: | |
| 282 return "INT" | |
| 283 case 0x1405: | |
| 284 return "UNSIGNED_INT" | |
| 285 case 0x1406: | |
| 286 return "FLOAT" | |
| 287 case 0x140c: | |
| 288 return "FIXED" | |
| 289 case 0x1902: | |
| 290 return "DEPTH_COMPONENT" | |
| 291 case 0x1906: | |
| 292 return "ALPHA" | |
| 293 case 0x1907: | |
| 294 return "RGB" | |
| 295 case 0x1908: | |
| 296 return "RGBA" | |
| 297 case 0x1909: | |
| 298 return "LUMINANCE" | |
| 299 case 0x190a: | |
| 300 return "LUMINANCE_ALPHA" | |
| 301 case 0x8033: | |
| 302 return "UNSIGNED_SHORT_4_4_4_4" | |
| 303 case 0x8034: | |
| 304 return "UNSIGNED_SHORT_5_5_5_1" | |
| 305 case 0x8363: | |
| 306 return "UNSIGNED_SHORT_5_6_5" | |
| 307 case 0x8869: | |
| 308 return "MAX_VERTEX_ATTRIBS" | |
| 309 case 0x8dfb: | |
| 310 return "MAX_VERTEX_UNIFORM_VECTORS" | |
| 311 case 0x8dfc: | |
| 312 return "MAX_VARYING_VECTORS" | |
| 313 case 0x8b4d: | |
| 314 return "MAX_COMBINED_TEXTURE_IMAGE_UNITS" | |
| 315 case 0x8b4c: | |
| 316 return "MAX_VERTEX_TEXTURE_IMAGE_UNITS" | |
| 317 case 0x8872: | |
| 318 return "MAX_TEXTURE_IMAGE_UNITS" | |
| 319 case 0x8dfd: | |
| 320 return "MAX_FRAGMENT_UNIFORM_VECTORS" | |
| 321 case 0x8b4f: | |
| 322 return "SHADER_TYPE" | |
| 323 case 0x8b80: | |
| 324 return "DELETE_STATUS" | |
| 325 case 0x8b82: | |
| 326 return "LINK_STATUS" | |
| 327 case 0x8b83: | |
| 328 return "VALIDATE_STATUS" | |
| 329 case 0x8b85: | |
| 330 return "ATTACHED_SHADERS" | |
| 331 case 0x8b86: | |
| 332 return "ACTIVE_UNIFORMS" | |
| 333 case 0x8b87: | |
| 334 return "ACTIVE_UNIFORM_MAX_LENGTH" | |
| 335 case 0x8b89: | |
| 336 return "ACTIVE_ATTRIBUTES" | |
| 337 case 0x8b8a: | |
| 338 return "ACTIVE_ATTRIBUTE_MAX_LENGTH" | |
| 339 case 0x8b8c: | |
| 340 return "SHADING_LANGUAGE_VERSION" | |
| 341 case 0x8b8d: | |
| 342 return "CURRENT_PROGRAM" | |
| 343 case 0x200: | |
| 344 return "NEVER" | |
| 345 case 0x201: | |
| 346 return "LESS" | |
| 347 case 0x202: | |
| 348 return "EQUAL" | |
| 349 case 0x203: | |
| 350 return "LEQUAL" | |
| 351 case 0x204: | |
| 352 return "GREATER" | |
| 353 case 0x205: | |
| 354 return "NOTEQUAL" | |
| 355 case 0x206: | |
| 356 return "GEQUAL" | |
| 357 case 0x207: | |
| 358 return "ALWAYS" | |
| 359 case 0x1e00: | |
| 360 return "KEEP" | |
| 361 case 0x1e01: | |
| 362 return "REPLACE" | |
| 363 case 0x1e02: | |
| 364 return "INCR" | |
| 365 case 0x1e03: | |
| 366 return "DECR" | |
| 367 case 0x150a: | |
| 368 return "INVERT" | |
| 369 case 0x8507: | |
| 370 return "INCR_WRAP" | |
| 371 case 0x8508: | |
| 372 return "DECR_WRAP" | |
| 373 case 0x1f00: | |
| 374 return "VENDOR" | |
| 375 case 0x1f01: | |
| 376 return "RENDERER" | |
| 377 case 0x1f02: | |
| 378 return "VERSION" | |
| 379 case 0x1f03: | |
| 380 return "EXTENSIONS" | |
| 381 case 0x2600: | |
| 382 return "NEAREST" | |
| 383 case 0x2601: | |
| 384 return "LINEAR" | |
| 385 case 0x2700: | |
| 386 return "NEAREST_MIPMAP_NEAREST" | |
| 387 case 0x2701: | |
| 388 return "LINEAR_MIPMAP_NEAREST" | |
| 389 case 0x2702: | |
| 390 return "NEAREST_MIPMAP_LINEAR" | |
| 391 case 0x2703: | |
| 392 return "LINEAR_MIPMAP_LINEAR" | |
| 393 case 0x2800: | |
| 394 return "TEXTURE_MAG_FILTER" | |
| 395 case 0x2801: | |
| 396 return "TEXTURE_MIN_FILTER" | |
| 397 case 0x2802: | |
| 398 return "TEXTURE_WRAP_S" | |
| 399 case 0x2803: | |
| 400 return "TEXTURE_WRAP_T" | |
| 401 case 0x1702: | |
| 402 return "TEXTURE" | |
| 403 case 0x8513: | |
| 404 return "TEXTURE_CUBE_MAP" | |
| 405 case 0x8514: | |
| 406 return "TEXTURE_BINDING_CUBE_MAP" | |
| 407 case 0x8515: | |
| 408 return "TEXTURE_CUBE_MAP_POSITIVE_X" | |
| 409 case 0x8516: | |
| 410 return "TEXTURE_CUBE_MAP_NEGATIVE_X" | |
| 411 case 0x8517: | |
| 412 return "TEXTURE_CUBE_MAP_POSITIVE_Y" | |
| 413 case 0x8518: | |
| 414 return "TEXTURE_CUBE_MAP_NEGATIVE_Y" | |
| 415 case 0x8519: | |
| 416 return "TEXTURE_CUBE_MAP_POSITIVE_Z" | |
| 417 case 0x851a: | |
| 418 return "TEXTURE_CUBE_MAP_NEGATIVE_Z" | |
| 419 case 0x851c: | |
| 420 return "MAX_CUBE_MAP_TEXTURE_SIZE" | |
| 421 case 0x84c0: | |
| 422 return "TEXTURE0" | |
| 423 case 0x84c1: | |
| 424 return "TEXTURE1" | |
| 425 case 0x84c2: | |
| 426 return "TEXTURE2" | |
| 427 case 0x84c3: | |
| 428 return "TEXTURE3" | |
| 429 case 0x84c4: | |
| 430 return "TEXTURE4" | |
| 431 case 0x84c5: | |
| 432 return "TEXTURE5" | |
| 433 case 0x84c6: | |
| 434 return "TEXTURE6" | |
| 435 case 0x84c7: | |
| 436 return "TEXTURE7" | |
| 437 case 0x84c8: | |
| 438 return "TEXTURE8" | |
| 439 case 0x84c9: | |
| 440 return "TEXTURE9" | |
| 441 case 0x84ca: | |
| 442 return "TEXTURE10" | |
| 443 case 0x84cb: | |
| 444 return "TEXTURE11" | |
| 445 case 0x84cc: | |
| 446 return "TEXTURE12" | |
| 447 case 0x84cd: | |
| 448 return "TEXTURE13" | |
| 449 case 0x84ce: | |
| 450 return "TEXTURE14" | |
| 451 case 0x84cf: | |
| 452 return "TEXTURE15" | |
| 453 case 0x84d0: | |
| 454 return "TEXTURE16" | |
| 455 case 0x84d1: | |
| 456 return "TEXTURE17" | |
| 457 case 0x84d2: | |
| 458 return "TEXTURE18" | |
| 459 case 0x84d3: | |
| 460 return "TEXTURE19" | |
| 461 case 0x84d4: | |
| 462 return "TEXTURE20" | |
| 463 case 0x84d5: | |
| 464 return "TEXTURE21" | |
| 465 case 0x84d6: | |
| 466 return "TEXTURE22" | |
| 467 case 0x84d7: | |
| 468 return "TEXTURE23" | |
| 469 case 0x84d8: | |
| 470 return "TEXTURE24" | |
| 471 case 0x84d9: | |
| 472 return "TEXTURE25" | |
| 473 case 0x84da: | |
| 474 return "TEXTURE26" | |
| 475 case 0x84db: | |
| 476 return "TEXTURE27" | |
| 477 case 0x84dc: | |
| 478 return "TEXTURE28" | |
| 479 case 0x84dd: | |
| 480 return "TEXTURE29" | |
| 481 case 0x84de: | |
| 482 return "TEXTURE30" | |
| 483 case 0x84df: | |
| 484 return "TEXTURE31" | |
| 485 case 0x84e0: | |
| 486 return "ACTIVE_TEXTURE" | |
| 487 case 0x2901: | |
| 488 return "REPEAT" | |
| 489 case 0x812f: | |
| 490 return "CLAMP_TO_EDGE" | |
| 491 case 0x8370: | |
| 492 return "MIRRORED_REPEAT" | |
| 493 case 0x8622: | |
| 494 return "VERTEX_ATTRIB_ARRAY_ENABLED" | |
| 495 case 0x8623: | |
| 496 return "VERTEX_ATTRIB_ARRAY_SIZE" | |
| 497 case 0x8624: | |
| 498 return "VERTEX_ATTRIB_ARRAY_STRIDE" | |
| 499 case 0x8625: | |
| 500 return "VERTEX_ATTRIB_ARRAY_TYPE" | |
| 501 case 0x886a: | |
| 502 return "VERTEX_ATTRIB_ARRAY_NORMALIZED" | |
| 503 case 0x8645: | |
| 504 return "VERTEX_ATTRIB_ARRAY_POINTER" | |
| 505 case 0x889f: | |
| 506 return "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" | |
| 507 case 0x8b9a: | |
| 508 return "IMPLEMENTATION_COLOR_READ_TYPE" | |
| 509 case 0x8b9b: | |
| 510 return "IMPLEMENTATION_COLOR_READ_FORMAT" | |
| 511 case 0x8b81: | |
| 512 return "COMPILE_STATUS" | |
| 513 case 0x8b84: | |
| 514 return "INFO_LOG_LENGTH" | |
| 515 case 0x8b88: | |
| 516 return "SHADER_SOURCE_LENGTH" | |
| 517 case 0x8dfa: | |
| 518 return "SHADER_COMPILER" | |
| 519 case 0x8df8: | |
| 520 return "SHADER_BINARY_FORMATS" | |
| 521 case 0x8df9: | |
| 522 return "NUM_SHADER_BINARY_FORMATS" | |
| 523 case 0x8df0: | |
| 524 return "LOW_FLOAT" | |
| 525 case 0x8df1: | |
| 526 return "MEDIUM_FLOAT" | |
| 527 case 0x8df2: | |
| 528 return "HIGH_FLOAT" | |
| 529 case 0x8df3: | |
| 530 return "LOW_INT" | |
| 531 case 0x8df4: | |
| 532 return "MEDIUM_INT" | |
| 533 case 0x8df5: | |
| 534 return "HIGH_INT" | |
| 535 case 0x8d40: | |
| 536 return "FRAMEBUFFER" | |
| 537 case 0x8d41: | |
| 538 return "RENDERBUFFER" | |
| 539 case 0x8056: | |
| 540 return "RGBA4" | |
| 541 case 0x8057: | |
| 542 return "RGB5_A1" | |
| 543 case 0x8d62: | |
| 544 return "RGB565" | |
| 545 case 0x81a5: | |
| 546 return "DEPTH_COMPONENT16" | |
| 547 case 0x8d48: | |
| 548 return "STENCIL_INDEX8" | |
| 549 case 0x8d42: | |
| 550 return "RENDERBUFFER_WIDTH" | |
| 551 case 0x8d43: | |
| 552 return "RENDERBUFFER_HEIGHT" | |
| 553 case 0x8d44: | |
| 554 return "RENDERBUFFER_INTERNAL_FORMAT" | |
| 555 case 0x8d50: | |
| 556 return "RENDERBUFFER_RED_SIZE" | |
| 557 case 0x8d51: | |
| 558 return "RENDERBUFFER_GREEN_SIZE" | |
| 559 case 0x8d52: | |
| 560 return "RENDERBUFFER_BLUE_SIZE" | |
| 561 case 0x8d53: | |
| 562 return "RENDERBUFFER_ALPHA_SIZE" | |
| 563 case 0x8d54: | |
| 564 return "RENDERBUFFER_DEPTH_SIZE" | |
| 565 case 0x8d55: | |
| 566 return "RENDERBUFFER_STENCIL_SIZE" | |
| 567 case 0x8cd0: | |
| 568 return "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" | |
| 569 case 0x8cd1: | |
| 570 return "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" | |
| 571 case 0x8cd2: | |
| 572 return "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" | |
| 573 case 0x8cd3: | |
| 574 return "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" | |
| 575 case 0x8ce0: | |
| 576 return "COLOR_ATTACHMENT0" | |
| 577 case 0x8d00: | |
| 578 return "DEPTH_ATTACHMENT" | |
| 579 case 0x8d20: | |
| 580 return "STENCIL_ATTACHMENT" | |
| 581 case 0x8cd5: | |
| 582 return "FRAMEBUFFER_COMPLETE" | |
| 583 case 0x8cd6: | |
| 584 return "FRAMEBUFFER_INCOMPLETE_ATTACHMENT" | |
| 585 case 0x8cd7: | |
| 586 return "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" | |
| 587 case 0x8cd9: | |
| 588 return "FRAMEBUFFER_INCOMPLETE_DIMENSIONS" | |
| 589 case 0x8cdd: | |
| 590 return "FRAMEBUFFER_UNSUPPORTED" | |
| 591 case 0x8ca6: | |
| 592 return "FRAMEBUFFER_BINDING" | |
| 593 case 0x8ca7: | |
| 594 return "RENDERBUFFER_BINDING" | |
| 595 case 0x84e8: | |
| 596 return "MAX_RENDERBUFFER_SIZE" | |
| 597 case 0x506: | |
| 598 return "INVALID_FRAMEBUFFER_OPERATION" | |
| 599 case 0x100: | |
| 600 return "DEPTH_BUFFER_BIT" | |
| 601 case 0x400: | |
| 602 return "STENCIL_BUFFER_BIT" | |
| 603 case 0x4000: | |
| 604 return "COLOR_BUFFER_BIT" | |
| 605 case 0x8b50: | |
| 606 return "FLOAT_VEC2" | |
| 607 case 0x8b51: | |
| 608 return "FLOAT_VEC3" | |
| 609 case 0x8b52: | |
| 610 return "FLOAT_VEC4" | |
| 611 case 0x8b53: | |
| 612 return "INT_VEC2" | |
| 613 case 0x8b54: | |
| 614 return "INT_VEC3" | |
| 615 case 0x8b55: | |
| 616 return "INT_VEC4" | |
| 617 case 0x8b56: | |
| 618 return "BOOL" | |
| 619 case 0x8b57: | |
| 620 return "BOOL_VEC2" | |
| 621 case 0x8b58: | |
| 622 return "BOOL_VEC3" | |
| 623 case 0x8b59: | |
| 624 return "BOOL_VEC4" | |
| 625 case 0x8b5a: | |
| 626 return "FLOAT_MAT2" | |
| 627 case 0x8b5b: | |
| 628 return "FLOAT_MAT3" | |
| 629 case 0x8b5c: | |
| 630 return "FLOAT_MAT4" | |
| 631 case 0x8b5e: | |
| 632 return "SAMPLER_2D" | |
| 633 case 0x8b60: | |
| 634 return "SAMPLER_CUBE" | |
| 635 case 0x8b30: | |
| 636 return "FRAGMENT_SHADER" | |
| 637 case 0x8b31: | |
| 638 return "VERTEX_SHADER" | |
| 639 default: | |
| 640 return fmt.Sprintf("gl.Enum(0x%x)", uint32(v)) | |
| 641 } | |
| 642 } | |
| 643 | |
| 644 func ActiveTexture(texture Enum) { | |
| 645 defer func() { | |
| 646 errstr := errDrain() | |
| 647 log.Printf("gl.ActiveTexture(%v) %v", texture, errstr) | |
| 648 }() | |
| 649 C.glActiveTexture(texture.c()) | |
| 650 } | |
| 651 | |
| 652 func AttachShader(p Program, s Shader) { | |
| 653 defer func() { | |
| 654 errstr := errDrain() | |
| 655 log.Printf("gl.AttachShader(%v, %v) %v", p, s, errstr) | |
| 656 }() | |
| 657 C.glAttachShader(p.c(), s.c()) | |
| 658 } | |
| 659 | |
| 660 func BindAttribLocation(p Program, a Attrib, name string) { | |
| 661 defer func() { | |
| 662 errstr := errDrain() | |
| 663 log.Printf("gl.BindAttribLocation(%v, %v, %v) %v", p, a, name, e
rrstr) | |
| 664 }() | |
| 665 str := unsafe.Pointer(C.CString(name)) | |
| 666 defer C.free(str) | |
| 667 C.glBindAttribLocation(p.c(), a.c(), (*C.GLchar)(str)) | |
| 668 } | |
| 669 | |
| 670 func BindBuffer(target Enum, b Buffer) { | |
| 671 defer func() { | |
| 672 errstr := errDrain() | |
| 673 log.Printf("gl.BindBuffer(%v, %v) %v", target, b, errstr) | |
| 674 }() | |
| 675 C.glBindBuffer(target.c(), b.c()) | |
| 676 } | |
| 677 | |
| 678 func BindFramebuffer(target Enum, fb Framebuffer) { | |
| 679 defer func() { | |
| 680 errstr := errDrain() | |
| 681 log.Printf("gl.BindFramebuffer(%v, %v) %v", target, fb, errstr) | |
| 682 }() | |
| 683 C.glBindFramebuffer(target.c(), fb.c()) | |
| 684 } | |
| 685 | |
| 686 func BindRenderbuffer(target Enum, rb Renderbuffer) { | |
| 687 defer func() { | |
| 688 errstr := errDrain() | |
| 689 log.Printf("gl.BindRenderbuffer(%v, %v) %v", target, rb, errstr) | |
| 690 }() | |
| 691 C.glBindRenderbuffer(target.c(), rb.c()) | |
| 692 } | |
| 693 | |
| 694 func BindTexture(target Enum, t Texture) { | |
| 695 defer func() { | |
| 696 errstr := errDrain() | |
| 697 log.Printf("gl.BindTexture(%v, %v) %v", target, t, errstr) | |
| 698 }() | |
| 699 C.glBindTexture(target.c(), t.c()) | |
| 700 } | |
| 701 | |
| 702 func BlendColor(red, green, blue, alpha float32) { | |
| 703 defer func() { | |
| 704 errstr := errDrain() | |
| 705 log.Printf("gl.BlendColor(%v, %v, %v, %v) %v", red, green, blue,
alpha, errstr) | |
| 706 }() | |
| 707 blendColor(red, green, blue, alpha) | |
| 708 } | |
| 709 | |
| 710 func BlendEquation(mode Enum) { | |
| 711 defer func() { | |
| 712 errstr := errDrain() | |
| 713 log.Printf("gl.BlendEquation(%v) %v", mode, errstr) | |
| 714 }() | |
| 715 C.glBlendEquation(mode.c()) | |
| 716 } | |
| 717 | |
| 718 func BlendEquationSeparate(modeRGB, modeAlpha Enum) { | |
| 719 defer func() { | |
| 720 errstr := errDrain() | |
| 721 log.Printf("gl.BlendEquationSeparate(%v, %v) %v", modeRGB, modeA
lpha, errstr) | |
| 722 }() | |
| 723 C.glBlendEquationSeparate(modeRGB.c(), modeAlpha.c()) | |
| 724 } | |
| 725 | |
| 726 func BlendFunc(sfactor, dfactor Enum) { | |
| 727 defer func() { | |
| 728 errstr := errDrain() | |
| 729 log.Printf("gl.BlendFunc(%v, %v) %v", sfactor, dfactor, errstr) | |
| 730 }() | |
| 731 C.glBlendFunc(sfactor.c(), dfactor.c()) | |
| 732 } | |
| 733 | |
| 734 func BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha Enum)
{ | |
| 735 defer func() { | |
| 736 errstr := errDrain() | |
| 737 log.Printf("gl.BlendFuncSeparate(%v, %v, %v, %v) %v", sfactorRGB
, dfactorRGB, sfactorAlpha, dfactorAlpha, errstr) | |
| 738 }() | |
| 739 C.glBlendFuncSeparate(sfactorRGB.c(), dfactorRGB.c(), sfactorAlpha.c(),
dfactorAlpha.c()) | |
| 740 } | |
| 741 | |
| 742 func BufferData(target Enum, usage Enum, src []byte) { | |
| 743 defer func() { | |
| 744 errstr := errDrain() | |
| 745 log.Printf("gl.BufferData(%v, %v, len(%d)) %v", target, usage, l
en(src), errstr) | |
| 746 }() | |
| 747 C.glBufferData(target.c(), C.GLsizeiptr(len(src)), unsafe.Pointer(&src[0
]), usage.c()) | |
| 748 } | |
| 749 | |
| 750 func BufferInit(target Enum, size int, usage Enum) { | |
| 751 defer func() { | |
| 752 errstr := errDrain() | |
| 753 log.Printf("gl.BufferInit(%v, %v, %v) %v", target, size, usage,
errstr) | |
| 754 }() | |
| 755 C.glBufferData(target.c(), C.GLsizeiptr(size), nil, usage.c()) | |
| 756 } | |
| 757 | |
| 758 func BufferSubData(target Enum, offset int, data []byte) { | |
| 759 defer func() { | |
| 760 errstr := errDrain() | |
| 761 log.Printf("gl.BufferSubData(%v, %v, len(%d)) %v", target, offse
t, len(data), errstr) | |
| 762 }() | |
| 763 C.glBufferSubData(target.c(), C.GLintptr(offset), C.GLsizeiptr(len(data)
), unsafe.Pointer(&data[0])) | |
| 764 } | |
| 765 | |
| 766 func CheckFramebufferStatus(target Enum) (r0 Enum) { | |
| 767 defer func() { | |
| 768 errstr := errDrain() | |
| 769 log.Printf("gl.CheckFramebufferStatus(%v) %v%v", target, r0, err
str) | |
| 770 }() | |
| 771 return Enum(C.glCheckFramebufferStatus(target.c())) | |
| 772 } | |
| 773 | |
| 774 func Clear(mask Enum) { | |
| 775 defer func() { | |
| 776 errstr := errDrain() | |
| 777 log.Printf("gl.Clear(%v) %v", mask, errstr) | |
| 778 }() | |
| 779 C.glClear(C.GLbitfield(mask)) | |
| 780 } | |
| 781 | |
| 782 func ClearColor(red, green, blue, alpha float32) { | |
| 783 defer func() { | |
| 784 errstr := errDrain() | |
| 785 log.Printf("gl.ClearColor(%v, %v, %v, %v) %v", red, green, blue,
alpha, errstr) | |
| 786 }() | |
| 787 clearColor(red, green, blue, alpha) | |
| 788 } | |
| 789 | |
| 790 func ClearDepthf(d float32) { | |
| 791 defer func() { | |
| 792 errstr := errDrain() | |
| 793 log.Printf("gl.ClearDepthf(%v) %v", d, errstr) | |
| 794 }() | |
| 795 clearDepthf(d) | |
| 796 } | |
| 797 | |
| 798 func ClearStencil(s int) { | |
| 799 defer func() { | |
| 800 errstr := errDrain() | |
| 801 log.Printf("gl.ClearStencil(%v) %v", s, errstr) | |
| 802 }() | |
| 803 C.glClearStencil(C.GLint(s)) | |
| 804 } | |
| 805 | |
| 806 func ColorMask(red, green, blue, alpha bool) { | |
| 807 defer func() { | |
| 808 errstr := errDrain() | |
| 809 log.Printf("gl.ColorMask(%v, %v, %v, %v) %v", red, green, blue,
alpha, errstr) | |
| 810 }() | |
| 811 C.glColorMask(glBoolean(red), glBoolean(green), glBoolean(blue), glBoole
an(alpha)) | |
| 812 } | |
| 813 | |
| 814 func CompileShader(s Shader) { | |
| 815 defer func() { | |
| 816 errstr := errDrain() | |
| 817 log.Printf("gl.CompileShader(%v) %v", s, errstr) | |
| 818 }() | |
| 819 C.glCompileShader(s.c()) | |
| 820 } | |
| 821 | |
| 822 func CompressedTexImage2D(target Enum, level int, internalformat Enum, width, he
ight, border int, data []byte) { | |
| 823 defer func() { | |
| 824 errstr := errDrain() | |
| 825 log.Printf("gl.CompressedTexImage2D(%v, %v, %v, %v, %v, %v, len(
%d)) %v", target, level, internalformat, width, height, border, len(data), errst
r) | |
| 826 }() | |
| 827 C.glCompressedTexImage2D(target.c(), C.GLint(level), internalformat.c(),
C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(len(data)), uns
afe.Pointer(&data[0])) | |
| 828 } | |
| 829 | |
| 830 func CompressedTexSubImage2D(target Enum, level, xoffset, yoffset, width, height
int, format Enum, data []byte) { | |
| 831 defer func() { | |
| 832 errstr := errDrain() | |
| 833 log.Printf("gl.CompressedTexSubImage2D(%v, %v, %v, %v, %v, %v, %
v, len(%d)) %v", target, level, xoffset, yoffset, width, height, format, len(dat
a), errstr) | |
| 834 }() | |
| 835 C.glCompressedTexSubImage2D(target.c(), C.GLint(level), C.GLint(xoffset)
, C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), format.c(), C.GLsizei(l
en(data)), unsafe.Pointer(&data[0])) | |
| 836 } | |
| 837 | |
| 838 func CopyTexImage2D(target Enum, level int, internalformat Enum, x, y, width, he
ight, border int) { | |
| 839 defer func() { | |
| 840 errstr := errDrain() | |
| 841 log.Printf("gl.CopyTexImage2D(%v, %v, %v, %v, %v, %v, %v, %v) %v
", target, level, internalformat, x, y, width, height, border, errstr) | |
| 842 }() | |
| 843 C.glCopyTexImage2D(target.c(), C.GLint(level), internalformat.c(), C.GLi
nt(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border)) | |
| 844 } | |
| 845 | |
| 846 func CopyTexSubImage2D(target Enum, level, xoffset, yoffset, x, y, width, height
int) { | |
| 847 defer func() { | |
| 848 errstr := errDrain() | |
| 849 log.Printf("gl.CopyTexSubImage2D(%v, %v, %v, %v, %v, %v, %v, %v)
%v", target, level, xoffset, yoffset, x, y, width, height, errstr) | |
| 850 }() | |
| 851 C.glCopyTexSubImage2D(target.c(), C.GLint(level), C.GLint(xoffset), C.GL
int(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height)) | |
| 852 } | |
| 853 | |
| 854 func CreateProgram() (r0 Program) { | |
| 855 defer func() { | |
| 856 errstr := errDrain() | |
| 857 log.Printf("gl.CreateProgram() %v%v", r0, errstr) | |
| 858 }() | |
| 859 return Program{Value: uint32(C.glCreateProgram())} | |
| 860 } | |
| 861 | |
| 862 func CreateShader(ty Enum) (r0 Shader) { | |
| 863 defer func() { | |
| 864 errstr := errDrain() | |
| 865 log.Printf("gl.CreateShader(%v) %v%v", ty, r0, errstr) | |
| 866 }() | |
| 867 return Shader{Value: uint32(C.glCreateShader(ty.c()))} | |
| 868 } | |
| 869 | |
| 870 func CullFace(mode Enum) { | |
| 871 defer func() { | |
| 872 errstr := errDrain() | |
| 873 log.Printf("gl.CullFace(%v) %v", mode, errstr) | |
| 874 }() | |
| 875 C.glCullFace(mode.c()) | |
| 876 } | |
| 877 | |
| 878 func DeleteBuffer(v Buffer) { | |
| 879 defer func() { | |
| 880 errstr := errDrain() | |
| 881 log.Printf("gl.DeleteBuffer(%v) %v", v, errstr) | |
| 882 }() | |
| 883 C.glDeleteBuffers(1, (*C.GLuint)(&v.Value)) | |
| 884 } | |
| 885 | |
| 886 func DeleteFramebuffer(v Framebuffer) { | |
| 887 defer func() { | |
| 888 errstr := errDrain() | |
| 889 log.Printf("gl.DeleteFramebuffer(%v) %v", v, errstr) | |
| 890 }() | |
| 891 C.glDeleteFramebuffers(1, (*C.GLuint)(&v.Value)) | |
| 892 } | |
| 893 | |
| 894 func DeleteProgram(p Program) { | |
| 895 defer func() { | |
| 896 errstr := errDrain() | |
| 897 log.Printf("gl.DeleteProgram(%v) %v", p, errstr) | |
| 898 }() | |
| 899 C.glDeleteProgram(p.c()) | |
| 900 } | |
| 901 | |
| 902 func DeleteRenderbuffer(v Renderbuffer) { | |
| 903 defer func() { | |
| 904 errstr := errDrain() | |
| 905 log.Printf("gl.DeleteRenderbuffer(%v) %v", v, errstr) | |
| 906 }() | |
| 907 C.glDeleteRenderbuffers(1, (*C.GLuint)(&v.Value)) | |
| 908 } | |
| 909 | |
| 910 func DeleteShader(s Shader) { | |
| 911 defer func() { | |
| 912 errstr := errDrain() | |
| 913 log.Printf("gl.DeleteShader(%v) %v", s, errstr) | |
| 914 }() | |
| 915 C.glDeleteShader(s.c()) | |
| 916 } | |
| 917 | |
| 918 func DeleteTexture(v Texture) { | |
| 919 defer func() { | |
| 920 errstr := errDrain() | |
| 921 log.Printf("gl.DeleteTexture(%v) %v", v, errstr) | |
| 922 }() | |
| 923 C.glDeleteTextures(1, (*C.GLuint)(&v.Value)) | |
| 924 } | |
| 925 | |
| 926 func DepthFunc(fn Enum) { | |
| 927 defer func() { | |
| 928 errstr := errDrain() | |
| 929 log.Printf("gl.DepthFunc(%v) %v", fn, errstr) | |
| 930 }() | |
| 931 C.glDepthFunc(fn.c()) | |
| 932 } | |
| 933 | |
| 934 func DepthMask(flag bool) { | |
| 935 defer func() { | |
| 936 errstr := errDrain() | |
| 937 log.Printf("gl.DepthMask(%v) %v", flag, errstr) | |
| 938 }() | |
| 939 C.glDepthMask(glBoolean(flag)) | |
| 940 } | |
| 941 | |
| 942 func DepthRangef(n, f float32) { | |
| 943 defer func() { | |
| 944 errstr := errDrain() | |
| 945 log.Printf("gl.DepthRangef(%v, %v) %v", n, f, errstr) | |
| 946 }() | |
| 947 depthRangef(n, f) | |
| 948 } | |
| 949 | |
| 950 func DetachShader(p Program, s Shader) { | |
| 951 defer func() { | |
| 952 errstr := errDrain() | |
| 953 log.Printf("gl.DetachShader(%v, %v) %v", p, s, errstr) | |
| 954 }() | |
| 955 C.glDetachShader(p.c(), s.c()) | |
| 956 } | |
| 957 | |
| 958 func Disable(cap Enum) { | |
| 959 defer func() { | |
| 960 errstr := errDrain() | |
| 961 log.Printf("gl.Disable(%v) %v", cap, errstr) | |
| 962 }() | |
| 963 C.glDisable(cap.c()) | |
| 964 } | |
| 965 | |
| 966 func DisableVertexAttribArray(index Attrib) { | |
| 967 defer func() { | |
| 968 errstr := errDrain() | |
| 969 log.Printf("gl.DisableVertexAttribArray(%v) %v", index, errstr) | |
| 970 }() | |
| 971 C.glDisableVertexAttribArray(index.c()) | |
| 972 } | |
| 973 | |
| 974 func DrawArrays(mode Enum, first, count int) { | |
| 975 defer func() { | |
| 976 errstr := errDrain() | |
| 977 log.Printf("gl.DrawArrays(%v, %v, %v) %v", mode, first, count, e
rrstr) | |
| 978 }() | |
| 979 C.glDrawArrays(mode.c(), C.GLint(first), C.GLsizei(count)) | |
| 980 } | |
| 981 | |
| 982 func DrawElements(mode, ty Enum, offset, count int) { | |
| 983 defer func() { | |
| 984 errstr := errDrain() | |
| 985 log.Printf("gl.DrawElements(%v, %v, %v, %v) %v", mode, ty, offse
t, count, errstr) | |
| 986 }() | |
| 987 C.glDrawElements(mode.c(), C.GLsizei(count), ty.c(), unsafe.Pointer(uint
ptr(offset))) | |
| 988 } | |
| 989 | |
| 990 func Enable(cap Enum) { | |
| 991 defer func() { | |
| 992 errstr := errDrain() | |
| 993 log.Printf("gl.Enable(%v) %v", cap, errstr) | |
| 994 }() | |
| 995 C.glEnable(cap.c()) | |
| 996 } | |
| 997 | |
| 998 func EnableVertexAttribArray(index Attrib) { | |
| 999 defer func() { | |
| 1000 errstr := errDrain() | |
| 1001 log.Printf("gl.EnableVertexAttribArray(%v) %v", index, errstr) | |
| 1002 }() | |
| 1003 C.glEnableVertexAttribArray(index.c()) | |
| 1004 } | |
| 1005 | |
| 1006 func Finish() { | |
| 1007 defer func() { | |
| 1008 errstr := errDrain() | |
| 1009 log.Printf("gl.Finish() %v", errstr) | |
| 1010 }() | |
| 1011 C.glFinish() | |
| 1012 } | |
| 1013 | |
| 1014 func Flush() { | |
| 1015 defer func() { | |
| 1016 errstr := errDrain() | |
| 1017 log.Printf("gl.Flush() %v", errstr) | |
| 1018 }() | |
| 1019 C.glFlush() | |
| 1020 } | |
| 1021 | |
| 1022 func FramebufferRenderbuffer(target, attachment, rbTarget Enum, rb Renderbuffer)
{ | |
| 1023 defer func() { | |
| 1024 errstr := errDrain() | |
| 1025 log.Printf("gl.FramebufferRenderbuffer(%v, %v, %v, %v) %v", targ
et, attachment, rbTarget, rb, errstr) | |
| 1026 }() | |
| 1027 C.glFramebufferRenderbuffer(target.c(), attachment.c(), rbTarget.c(), rb
.c()) | |
| 1028 } | |
| 1029 | |
| 1030 func FramebufferTexture2D(target, attachment, texTarget Enum, t Texture, level i
nt) { | |
| 1031 defer func() { | |
| 1032 errstr := errDrain() | |
| 1033 log.Printf("gl.FramebufferTexture2D(%v, %v, %v, %v, %v) %v", tar
get, attachment, texTarget, t, level, errstr) | |
| 1034 }() | |
| 1035 C.glFramebufferTexture2D(target.c(), attachment.c(), texTarget.c(), t.c(
), C.GLint(level)) | |
| 1036 } | |
| 1037 | |
| 1038 func FrontFace(mode Enum) { | |
| 1039 defer func() { | |
| 1040 errstr := errDrain() | |
| 1041 log.Printf("gl.FrontFace(%v) %v", mode, errstr) | |
| 1042 }() | |
| 1043 C.glFrontFace(mode.c()) | |
| 1044 } | |
| 1045 | |
| 1046 func GenBuffer() (r0 Buffer) { | |
| 1047 defer func() { | |
| 1048 errstr := errDrain() | |
| 1049 log.Printf("gl.GenBuffer() %v%v", r0, errstr) | |
| 1050 }() | |
| 1051 var b Buffer | |
| 1052 C.glGenBuffers(1, (*C.GLuint)(&b.Value)) | |
| 1053 return b | |
| 1054 } | |
| 1055 | |
| 1056 func GenerateMipmap(target Enum) { | |
| 1057 defer func() { | |
| 1058 errstr := errDrain() | |
| 1059 log.Printf("gl.GenerateMipmap(%v) %v", target, errstr) | |
| 1060 }() | |
| 1061 C.glGenerateMipmap(target.c()) | |
| 1062 } | |
| 1063 | |
| 1064 func GenFramebuffer() (r0 Framebuffer) { | |
| 1065 defer func() { | |
| 1066 errstr := errDrain() | |
| 1067 log.Printf("gl.GenFramebuffer() %v%v", r0, errstr) | |
| 1068 }() | |
| 1069 var b Framebuffer | |
| 1070 C.glGenFramebuffers(1, (*C.GLuint)(&b.Value)) | |
| 1071 return b | |
| 1072 } | |
| 1073 | |
| 1074 func GenRenderbuffer() (r0 Renderbuffer) { | |
| 1075 defer func() { | |
| 1076 errstr := errDrain() | |
| 1077 log.Printf("gl.GenRenderbuffer() %v%v", r0, errstr) | |
| 1078 }() | |
| 1079 var b Renderbuffer | |
| 1080 C.glGenRenderbuffers(1, (*C.GLuint)(&b.Value)) | |
| 1081 return b | |
| 1082 } | |
| 1083 | |
| 1084 func GenTexture() (r0 Texture) { | |
| 1085 defer func() { | |
| 1086 errstr := errDrain() | |
| 1087 log.Printf("gl.GenTexture() %v%v", r0, errstr) | |
| 1088 }() | |
| 1089 var t Texture | |
| 1090 C.glGenTextures(1, (*C.GLuint)(&t.Value)) | |
| 1091 return t | |
| 1092 } | |
| 1093 | |
| 1094 func GetActiveAttrib(p Program, a Attrib) (name string, size int, ty Enum) { | |
| 1095 defer func() { | |
| 1096 errstr := errDrain() | |
| 1097 log.Printf("gl.GetActiveAttrib(%v, %v) (%v, %v, %v) %v", p, a, n
ame, size, ty, errstr) | |
| 1098 }() | |
| 1099 bufSize := GetProgrami(p, ACTIVE_ATTRIBUTE_MAX_LENGTH) | |
| 1100 buf := C.malloc(C.size_t(bufSize)) | |
| 1101 defer C.free(buf) | |
| 1102 var cSize C.GLint | |
| 1103 var cType C.GLenum | |
| 1104 C.glGetActiveAttrib(p.c(), a.c(), C.GLsizei(bufSize), nil, &cSize, &cTyp
e, (*C.GLchar)(buf)) | |
| 1105 return C.GoString((*C.char)(buf)), int(cSize), Enum(cType) | |
| 1106 } | |
| 1107 | |
| 1108 func GetActiveUniform(p Program, u Uniform) (name string, size int, ty Enum) { | |
| 1109 defer func() { | |
| 1110 errstr := errDrain() | |
| 1111 log.Printf("gl.GetActiveUniform(%v, %v) (%v, %v, %v) %v", p, u,
name, size, ty, errstr) | |
| 1112 }() | |
| 1113 bufSize := GetProgrami(p, ACTIVE_UNIFORM_MAX_LENGTH) | |
| 1114 buf := C.malloc(C.size_t(bufSize)) | |
| 1115 defer C.free(buf) | |
| 1116 var cSize C.GLint | |
| 1117 var cType C.GLenum | |
| 1118 C.glGetActiveUniform(p.c(), C.GLuint(u.Value), C.GLsizei(bufSize), nil,
&cSize, &cType, (*C.GLchar)(buf)) | |
| 1119 return C.GoString((*C.char)(buf)), int(cSize), Enum(cType) | |
| 1120 } | |
| 1121 | |
| 1122 func GetAttachedShaders(p Program) (r0 []Shader) { | |
| 1123 defer func() { | |
| 1124 errstr := errDrain() | |
| 1125 log.Printf("gl.GetAttachedShaders(%v) %v%v", p, r0, errstr) | |
| 1126 }() | |
| 1127 shadersLen := GetProgrami(p, ATTACHED_SHADERS) | |
| 1128 var n C.GLsizei | |
| 1129 buf := make([]C.GLuint, shadersLen) | |
| 1130 C.glGetAttachedShaders(p.c(), C.GLsizei(shadersLen), &n, &buf[0]) | |
| 1131 buf = buf[:int(n)] | |
| 1132 shaders := make([]Shader, len(buf)) | |
| 1133 for i, s := range buf { | |
| 1134 shaders[i] = Shader{Value: uint32(s)} | |
| 1135 } | |
| 1136 return shaders | |
| 1137 } | |
| 1138 | |
| 1139 func GetAttribLocation(p Program, name string) (r0 Attrib) { | |
| 1140 defer func() { | |
| 1141 errstr := errDrain() | |
| 1142 r0.name = name | |
| 1143 log.Printf("gl.GetAttribLocation(%v, %v) %v%v", p, name, r0, err
str) | |
| 1144 }() | |
| 1145 str := unsafe.Pointer(C.CString(name)) | |
| 1146 defer C.free(str) | |
| 1147 return Attrib{Value: uint(C.glGetAttribLocation(p.c(), (*C.GLchar)(str))
)} | |
| 1148 } | |
| 1149 | |
| 1150 func GetBooleanv(dst []bool, pname Enum) { | |
| 1151 defer func() { | |
| 1152 errstr := errDrain() | |
| 1153 log.Printf("gl.GetBooleanv(%v, %v) %v", dst, pname, errstr) | |
| 1154 }() | |
| 1155 buf := make([]C.GLboolean, len(dst)) | |
| 1156 C.glGetBooleanv(pname.c(), &buf[0]) | |
| 1157 for i, v := range buf { | |
| 1158 dst[i] = v != 0 | |
| 1159 } | |
| 1160 } | |
| 1161 | |
| 1162 func GetFloatv(dst []float32, pname Enum) { | |
| 1163 defer func() { | |
| 1164 errstr := errDrain() | |
| 1165 log.Printf("gl.GetFloatv(len(%d), %v) %v", len(dst), pname, errs
tr) | |
| 1166 }() | |
| 1167 C.glGetFloatv(pname.c(), (*C.GLfloat)(&dst[0])) | |
| 1168 } | |
| 1169 | |
| 1170 func GetIntegerv(pname Enum, data []int32) { | |
| 1171 defer func() { | |
| 1172 errstr := errDrain() | |
| 1173 log.Printf("gl.GetIntegerv(%v, %v) %v", pname, data, errstr) | |
| 1174 }() | |
| 1175 buf := make([]C.GLint, len(data)) | |
| 1176 C.glGetIntegerv(pname.c(), &buf[0]) | |
| 1177 for i, v := range buf { | |
| 1178 data[i] = int32(v) | |
| 1179 } | |
| 1180 } | |
| 1181 | |
| 1182 func GetInteger(pname Enum) (r0 int) { | |
| 1183 defer func() { | |
| 1184 errstr := errDrain() | |
| 1185 log.Printf("gl.GetInteger(%v) %v%v", pname, r0, errstr) | |
| 1186 }() | |
| 1187 var v C.GLint | |
| 1188 C.glGetIntegerv(pname.c(), &v) | |
| 1189 return int(v) | |
| 1190 } | |
| 1191 | |
| 1192 func GetBufferParameteri(target, pname Enum) (r0 int) { | |
| 1193 defer func() { | |
| 1194 errstr := errDrain() | |
| 1195 log.Printf("gl.GetBufferParameteri(%v, %v) %v%v", target, pname,
r0, errstr) | |
| 1196 }() | |
| 1197 var params C.GLint | |
| 1198 C.glGetBufferParameteriv(target.c(), pname.c(), ¶ms) | |
| 1199 return int(params) | |
| 1200 } | |
| 1201 | |
| 1202 func GetError() (r0 Enum) { | |
| 1203 defer func() { | |
| 1204 errstr := errDrain() | |
| 1205 log.Printf("gl.GetError() %v%v", r0, errstr) | |
| 1206 }() | |
| 1207 return Enum(C.glGetError()) | |
| 1208 } | |
| 1209 | |
| 1210 func GetFramebufferAttachmentParameteri(target, attachment, pname Enum) (r0 int)
{ | |
| 1211 defer func() { | |
| 1212 errstr := errDrain() | |
| 1213 log.Printf("gl.GetFramebufferAttachmentParameteri(%v, %v, %v) %v
%v", target, attachment, pname, r0, errstr) | |
| 1214 }() | |
| 1215 var params C.GLint | |
| 1216 C.glGetFramebufferAttachmentParameteriv(target.c(), attachment.c(), pnam
e.c(), ¶ms) | |
| 1217 return int(params) | |
| 1218 } | |
| 1219 | |
| 1220 func GetProgrami(p Program, pname Enum) (r0 int) { | |
| 1221 defer func() { | |
| 1222 errstr := errDrain() | |
| 1223 log.Printf("gl.GetProgrami(%v, %v) %v%v", p, pname, r0, errstr) | |
| 1224 }() | |
| 1225 var params C.GLint | |
| 1226 C.glGetProgramiv(p.c(), pname.c(), ¶ms) | |
| 1227 return int(params) | |
| 1228 } | |
| 1229 | |
| 1230 func GetProgramInfoLog(p Program) (r0 string) { | |
| 1231 defer func() { | |
| 1232 errstr := errDrain() | |
| 1233 log.Printf("gl.GetProgramInfoLog(%v) %v%v", p, r0, errstr) | |
| 1234 }() | |
| 1235 infoLen := GetProgrami(p, INFO_LOG_LENGTH) | |
| 1236 buf := C.malloc(C.size_t(infoLen)) | |
| 1237 C.free(buf) | |
| 1238 C.glGetProgramInfoLog(p.c(), C.GLsizei(infoLen), nil, (*C.GLchar)(buf)) | |
| 1239 return C.GoString((*C.char)(buf)) | |
| 1240 } | |
| 1241 | |
| 1242 func GetRenderbufferParameteri(target, pname Enum) (r0 int) { | |
| 1243 defer func() { | |
| 1244 errstr := errDrain() | |
| 1245 log.Printf("gl.GetRenderbufferParameteri(%v, %v) %v%v", target,
pname, r0, errstr) | |
| 1246 }() | |
| 1247 var params C.GLint | |
| 1248 C.glGetRenderbufferParameteriv(target.c(), pname.c(), ¶ms) | |
| 1249 return int(params) | |
| 1250 } | |
| 1251 | |
| 1252 func GetShaderi(s Shader, pname Enum) (r0 int) { | |
| 1253 defer func() { | |
| 1254 errstr := errDrain() | |
| 1255 log.Printf("gl.GetShaderi(%v, %v) %v%v", s, pname, r0, errstr) | |
| 1256 }() | |
| 1257 var params C.GLint | |
| 1258 C.glGetShaderiv(s.c(), pname.c(), ¶ms) | |
| 1259 return int(params) | |
| 1260 } | |
| 1261 | |
| 1262 func GetShaderInfoLog(s Shader) (r0 string) { | |
| 1263 defer func() { | |
| 1264 errstr := errDrain() | |
| 1265 log.Printf("gl.GetShaderInfoLog(%v) %v%v", s, r0, errstr) | |
| 1266 }() | |
| 1267 infoLen := GetShaderi(s, INFO_LOG_LENGTH) | |
| 1268 buf := C.malloc(C.size_t(infoLen)) | |
| 1269 defer C.free(buf) | |
| 1270 C.glGetShaderInfoLog(s.c(), C.GLsizei(infoLen), nil, (*C.GLchar)(buf)) | |
| 1271 return C.GoString((*C.char)(buf)) | |
| 1272 } | |
| 1273 | |
| 1274 func GetShaderPrecisionFormat(shadertype, precisiontype Enum) (rangeLow, rangeHi
gh, precision int) { | |
| 1275 defer func() { | |
| 1276 errstr := errDrain() | |
| 1277 log.Printf("gl.GetShaderPrecisionFormat(%v, %v) (%v, %v, %v) %v"
, shadertype, precisiontype, rangeLow, rangeHigh, precision, errstr) | |
| 1278 }() | |
| 1279 const glintSize = 4 | |
| 1280 var cRange [2]C.GLint | |
| 1281 var cPrecision C.GLint | |
| 1282 C.glGetShaderPrecisionFormat(shadertype.c(), precisiontype.c(), &cRange[
0], &cPrecision) | |
| 1283 return int(cRange[0]), int(cRange[1]), int(cPrecision) | |
| 1284 } | |
| 1285 | |
| 1286 func GetShaderSource(s Shader) (r0 string) { | |
| 1287 defer func() { | |
| 1288 errstr := errDrain() | |
| 1289 log.Printf("gl.GetShaderSource(%v) %v%v", s, r0, errstr) | |
| 1290 }() | |
| 1291 sourceLen := GetShaderi(s, SHADER_SOURCE_LENGTH) | |
| 1292 if sourceLen == 0 { | |
| 1293 return "" | |
| 1294 } | |
| 1295 buf := C.malloc(C.size_t(sourceLen)) | |
| 1296 defer C.free(buf) | |
| 1297 C.glGetShaderSource(s.c(), C.GLsizei(sourceLen), nil, (*C.GLchar)(buf)) | |
| 1298 return C.GoString((*C.char)(buf)) | |
| 1299 } | |
| 1300 | |
| 1301 func GetString(name Enum) (r0 string) { | |
| 1302 defer func() { | |
| 1303 errstr := errDrain() | |
| 1304 log.Printf("gl.GetString(%v) %v%v", name, r0, errstr) | |
| 1305 }() | |
| 1306 return C.GoString((*C.char)((unsafe.Pointer)(C.glGetString(name.c())))) | |
| 1307 } | |
| 1308 | |
| 1309 func GetTexParameterfv(dst []float32, target, pname Enum) { | |
| 1310 defer func() { | |
| 1311 errstr := errDrain() | |
| 1312 log.Printf("gl.GetTexParameterfv(len(%d), %v, %v) %v", len(dst),
target, pname, errstr) | |
| 1313 }() | |
| 1314 C.glGetTexParameterfv(target.c(), pname.c(), (*C.GLfloat)(&dst[0])) | |
| 1315 } | |
| 1316 | |
| 1317 func GetTexParameteriv(dst []int32, target, pname Enum) { | |
| 1318 defer func() { | |
| 1319 errstr := errDrain() | |
| 1320 log.Printf("gl.GetTexParameteriv(%v, %v, %v) %v", dst, target, p
name, errstr) | |
| 1321 }() | |
| 1322 C.glGetTexParameteriv(target.c(), pname.c(), (*C.GLint)(&dst[0])) | |
| 1323 } | |
| 1324 | |
| 1325 func GetUniformfv(dst []float32, src Uniform, p Program) { | |
| 1326 defer func() { | |
| 1327 errstr := errDrain() | |
| 1328 log.Printf("gl.GetUniformfv(len(%d), %v, %v) %v", len(dst), src,
p, errstr) | |
| 1329 }() | |
| 1330 C.glGetUniformfv(p.c(), src.c(), (*C.GLfloat)(&dst[0])) | |
| 1331 } | |
| 1332 | |
| 1333 func GetUniformiv(dst []int32, src Uniform, p Program) { | |
| 1334 defer func() { | |
| 1335 errstr := errDrain() | |
| 1336 log.Printf("gl.GetUniformiv(%v, %v, %v) %v", dst, src, p, errstr
) | |
| 1337 }() | |
| 1338 C.glGetUniformiv(p.c(), src.c(), (*C.GLint)(&dst[0])) | |
| 1339 } | |
| 1340 | |
| 1341 func GetUniformLocation(p Program, name string) (r0 Uniform) { | |
| 1342 defer func() { | |
| 1343 errstr := errDrain() | |
| 1344 r0.name = name | |
| 1345 log.Printf("gl.GetUniformLocation(%v, %v) %v%v", p, name, r0, er
rstr) | |
| 1346 }() | |
| 1347 str := C.CString(name) | |
| 1348 defer C.free((unsafe.Pointer)(str)) | |
| 1349 return Uniform{Value: int32(C.glGetUniformLocation(p.c(), (*C.GLchar)(st
r)))} | |
| 1350 } | |
| 1351 | |
| 1352 func GetVertexAttribf(src Attrib, pname Enum) (r0 float32) { | |
| 1353 defer func() { | |
| 1354 errstr := errDrain() | |
| 1355 log.Printf("gl.GetVertexAttribf(%v, %v) %v%v", src, pname, r0, e
rrstr) | |
| 1356 }() | |
| 1357 var params C.GLfloat | |
| 1358 C.glGetVertexAttribfv(src.c(), pname.c(), ¶ms) | |
| 1359 return float32(params) | |
| 1360 } | |
| 1361 | |
| 1362 func GetVertexAttribfv(dst []float32, src Attrib, pname Enum) { | |
| 1363 defer func() { | |
| 1364 errstr := errDrain() | |
| 1365 log.Printf("gl.GetVertexAttribfv(len(%d), %v, %v) %v", len(dst),
src, pname, errstr) | |
| 1366 }() | |
| 1367 C.glGetVertexAttribfv(src.c(), pname.c(), (*C.GLfloat)(&dst[0])) | |
| 1368 } | |
| 1369 | |
| 1370 func GetVertexAttribi(src Attrib, pname Enum) (r0 int32) { | |
| 1371 defer func() { | |
| 1372 errstr := errDrain() | |
| 1373 log.Printf("gl.GetVertexAttribi(%v, %v) %v%v", src, pname, r0, e
rrstr) | |
| 1374 }() | |
| 1375 var params C.GLint | |
| 1376 C.glGetVertexAttribiv(src.c(), pname.c(), ¶ms) | |
| 1377 return int32(params) | |
| 1378 } | |
| 1379 | |
| 1380 func GetVertexAttribiv(dst []int32, src Attrib, pname Enum) { | |
| 1381 defer func() { | |
| 1382 errstr := errDrain() | |
| 1383 log.Printf("gl.GetVertexAttribiv(%v, %v, %v) %v", dst, src, pnam
e, errstr) | |
| 1384 }() | |
| 1385 C.glGetVertexAttribiv(src.c(), pname.c(), (*C.GLint)(&dst[0])) | |
| 1386 } | |
| 1387 | |
| 1388 func Hint(target, mode Enum) { | |
| 1389 defer func() { | |
| 1390 errstr := errDrain() | |
| 1391 log.Printf("gl.Hint(%v, %v) %v", target, mode, errstr) | |
| 1392 }() | |
| 1393 C.glHint(target.c(), mode.c()) | |
| 1394 } | |
| 1395 | |
| 1396 func IsBuffer(b Buffer) (r0 bool) { | |
| 1397 defer func() { | |
| 1398 errstr := errDrain() | |
| 1399 log.Printf("gl.IsBuffer(%v) %v%v", b, r0, errstr) | |
| 1400 }() | |
| 1401 return C.glIsBuffer(b.c()) != 0 | |
| 1402 } | |
| 1403 | |
| 1404 func IsEnabled(cap Enum) (r0 bool) { | |
| 1405 defer func() { | |
| 1406 errstr := errDrain() | |
| 1407 log.Printf("gl.IsEnabled(%v) %v%v", cap, r0, errstr) | |
| 1408 }() | |
| 1409 return C.glIsEnabled(cap.c()) != 0 | |
| 1410 } | |
| 1411 | |
| 1412 func IsFramebuffer(fb Framebuffer) (r0 bool) { | |
| 1413 defer func() { | |
| 1414 errstr := errDrain() | |
| 1415 log.Printf("gl.IsFramebuffer(%v) %v%v", fb, r0, errstr) | |
| 1416 }() | |
| 1417 return C.glIsFramebuffer(fb.c()) != 0 | |
| 1418 } | |
| 1419 | |
| 1420 func IsProgram(p Program) (r0 bool) { | |
| 1421 defer func() { | |
| 1422 errstr := errDrain() | |
| 1423 log.Printf("gl.IsProgram(%v) %v%v", p, r0, errstr) | |
| 1424 }() | |
| 1425 return C.glIsProgram(p.c()) != 0 | |
| 1426 } | |
| 1427 | |
| 1428 func IsRenderbuffer(rb Renderbuffer) (r0 bool) { | |
| 1429 defer func() { | |
| 1430 errstr := errDrain() | |
| 1431 log.Printf("gl.IsRenderbuffer(%v) %v%v", rb, r0, errstr) | |
| 1432 }() | |
| 1433 return C.glIsRenderbuffer(rb.c()) != 0 | |
| 1434 } | |
| 1435 | |
| 1436 func IsShader(s Shader) (r0 bool) { | |
| 1437 defer func() { | |
| 1438 errstr := errDrain() | |
| 1439 log.Printf("gl.IsShader(%v) %v%v", s, r0, errstr) | |
| 1440 }() | |
| 1441 return C.glIsShader(s.c()) != 0 | |
| 1442 } | |
| 1443 | |
| 1444 func IsTexture(t Texture) (r0 bool) { | |
| 1445 defer func() { | |
| 1446 errstr := errDrain() | |
| 1447 log.Printf("gl.IsTexture(%v) %v%v", t, r0, errstr) | |
| 1448 }() | |
| 1449 return C.glIsTexture(t.c()) != 0 | |
| 1450 } | |
| 1451 | |
| 1452 func LineWidth(width float32) { | |
| 1453 defer func() { | |
| 1454 errstr := errDrain() | |
| 1455 log.Printf("gl.LineWidth(%v) %v", width, errstr) | |
| 1456 }() | |
| 1457 C.glLineWidth(C.GLfloat(width)) | |
| 1458 } | |
| 1459 | |
| 1460 func LinkProgram(p Program) { | |
| 1461 defer func() { | |
| 1462 errstr := errDrain() | |
| 1463 log.Printf("gl.LinkProgram(%v) %v", p, errstr) | |
| 1464 }() | |
| 1465 C.glLinkProgram(p.c()) | |
| 1466 } | |
| 1467 | |
| 1468 func PixelStorei(pname Enum, param int32) { | |
| 1469 defer func() { | |
| 1470 errstr := errDrain() | |
| 1471 log.Printf("gl.PixelStorei(%v, %v) %v", pname, param, errstr) | |
| 1472 }() | |
| 1473 C.glPixelStorei(pname.c(), C.GLint(param)) | |
| 1474 } | |
| 1475 | |
| 1476 func PolygonOffset(factor, units float32) { | |
| 1477 defer func() { | |
| 1478 errstr := errDrain() | |
| 1479 log.Printf("gl.PolygonOffset(%v, %v) %v", factor, units, errstr) | |
| 1480 }() | |
| 1481 C.glPolygonOffset(C.GLfloat(factor), C.GLfloat(units)) | |
| 1482 } | |
| 1483 | |
| 1484 func ReadPixels(dst []byte, x, y, width, height int, format, ty Enum) { | |
| 1485 defer func() { | |
| 1486 errstr := errDrain() | |
| 1487 log.Printf("gl.ReadPixels(len(%d), %v, %v, %v, %v, %v, %v) %v",
len(dst), x, y, width, height, format, ty, errstr) | |
| 1488 }() | |
| 1489 C.glReadPixels(C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(heigh
t), format.c(), ty.c(), unsafe.Pointer(&dst[0])) | |
| 1490 } | |
| 1491 | |
| 1492 func ReleaseShaderCompiler() { | |
| 1493 defer func() { | |
| 1494 errstr := errDrain() | |
| 1495 log.Printf("gl.ReleaseShaderCompiler() %v", errstr) | |
| 1496 }() | |
| 1497 C.glReleaseShaderCompiler() | |
| 1498 } | |
| 1499 | |
| 1500 func RenderbufferStorage(target, internalFormat Enum, width, height int) { | |
| 1501 defer func() { | |
| 1502 errstr := errDrain() | |
| 1503 log.Printf("gl.RenderbufferStorage(%v, %v, %v, %v) %v", target,
internalFormat, width, height, errstr) | |
| 1504 }() | |
| 1505 C.glRenderbufferStorage(target.c(), internalFormat.c(), C.GLsizei(width)
, C.GLsizei(height)) | |
| 1506 } | |
| 1507 | |
| 1508 func SampleCoverage(value float32, invert bool) { | |
| 1509 defer func() { | |
| 1510 errstr := errDrain() | |
| 1511 log.Printf("gl.SampleCoverage(%v, %v) %v", value, invert, errstr
) | |
| 1512 }() | |
| 1513 sampleCoverage(value, invert) | |
| 1514 } | |
| 1515 | |
| 1516 func Scissor(x, y, width, height int32) { | |
| 1517 defer func() { | |
| 1518 errstr := errDrain() | |
| 1519 log.Printf("gl.Scissor(%v, %v, %v, %v) %v", x, y, width, height,
errstr) | |
| 1520 }() | |
| 1521 C.glScissor(C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height)) | |
| 1522 } | |
| 1523 | |
| 1524 func ShaderSource(s Shader, src string) { | |
| 1525 defer func() { | |
| 1526 errstr := errDrain() | |
| 1527 log.Printf("gl.ShaderSource(%v, %v) %v", s, src, errstr) | |
| 1528 }() | |
| 1529 str := (*C.GLchar)(C.CString(src)) | |
| 1530 defer C.free(unsafe.Pointer(str)) | |
| 1531 C.glShaderSource(s.c(), 1, &str, nil) | |
| 1532 } | |
| 1533 | |
| 1534 func StencilFunc(fn Enum, ref int, mask uint32) { | |
| 1535 defer func() { | |
| 1536 errstr := errDrain() | |
| 1537 log.Printf("gl.StencilFunc(%v, %v, %v) %v", fn, ref, mask, errst
r) | |
| 1538 }() | |
| 1539 C.glStencilFunc(fn.c(), C.GLint(ref), C.GLuint(mask)) | |
| 1540 } | |
| 1541 | |
| 1542 func StencilFuncSeparate(face, fn Enum, ref int, mask uint32) { | |
| 1543 defer func() { | |
| 1544 errstr := errDrain() | |
| 1545 log.Printf("gl.StencilFuncSeparate(%v, %v, %v, %v) %v", face, fn
, ref, mask, errstr) | |
| 1546 }() | |
| 1547 C.glStencilFuncSeparate(face.c(), fn.c(), C.GLint(ref), C.GLuint(mask)) | |
| 1548 } | |
| 1549 | |
| 1550 func StencilMask(mask uint32) { | |
| 1551 defer func() { | |
| 1552 errstr := errDrain() | |
| 1553 log.Printf("gl.StencilMask(%v) %v", mask, errstr) | |
| 1554 }() | |
| 1555 C.glStencilMask(C.GLuint(mask)) | |
| 1556 } | |
| 1557 | |
| 1558 func StencilMaskSeparate(face Enum, mask uint32) { | |
| 1559 defer func() { | |
| 1560 errstr := errDrain() | |
| 1561 log.Printf("gl.StencilMaskSeparate(%v, %v) %v", face, mask, errs
tr) | |
| 1562 }() | |
| 1563 C.glStencilMaskSeparate(face.c(), C.GLuint(mask)) | |
| 1564 } | |
| 1565 | |
| 1566 func StencilOp(fail, zfail, zpass Enum) { | |
| 1567 defer func() { | |
| 1568 errstr := errDrain() | |
| 1569 log.Printf("gl.StencilOp(%v, %v, %v) %v", fail, zfail, zpass, er
rstr) | |
| 1570 }() | |
| 1571 C.glStencilOp(fail.c(), zfail.c(), zpass.c()) | |
| 1572 } | |
| 1573 | |
| 1574 func StencilOpSeparate(face, sfail, dpfail, dppass Enum) { | |
| 1575 defer func() { | |
| 1576 errstr := errDrain() | |
| 1577 log.Printf("gl.StencilOpSeparate(%v, %v, %v, %v) %v", face, sfai
l, dpfail, dppass, errstr) | |
| 1578 }() | |
| 1579 C.glStencilOpSeparate(face.c(), sfail.c(), dpfail.c(), dppass.c()) | |
| 1580 } | |
| 1581 | |
| 1582 func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum,
data []byte) { | |
| 1583 defer func() { | |
| 1584 errstr := errDrain() | |
| 1585 log.Printf("gl.TexImage2D(%v, %v, %v, %v, %v, %v, len(%d)) %v",
target, level, width, height, format, ty, len(data), errstr) | |
| 1586 }() | |
| 1587 p := unsafe.Pointer(nil) | |
| 1588 if len(data) > 0 { | |
| 1589 p = unsafe.Pointer(&data[0]) | |
| 1590 } | |
| 1591 C.glTexImage2D(target.c(), C.GLint(level), C.GLint(format), C.GLsizei(wi
dth), C.GLsizei(height), 0, format.c(), ty.c(), p) | |
| 1592 } | |
| 1593 | |
| 1594 func TexSubImage2D(target Enum, level int, x, y, width, height int, format, ty E
num, data []byte) { | |
| 1595 defer func() { | |
| 1596 errstr := errDrain() | |
| 1597 log.Printf("gl.TexSubImage2D(%v, %v, %v, %v, %v, %v, %v, %v, len
(%d)) %v", target, level, x, y, width, height, format, ty, len(data), errstr) | |
| 1598 }() | |
| 1599 C.glTexSubImage2D(target.c(), C.GLint(level), C.GLint(x), C.GLint(y), C.
GLsizei(width), C.GLsizei(height), format.c(), ty.c(), unsafe.Pointer(&data[0])) | |
| 1600 } | |
| 1601 | |
| 1602 func TexParameterf(target, pname Enum, param float32) { | |
| 1603 defer func() { | |
| 1604 errstr := errDrain() | |
| 1605 log.Printf("gl.TexParameterf(%v, %v, %v) %v", target, pname, par
am, errstr) | |
| 1606 }() | |
| 1607 C.glTexParameterf(target.c(), pname.c(), C.GLfloat(param)) | |
| 1608 } | |
| 1609 | |
| 1610 func TexParameterfv(target, pname Enum, params []float32) { | |
| 1611 defer func() { | |
| 1612 errstr := errDrain() | |
| 1613 log.Printf("gl.TexParameterfv(%v, %v, len(%d)) %v", target, pnam
e, len(params), errstr) | |
| 1614 }() | |
| 1615 C.glTexParameterfv(target.c(), pname.c(), (*C.GLfloat)(¶ms[0])) | |
| 1616 } | |
| 1617 | |
| 1618 func TexParameteri(target, pname Enum, param int) { | |
| 1619 defer func() { | |
| 1620 errstr := errDrain() | |
| 1621 log.Printf("gl.TexParameteri(%v, %v, %v) %v", target, pname, par
am, errstr) | |
| 1622 }() | |
| 1623 C.glTexParameteri(target.c(), pname.c(), C.GLint(param)) | |
| 1624 } | |
| 1625 | |
| 1626 func TexParameteriv(target, pname Enum, params []int32) { | |
| 1627 defer func() { | |
| 1628 errstr := errDrain() | |
| 1629 log.Printf("gl.TexParameteriv(%v, %v, %v) %v", target, pname, pa
rams, errstr) | |
| 1630 }() | |
| 1631 C.glTexParameteriv(target.c(), pname.c(), (*C.GLint)(¶ms[0])) | |
| 1632 } | |
| 1633 | |
| 1634 func Uniform1f(dst Uniform, v float32) { | |
| 1635 defer func() { | |
| 1636 errstr := errDrain() | |
| 1637 log.Printf("gl.Uniform1f(%v, %v) %v", dst, v, errstr) | |
| 1638 }() | |
| 1639 C.glUniform1f(dst.c(), C.GLfloat(v)) | |
| 1640 } | |
| 1641 | |
| 1642 func Uniform1fv(dst Uniform, src []float32) { | |
| 1643 defer func() { | |
| 1644 errstr := errDrain() | |
| 1645 log.Printf("gl.Uniform1fv(%v, len(%d)) %v", dst, len(src), errst
r) | |
| 1646 }() | |
| 1647 C.glUniform1fv(dst.c(), C.GLsizei(len(src)), (*C.GLfloat)(&src[0])) | |
| 1648 } | |
| 1649 | |
| 1650 func Uniform1i(dst Uniform, v int) { | |
| 1651 defer func() { | |
| 1652 errstr := errDrain() | |
| 1653 log.Printf("gl.Uniform1i(%v, %v) %v", dst, v, errstr) | |
| 1654 }() | |
| 1655 C.glUniform1i(dst.c(), C.GLint(v)) | |
| 1656 } | |
| 1657 | |
| 1658 func Uniform1iv(dst Uniform, src []int32) { | |
| 1659 defer func() { | |
| 1660 errstr := errDrain() | |
| 1661 log.Printf("gl.Uniform1iv(%v, %v) %v", dst, src, errstr) | |
| 1662 }() | |
| 1663 C.glUniform1iv(dst.c(), C.GLsizei(len(src)), (*C.GLint)(&src[0])) | |
| 1664 } | |
| 1665 | |
| 1666 func Uniform2f(dst Uniform, v0, v1 float32) { | |
| 1667 defer func() { | |
| 1668 errstr := errDrain() | |
| 1669 log.Printf("gl.Uniform2f(%v, %v, %v) %v", dst, v0, v1, errstr) | |
| 1670 }() | |
| 1671 C.glUniform2f(dst.c(), C.GLfloat(v0), C.GLfloat(v1)) | |
| 1672 } | |
| 1673 | |
| 1674 func Uniform2fv(dst Uniform, src []float32) { | |
| 1675 defer func() { | |
| 1676 errstr := errDrain() | |
| 1677 log.Printf("gl.Uniform2fv(%v, len(%d)) %v", dst, len(src), errst
r) | |
| 1678 }() | |
| 1679 C.glUniform2fv(dst.c(), C.GLsizei(len(src)/2), (*C.GLfloat)(&src[0])) | |
| 1680 } | |
| 1681 | |
| 1682 func Uniform2i(dst Uniform, v0, v1 int) { | |
| 1683 defer func() { | |
| 1684 errstr := errDrain() | |
| 1685 log.Printf("gl.Uniform2i(%v, %v, %v) %v", dst, v0, v1, errstr) | |
| 1686 }() | |
| 1687 C.glUniform2i(dst.c(), C.GLint(v0), C.GLint(v1)) | |
| 1688 } | |
| 1689 | |
| 1690 func Uniform2iv(dst Uniform, src []int32) { | |
| 1691 defer func() { | |
| 1692 errstr := errDrain() | |
| 1693 log.Printf("gl.Uniform2iv(%v, %v) %v", dst, src, errstr) | |
| 1694 }() | |
| 1695 C.glUniform2iv(dst.c(), C.GLsizei(len(src)/2), (*C.GLint)(&src[0])) | |
| 1696 } | |
| 1697 | |
| 1698 func Uniform3f(dst Uniform, v0, v1, v2 float32) { | |
| 1699 defer func() { | |
| 1700 errstr := errDrain() | |
| 1701 log.Printf("gl.Uniform3f(%v, %v, %v, %v) %v", dst, v0, v1, v2, e
rrstr) | |
| 1702 }() | |
| 1703 C.glUniform3f(dst.c(), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2)) | |
| 1704 } | |
| 1705 | |
| 1706 func Uniform3fv(dst Uniform, src []float32) { | |
| 1707 defer func() { | |
| 1708 errstr := errDrain() | |
| 1709 log.Printf("gl.Uniform3fv(%v, len(%d)) %v", dst, len(src), errst
r) | |
| 1710 }() | |
| 1711 C.glUniform3fv(dst.c(), C.GLsizei(len(src)/3), (*C.GLfloat)(&src[0])) | |
| 1712 } | |
| 1713 | |
| 1714 func Uniform3i(dst Uniform, v0, v1, v2 int32) { | |
| 1715 defer func() { | |
| 1716 errstr := errDrain() | |
| 1717 log.Printf("gl.Uniform3i(%v, %v, %v, %v) %v", dst, v0, v1, v2, e
rrstr) | |
| 1718 }() | |
| 1719 C.glUniform3i(dst.c(), C.GLint(v0), C.GLint(v1), C.GLint(v2)) | |
| 1720 } | |
| 1721 | |
| 1722 func Uniform3iv(dst Uniform, src []int32) { | |
| 1723 defer func() { | |
| 1724 errstr := errDrain() | |
| 1725 log.Printf("gl.Uniform3iv(%v, %v) %v", dst, src, errstr) | |
| 1726 }() | |
| 1727 C.glUniform3iv(dst.c(), C.GLsizei(len(src)/3), (*C.GLint)(&src[0])) | |
| 1728 } | |
| 1729 | |
| 1730 func Uniform4f(dst Uniform, v0, v1, v2, v3 float32) { | |
| 1731 defer func() { | |
| 1732 errstr := errDrain() | |
| 1733 log.Printf("gl.Uniform4f(%v, %v, %v, %v, %v) %v", dst, v0, v1, v
2, v3, errstr) | |
| 1734 }() | |
| 1735 C.glUniform4f(dst.c(), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GL
float(v3)) | |
| 1736 } | |
| 1737 | |
| 1738 func Uniform4fv(dst Uniform, src []float32) { | |
| 1739 defer func() { | |
| 1740 errstr := errDrain() | |
| 1741 log.Printf("gl.Uniform4fv(%v, len(%d)) %v", dst, len(src), errst
r) | |
| 1742 }() | |
| 1743 C.glUniform4fv(dst.c(), C.GLsizei(len(src)/4), (*C.GLfloat)(&src[0])) | |
| 1744 } | |
| 1745 | |
| 1746 func Uniform4i(dst Uniform, v0, v1, v2, v3 int32) { | |
| 1747 defer func() { | |
| 1748 errstr := errDrain() | |
| 1749 log.Printf("gl.Uniform4i(%v, %v, %v, %v, %v) %v", dst, v0, v1, v
2, v3, errstr) | |
| 1750 }() | |
| 1751 C.glUniform4i(dst.c(), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3
)) | |
| 1752 } | |
| 1753 | |
| 1754 func Uniform4iv(dst Uniform, src []int32) { | |
| 1755 defer func() { | |
| 1756 errstr := errDrain() | |
| 1757 log.Printf("gl.Uniform4iv(%v, %v) %v", dst, src, errstr) | |
| 1758 }() | |
| 1759 C.glUniform4iv(dst.c(), C.GLsizei(len(src)/4), (*C.GLint)(&src[0])) | |
| 1760 } | |
| 1761 | |
| 1762 func UniformMatrix2fv(dst Uniform, src []float32) { | |
| 1763 defer func() { | |
| 1764 errstr := errDrain() | |
| 1765 log.Printf("gl.UniformMatrix2fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1766 }() | |
| 1767 C.glUniformMatrix2fv(dst.c(), C.GLsizei(len(src)/4), 0, (*C.GLfloat)(&sr
c[0])) | |
| 1768 } | |
| 1769 | |
| 1770 func UniformMatrix3fv(dst Uniform, src []float32) { | |
| 1771 defer func() { | |
| 1772 errstr := errDrain() | |
| 1773 log.Printf("gl.UniformMatrix3fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1774 }() | |
| 1775 C.glUniformMatrix3fv(dst.c(), C.GLsizei(len(src)/9), 0, (*C.GLfloat)(&sr
c[0])) | |
| 1776 } | |
| 1777 | |
| 1778 func UniformMatrix4fv(dst Uniform, src []float32) { | |
| 1779 defer func() { | |
| 1780 errstr := errDrain() | |
| 1781 log.Printf("gl.UniformMatrix4fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1782 }() | |
| 1783 C.glUniformMatrix4fv(dst.c(), C.GLsizei(len(src)/16), 0, (*C.GLfloat)(&s
rc[0])) | |
| 1784 } | |
| 1785 | |
| 1786 func UseProgram(p Program) { | |
| 1787 defer func() { | |
| 1788 errstr := errDrain() | |
| 1789 log.Printf("gl.UseProgram(%v) %v", p, errstr) | |
| 1790 }() | |
| 1791 C.glUseProgram(p.c()) | |
| 1792 } | |
| 1793 | |
| 1794 func ValidateProgram(p Program) { | |
| 1795 defer func() { | |
| 1796 errstr := errDrain() | |
| 1797 log.Printf("gl.ValidateProgram(%v) %v", p, errstr) | |
| 1798 }() | |
| 1799 C.glValidateProgram(p.c()) | |
| 1800 } | |
| 1801 | |
| 1802 func VertexAttrib1f(dst Attrib, x float32) { | |
| 1803 defer func() { | |
| 1804 errstr := errDrain() | |
| 1805 log.Printf("gl.VertexAttrib1f(%v, %v) %v", dst, x, errstr) | |
| 1806 }() | |
| 1807 C.glVertexAttrib1f(dst.c(), C.GLfloat(x)) | |
| 1808 } | |
| 1809 | |
| 1810 func VertexAttrib1fv(dst Attrib, src []float32) { | |
| 1811 defer func() { | |
| 1812 errstr := errDrain() | |
| 1813 log.Printf("gl.VertexAttrib1fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1814 }() | |
| 1815 C.glVertexAttrib1fv(dst.c(), (*C.GLfloat)(&src[0])) | |
| 1816 } | |
| 1817 | |
| 1818 func VertexAttrib2f(dst Attrib, x, y float32) { | |
| 1819 defer func() { | |
| 1820 errstr := errDrain() | |
| 1821 log.Printf("gl.VertexAttrib2f(%v, %v, %v) %v", dst, x, y, errstr
) | |
| 1822 }() | |
| 1823 C.glVertexAttrib2f(dst.c(), C.GLfloat(x), C.GLfloat(y)) | |
| 1824 } | |
| 1825 | |
| 1826 func VertexAttrib2fv(dst Attrib, src []float32) { | |
| 1827 defer func() { | |
| 1828 errstr := errDrain() | |
| 1829 log.Printf("gl.VertexAttrib2fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1830 }() | |
| 1831 C.glVertexAttrib2fv(dst.c(), (*C.GLfloat)(&src[0])) | |
| 1832 } | |
| 1833 | |
| 1834 func VertexAttrib3f(dst Attrib, x, y, z float32) { | |
| 1835 defer func() { | |
| 1836 errstr := errDrain() | |
| 1837 log.Printf("gl.VertexAttrib3f(%v, %v, %v, %v) %v", dst, x, y, z,
errstr) | |
| 1838 }() | |
| 1839 C.glVertexAttrib3f(dst.c(), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z)) | |
| 1840 } | |
| 1841 | |
| 1842 func VertexAttrib3fv(dst Attrib, src []float32) { | |
| 1843 defer func() { | |
| 1844 errstr := errDrain() | |
| 1845 log.Printf("gl.VertexAttrib3fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1846 }() | |
| 1847 C.glVertexAttrib3fv(dst.c(), (*C.GLfloat)(&src[0])) | |
| 1848 } | |
| 1849 | |
| 1850 func VertexAttrib4f(dst Attrib, x, y, z, w float32) { | |
| 1851 defer func() { | |
| 1852 errstr := errDrain() | |
| 1853 log.Printf("gl.VertexAttrib4f(%v, %v, %v, %v, %v) %v", dst, x, y
, z, w, errstr) | |
| 1854 }() | |
| 1855 C.glVertexAttrib4f(dst.c(), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.
GLfloat(w)) | |
| 1856 } | |
| 1857 | |
| 1858 func VertexAttrib4fv(dst Attrib, src []float32) { | |
| 1859 defer func() { | |
| 1860 errstr := errDrain() | |
| 1861 log.Printf("gl.VertexAttrib4fv(%v, len(%d)) %v", dst, len(src),
errstr) | |
| 1862 }() | |
| 1863 C.glVertexAttrib4fv(dst.c(), (*C.GLfloat)(&src[0])) | |
| 1864 } | |
| 1865 | |
| 1866 func VertexAttribPointer(dst Attrib, size int, ty Enum, normalized bool, stride,
offset int) { | |
| 1867 defer func() { | |
| 1868 errstr := errDrain() | |
| 1869 log.Printf("gl.VertexAttribPointer(%v, %v, %v, %v, %v, %v) %v",
dst, size, ty, normalized, stride, offset, errstr) | |
| 1870 }() | |
| 1871 n := glBoolean(normalized) | |
| 1872 s := C.GLsizei(stride) | |
| 1873 C.glVertexAttribPointer(dst.c(), C.GLint(size), ty.c(), n, s, unsafe.Poi
nter(uintptr(offset))) | |
| 1874 } | |
| 1875 | |
| 1876 func Viewport(x, y, width, height int) { | |
| 1877 defer func() { | |
| 1878 errstr := errDrain() | |
| 1879 log.Printf("gl.Viewport(%v, %v, %v, %v) %v", x, y, width, height
, errstr) | |
| 1880 }() | |
| 1881 C.glViewport(C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height)
) | |
| 1882 } | |
| OLD | NEW |