MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / CompileProgram

Function CompileProgram

framework/render/gles30_v2/ogles_3_0_renderer_v2.cpp:70–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

68}
69
70GL::GLuint CompileProgram(const UString &vertexSource, const UString &fragmentSource)
71{
72 GL::GLuint prog = 0;
73 GL::GLuint vShader = CreateShader(GL::VERTEX_SHADER, vertexSource);
74 if (!vShader)
75 {
76 LogError("Failed to compile vertex shader");
77 return 0;
78 }
79 GL::GLuint fShader = CreateShader(GL::FRAGMENT_SHADER, fragmentSource);
80 if (!fShader)
81 {
82 LogError("Failed to compile fragment shader");
83 gl->DeleteShader(vShader);
84 return 0;
85 }
86
87 prog = gl->CreateProgram();
88 gl->AttachShader(prog, vShader);
89 gl->AttachShader(prog, fShader);
90
91 gl->DeleteShader(vShader);
92 gl->DeleteShader(fShader);
93
94 gl->LinkProgram(prog);
95
96 GL::GLint linkStatus;
97 gl->GetProgramiv(prog, GL::LINK_STATUS, &linkStatus);
98 if (linkStatus == GL::TRUE)
99 return prog;
100
101 GL::GLint logLength;
102 gl->GetProgramiv(prog, GL::INFO_LOG_LENGTH, &logLength);
103
104 std::unique_ptr<char[]> log(new char[logLength]);
105 gl->GetProgramInfoLog(prog, logLength, NULL, log.get());
106
107 LogError("Program link error: %s", log.get());
108
109 gl->DeleteProgram(prog);
110 return 0;
111}
112
113struct SpriteDescription
114{

Callers 3

SpriteDrawMachineMethod · 0.85
TexturedDrawMachineMethod · 0.85
ColouredDrawMachineMethod · 0.85

Calls 2

CreateShaderFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected