| 1232 | } |
| 1233 | |
| 1234 | void 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 |
no test coverage detected