MCPcopy Create free account
hub / github.com/BabylonJS/BabylonNative / LoadShader

Function LoadShader

Dependencies/xr/Source/ARCore/XR.cpp:91–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89 )";
90
91 GLuint LoadShader(GLenum shader_type, const char* shader_source)
92 {
93 GLuint shader = glCreateShader(shader_type);
94 if (!shader)
95 {
96 throw std::runtime_error{ "Failed to create shader" };
97 }
98
99 glShaderSource(shader, 1, &shader_source, nullptr);
100 glCompileShader(shader);
101 GLint compileStatus = GL_FALSE;
102 glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus);
103
104 if (compileStatus != GL_TRUE)
105 {
106 GLint infoLogLength = 0;
107
108 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength);
109 if (!infoLogLength)
110 {
111 throw std::runtime_error{ "Unknown error compiling shader" };
112 }
113
114 std::string infoLog;
115 infoLog.resize(static_cast<size_t>(infoLogLength));
116 glGetShaderInfoLog(shader, infoLogLength, nullptr, infoLog.data());
117 glDeleteShader(shader);
118 throw std::runtime_error("Error compiling shader: " + infoLog);
119 }
120
121 return shader;
122 }
123
124 GLuint CreateShaderProgram()
125 {

Callers 1

CreateShaderProgramFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected