|
|
@ -1948,17 +1948,17 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform) |
|
|
|
|
|
|
|
// Upload to shader material.colDiffuse |
|
|
|
if (material.shader.locs[LOC_COLOR_DIFFUSE] != -1) |
|
|
|
glUniform4f(material.shader.locs[LOC_COLOR_DIFFUSE], (float)material.maps[MAP_DIFFUSE].color.r/i">255, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.g/i">255, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.b/i">255, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.a/i">255); |
|
|
|
glUniform4f(material.shader.locs[LOC_COLOR_DIFFUSE], (float)material.maps[MAP_DIFFUSE].color.r/f">255.0f, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.g/f">255.0f, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.b/f">255.0f, |
|
|
|
(float)material.maps[MAP_DIFFUSE].color.a/f">255.0f); |
|
|
|
|
|
|
|
// Upload to shader material.colSpecular (if available) |
|
|
|
if (material.shader.locs[LOC_COLOR_SPECULAR] != -1) |
|
|
|
glUniform4f(material.shader.locs[LOC_COLOR_SPECULAR], (float)material.maps[MAP_SPECULAR].color.r/i">255, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.g/i">255, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.b/i">255, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.a/i">255); |
|
|
|
glUniform4f(material.shader.locs[LOC_COLOR_SPECULAR], (float)material.maps[MAP_SPECULAR].color.r/f">255.0f, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.g/f">255.0f, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.b/f">255.0f, |
|
|
|
(float)material.maps[MAP_SPECULAR].color.a/f">255.0f); |
|
|
|
|
|
|
|
if (material.shader.locs[LOC_MATRIX_VIEW] != -1) SetShaderValueMatrix(material.shader, material.shader.locs[LOC_MATRIX_VIEW], modelview); |
|
|
|
if (material.shader.locs[LOC_MATRIX_PROJECTION] != -1) SetShaderValueMatrix(material.shader, material.shader.locs[LOC_MATRIX_PROJECTION], projection); |
|
|
@ -2354,6 +2354,9 @@ char *LoadText(const char *fileName) |
|
|
|
Shader LoadShader(char *vsFileName, char *fsFileName) |
|
|
|
{ |
|
|
|
Shader shader = { 0 }; |
|
|
|
|
|
|
|
// NOTE: All locations must be reseted to -1 (no location) |
|
|
|
for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; |
|
|
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// Shaders loading from external text file |
|
|
@ -3259,7 +3262,10 @@ static unsigned int LoadShaderProgram(const char *vShaderStr, const char *fShade |
|
|
|
// NOTE: This shader program is used for batch buffers (lines, triangles, quads) |
|
|
|
static Shader LoadShaderDefault(void) |
|
|
|
{ |
|
|
|
Shader shader; |
|
|
|
Shader shader = { 0 }; |
|
|
|
|
|
|
|
// NOTE: All locations must be reseted to -1 (no location) |
|
|
|
for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; |
|
|
|
|
|
|
|
// Vertex shader directly defined, no external file required |
|
|
|
char vDefaultShaderStr[] = |
|
|
@ -3325,17 +3331,20 @@ static Shader LoadShaderDefault(void) |
|
|
|
if (shader.id > 0) |
|
|
|
{ |
|
|
|
TraceLog(LOG_INFO, "[SHDR ID %i] Default shader loaded successfully", shader.id); |
|
|
|
|
|
|
|
// Set default shader locations |
|
|
|
// Get handles to GLSL input attibute locations |
|
|
|
|
|
|
|
// Set default shader locations: attributes locations |
|
|
|
shader.locs[LOC_VERTEX_POSITION] = glGetAttribLocation(shader.id, "vertexPosition"); |
|
|
|
shader.locs[LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(shader.id, "vertexTexCoord"); |
|
|
|
shader.locs[LOC_VERTEX_COLOR] = glGetAttribLocation(shader.id, "vertexColor"); |
|
|
|
|
|
|
|
// Get handles to GLSL uniform locations |
|
|
|
// Set default shader locations: uniform locations |
|
|
|
shader.locs[LOC_MATRIX_MVP] = glGetUniformLocation(shader.id, "mvp"); |
|
|
|
shader.locs[LOC_COLOR_DIFFUSE] = glGetUniformLocation(shader.id, "colDiffuse"); |
|
|
|
shader.locs[LOC_MAP_DIFFUSE] = glGetUniformLocation(shader.id, "texture0"); |
|
|
|
|
|
|
|
// NOTE: We could also use below function but in case DEFAULT_ATTRIB_* points are |
|
|
|
// changed for external custom shaders, we just use direct bindings above |
|
|
|
//SetShaderDefaultLocations(&shader); |
|
|
|
} |
|
|
|
else TraceLog(LOG_WARNING, "[SHDR ID %i] Default shader could not be loaded", shader.id); |
|
|
|
|
|
|
|