| 466 | } |
| 467 | |
| 468 | static void InitShaderProgram(ShaderProgram * program, const ShaderConfiguration & config, GLuint shader_program) |
| 469 | { |
| 470 | program->config = config; |
| 471 | program->program = shader_program; |
| 472 | program->uloc_project = glGetUniformLocation(shader_program, "uProject"); |
| 473 | program->uloc_primcol = glGetUniformLocation(shader_program, "uPrimColour"); |
| 474 | program->uloc_envcol = glGetUniformLocation(shader_program, "uEnvColour"); |
| 475 | program->uloc_primlodfrac = glGetUniformLocation(shader_program, "uPrimLODFrac"); |
| 476 | |
| 477 | program->uloc_foo = glGetUniformLocation(shader_program, "uFoo"); |
| 478 | |
| 479 | program->uloc_tileclamp[0] = glGetUniformLocation(shader_program, "uTileClampEnable0"); |
| 480 | program->uloc_tiletl[0] = glGetUniformLocation(shader_program, "uTileTL0"); |
| 481 | program->uloc_tilebr[0] = glGetUniformLocation(shader_program, "uTileBR0"); |
| 482 | program->uloc_tileshift[0] = glGetUniformLocation(shader_program, "uTileShift0"); |
| 483 | program->uloc_tilemask[0] = glGetUniformLocation(shader_program, "uTileMask0"); |
| 484 | program->uloc_tilemirror[0] = glGetUniformLocation(shader_program, "uTileMirror0"); |
| 485 | program->uloc_texscale[0] = glGetUniformLocation(shader_program, "uTexScale0"); |
| 486 | program->uloc_texture [0] = glGetUniformLocation(shader_program, "uTexture0"); |
| 487 | |
| 488 | program->uloc_tileclamp[1] = glGetUniformLocation(shader_program, "uTileClampEnable1"); |
| 489 | program->uloc_tiletl[1] = glGetUniformLocation(shader_program, "uTileTL1"); |
| 490 | program->uloc_tilebr[1] = glGetUniformLocation(shader_program, "uTileBR1"); |
| 491 | program->uloc_tileshift[1] = glGetUniformLocation(shader_program, "uTileShift1"); |
| 492 | program->uloc_tilemask[1] = glGetUniformLocation(shader_program, "uTileMask1"); |
| 493 | program->uloc_tilemirror[1] = glGetUniformLocation(shader_program, "uTileMirror1"); |
| 494 | program->uloc_texscale[1] = glGetUniformLocation(shader_program, "uTexScale1"); |
| 495 | program->uloc_texture[1] = glGetUniformLocation(shader_program, "uTexture1"); |
| 496 | |
| 497 | GLuint attrloc; |
| 498 | attrloc = glGetAttribLocation(program->program, "in_pos"); |
| 499 | glBindBuffer(GL_ARRAY_BUFFER, gVBOs[kPositionBuffer]); |
| 500 | glEnableVertexAttribArray(attrloc); |
| 501 | glVertexAttribPointer(attrloc, 3, GL_FLOAT, GL_FALSE, 0, 0); |
| 502 | |
| 503 | attrloc = glGetAttribLocation(program->program, "in_uv"); |
| 504 | glBindBuffer(GL_ARRAY_BUFFER, gVBOs[kTexCoordBuffer]); |
| 505 | glEnableVertexAttribArray(attrloc); |
| 506 | glVertexAttribPointer(attrloc, 2, GL_SHORT, GL_FALSE, 0, 0); |
| 507 | |
| 508 | attrloc = glGetAttribLocation(program->program, "in_col"); |
| 509 | glBindBuffer(GL_ARRAY_BUFFER, gVBOs[kColorBuffer]); |
| 510 | glEnableVertexAttribArray(attrloc); |
| 511 | glVertexAttribPointer(attrloc, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); |
| 512 | } |
| 513 | |
| 514 | void RendererGL::MakeShaderConfigFromCurrentState(ShaderConfiguration * config) const |
| 515 | { |
no outgoing calls
no test coverage detected