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

Method setupProgram

src/main/java/net/optifine/shaders/Shaders.java:2485–2600  ·  view source on GitHub ↗
(Program program, String vShaderPath, String gShaderPath, String fShaderPath)

Source from the content-addressed store, hash-verified

2483 }
2484
2485 private static void setupProgram(Program program, String vShaderPath, String gShaderPath, String fShaderPath)
2486 {
2487 checkGLError("pre setupProgram");
2488 int i = ARBShaderObjects.glCreateProgramObjectARB();
2489 checkGLError("create");
2490
2491 if (i != 0)
2492 {
2493 progUseEntityAttrib = false;
2494 progUseMidTexCoordAttrib = false;
2495 progUseTangentAttrib = false;
2496 int j = createVertShader(program, vShaderPath);
2497 int k = createGeomShader(program, gShaderPath);
2498 int l = createFragShader(program, fShaderPath);
2499 checkGLError("create");
2500
2501 if (j == 0 && k == 0 && l == 0)
2502 {
2503 ARBShaderObjects.glDeleteObjectARB(i);
2504 i = 0;
2505 program.resetId();
2506 }
2507 else
2508 {
2509 if (j != 0)
2510 {
2511 ARBShaderObjects.glAttachObjectARB(i, j);
2512 checkGLError("attach");
2513 }
2514
2515 if (k != 0)
2516 {
2517 ARBShaderObjects.glAttachObjectARB(i, k);
2518 checkGLError("attach");
2519
2520 if (progArbGeometryShader4)
2521 {
2522 ARBGeometryShader4.glProgramParameteriARB(i, 36315, 4);
2523 ARBGeometryShader4.glProgramParameteriARB(i, 36316, 5);
2524 ARBGeometryShader4.glProgramParameteriARB(i, 36314, progMaxVerticesOut);
2525 checkGLError("arbGeometryShader4");
2526 }
2527
2528 hasGeometryShaders = true;
2529 }
2530
2531 if (l != 0)
2532 {
2533 ARBShaderObjects.glAttachObjectARB(i, l);
2534 checkGLError("attach");
2535 }
2536
2537 if (progUseEntityAttrib)
2538 {
2539 ARBVertexShader.glBindAttribLocationARB(i, entityAttrib, (CharSequence)"mc_Entity");
2540 checkGLError("mc_Entity");
2541 }
2542

Callers 1

initMethod · 0.95

Calls 13

checkGLErrorMethod · 0.95
createVertShaderMethod · 0.95
createGeomShaderMethod · 0.95
createFragShaderMethod · 0.95
severeMethod · 0.95
printLogInfoMethod · 0.95
useProgramMethod · 0.95
printChatAndLogErrorMethod · 0.95
resetIdMethod · 0.80
glGetProgramiMethod · 0.80
setRefMethod · 0.80
getNameMethod · 0.65

Tested by

no test coverage detected