| 222 | } |
| 223 | |
| 224 | bool GLSLProgramFactory::Link(GLuint programHandle) |
| 225 | { |
| 226 | glLinkProgram(programHandle); |
| 227 | int32_t status; |
| 228 | glGetProgramiv(programHandle, GL_LINK_STATUS, &status); |
| 229 | if (status == GL_TRUE) |
| 230 | { |
| 231 | return true; |
| 232 | } |
| 233 | |
| 234 | int32_t logLength; |
| 235 | glGetProgramiv(programHandle, GL_INFO_LOG_LENGTH, &logLength); |
| 236 | if (logLength > 0) |
| 237 | { |
| 238 | std::vector<GLchar> log(logLength); |
| 239 | int32_t numWritten; |
| 240 | glGetProgramInfoLog(programHandle, logLength, &numWritten, log.data()); |
| 241 | std::string message(log.data()); |
| 242 | LogError("Link failed:\n" + message); |
| 243 | } |
| 244 | else |
| 245 | { |
| 246 | LogError("Invalid info log length."); |
| 247 | } |
| 248 | } |
| 249 | |
| 250 |
nothing calls this directly
no test coverage detected