MCPcopy Create free account
hub / github.com/DGVPSH/SlackOpen / useProgram

Method useProgram

src/main/java/net/optifine/shaders/Shaders.java:3286–3494  ·  view source on GitHub ↗
(Program program)

Source from the content-addressed store, hash-verified

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);

Callers 15

beginTerrainSolidMethod · 0.95
beginTerrainCutoutMethod · 0.95
endTerrainMethod · 0.95
beginTranslucentMethod · 0.95
endTranslucentMethod · 0.95
beginBlockDamageMethod · 0.95
endBlockDamageMethod · 0.95
renderShadowMapMethod · 0.95
beaconBeamBeginMethod · 0.95

Calls 15

checkGLErrorMethod · 0.95
updateAlphaBlendMethod · 0.95
setDrawBuffersMethod · 0.95
setProgramUniform1iMethod · 0.95
getItemMethod · 0.95
getItemAliasIdMethod · 0.95
getLightValueMethod · 0.95
setProgramUniform1fMethod · 0.95
setProgramUniform3fMethod · 0.95
setProgramUniform2iMethod · 0.95
getDrawBuffersMethod · 0.80

Tested by

no test coverage detected