(Program program)
| 3284 | } |
| 3285 | |
| 3286 | public static void useProgram(Program program) |
| 3287 | { |
| 3288 | checkGLError("pre-useProgram"); |
| 3289 | |
| 3290 | if (isShadowPass) |
| 3291 | { |
| 3292 | program = ProgramShadow; |
| 3293 | } |
| 3294 | else if (isEntitiesGlowing) |
| 3295 | { |
| 3296 | program = ProgramEntitiesGlowing; |
| 3297 | } |
| 3298 | |
| 3299 | if (activeProgram != program) |
| 3300 | { |
| 3301 | updateAlphaBlend(activeProgram, program); |
| 3302 | activeProgram = program; |
| 3303 | int i = program.getId(); |
| 3304 | activeProgramID = i; |
| 3305 | ARBShaderObjects.glUseProgramObjectARB(i); |
| 3306 | |
| 3307 | if (checkGLError("useProgram") != 0) |
| 3308 | { |
| 3309 | program.setId(0); |
| 3310 | i = program.getId(); |
| 3311 | activeProgramID = i; |
| 3312 | ARBShaderObjects.glUseProgramObjectARB(i); |
| 3313 | } |
| 3314 | |
| 3315 | shaderUniforms.setProgram(i); |
| 3316 | |
| 3317 | if (customUniforms != null) |
| 3318 | { |
| 3319 | customUniforms.setProgram(i); |
| 3320 | } |
| 3321 | |
| 3322 | if (i != 0) |
| 3323 | { |
| 3324 | IntBuffer intbuffer = program.getDrawBuffers(); |
| 3325 | |
| 3326 | if (isRenderingDfb) |
| 3327 | { |
| 3328 | setDrawBuffers(intbuffer); |
| 3329 | } |
| 3330 | |
| 3331 | activeCompositeMipmapSetting = program.getCompositeMipmapSetting(); |
| 3332 | |
| 3333 | switch (program.getProgramStage()) |
| 3334 | { |
| 3335 | case GBUFFERS: |
| 3336 | setProgramUniform1i(uniform_texture, 0); |
| 3337 | setProgramUniform1i(uniform_lightmap, 1); |
| 3338 | setProgramUniform1i(uniform_normals, 2); |
| 3339 | setProgramUniform1i(uniform_specular, 3); |
| 3340 | setProgramUniform1i(uniform_shadow, waterShadowEnabled ? 5 : 4); |
| 3341 | setProgramUniform1i(uniform_watershadow, 4); |
| 3342 | setProgramUniform1i(uniform_shadowtex0, 4); |
| 3343 | setProgramUniform1i(uniform_shadowtex1, 5); |
no test coverage detected