MCPcopy Create free account
hub / github.com/bulletphysics/bullet3 / InitShaders

Method InitShaders

examples/OpenGLWindow/GLInstancingRenderer.cpp:1234–1425  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1232}
1233
1234void GLInstancingRenderer::InitShaders()
1235{
1236 int POSITION_BUFFER_SIZE = (m_data->m_maxNumObjectCapacity * sizeof(float) * 4);
1237 int ORIENTATION_BUFFER_SIZE = (m_data->m_maxNumObjectCapacity * sizeof(float) * 4);
1238 int COLOR_BUFFER_SIZE = (m_data->m_maxNumObjectCapacity * sizeof(float) * 4);
1239 int SCALE_BUFFER_SIZE = (m_data->m_maxNumObjectCapacity * sizeof(float) * 4);
1240
1241 {
1242 triangleShaderProgram = gltLoadShaderPair(triangleVertexShaderText, triangleFragmentShader);
1243
1244 //triangle_vpos_location = glGetAttribLocation(triangleShaderProgram, "vPos");
1245 //triangle_vUV_location = glGetAttribLocation(triangleShaderProgram, "vUV");
1246
1247 triangle_mvp_location = glGetUniformLocation(triangleShaderProgram, "MVP");
1248 triangle_vcol_location = glGetUniformLocation(triangleShaderProgram, "vCol");
1249
1250 glLinkProgram(triangleShaderProgram);
1251 glUseProgram(triangleShaderProgram);
1252
1253 glGenVertexArrays(1, &triangleVertexArrayObject);
1254 glBindVertexArray(triangleVertexArrayObject);
1255
1256 glGenBuffers(1, &triangleVertexBufferObject);
1257 glGenBuffers(1, &triangleIndexVbo);
1258
1259 int sz = MAX_TRIANGLES_IN_BATCH * sizeof(GfxVertexFormat0);
1260 glBindVertexArray(triangleVertexArrayObject);
1261 glBindBuffer(GL_ARRAY_BUFFER, triangleVertexBufferObject);
1262 glBufferData(GL_ARRAY_BUFFER, sz, 0, GL_DYNAMIC_DRAW);
1263
1264 glBindVertexArray(0);
1265 }
1266 {
1267 pointsShader = gltLoadShaderPair(pointsVertexShader, pointsFragmentShader);
1268 points_ModelViewMatrix = glGetUniformLocation(pointsShader, "ModelViewMatrix");
1269 points_ProjectionMatrix = glGetUniformLocation(pointsShader, "ProjectionMatrix");
1270 points_colour = glGetUniformLocation(pointsShader, "colour");
1271 points_colourIn = glGetAttribLocation(pointsShader, "colourIn");
1272 points_position = glGetAttribLocation(pointsShader, "position");
1273 glLinkProgram(pointsShader);
1274 glUseProgram(pointsShader);
1275 int max_viewports=-1;
1276 glGetIntegerv(GL_MAX_VIEWPORTS, &max_viewports);
1277 {
1278 glGenVertexArrays(1, &pointsVertexArrayObject);
1279 glBindVertexArray(pointsVertexArrayObject);
1280
1281 glGenBuffers(1, &pointsVertexBufferObject);
1282 glGenBuffers(1, &pointsIndexVbo);
1283
1284 int sz = MAX_POINTS_IN_BATCH * sizeof(b3Vector3);
1285 glBindVertexArray(pointsVertexArrayObject);
1286 glBindBuffer(GL_ARRAY_BUFFER, pointsVertexBufferObject);
1287 glBufferData(GL_ARRAY_BUFFER, sz, 0, GL_DYNAMIC_DRAW);
1288
1289 glBindVertexArray(0);
1290 }
1291

Calls 2

gltLoadShaderPairFunction · 0.85
checkErrorFunction · 0.85

Tested by

no test coverage detected