|
@ -1080,22 +1080,24 @@ void rlglDrawEx(Mesh mesh, Material material, Matrix transform, bool wires) |
|
|
glBindTexture(GL_TEXTURE_2D, material.texDiffuse.id); |
|
|
glBindTexture(GL_TEXTURE_2D, material.texDiffuse.id); |
|
|
|
|
|
|
|
|
// NOTE: On OpenGL 1.1 we use Vertex Arrays to draw model |
|
|
// NOTE: On OpenGL 1.1 we use Vertex Arrays to draw model |
|
|
glEnableClientState(GL_VERTEX_ARRAY); // Enable vertex array |
|
|
|
|
|
glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Enable texture coords array |
|
|
|
|
|
glEnableClientState(GL_NORMAL_ARRAY); // Enable normals array |
|
|
|
|
|
|
|
|
glEnableClientState(GL_VERTEX_ARRAY); // Enable vertex array |
|
|
|
|
|
glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Enable texture coords array |
|
|
|
|
|
glEnableClientState(GL_NORMAL_ARRAY); // Enable normals array |
|
|
|
|
|
|
|
|
glVertexPointer(3, GL_FLOAT, 0, mesh.vertices); // Pointer to vertex coords array |
|
|
|
|
|
glTexCoordPointer(2, GL_FLOAT, 0, mesh.texcoords); // Pointer to texture coords array |
|
|
|
|
|
glNormalPointer(GL_FLOAT, 0, mesh.normals); // Pointer to normals array |
|
|
|
|
|
|
|
|
glVertexPointer(3, GL_FLOAT, 0, mesh.vertices); // Pointer to vertex coords array |
|
|
|
|
|
glTexCoordPointer(2, GL_FLOAT, 0, mesh.texcoords); // Pointer to texture coords array |
|
|
|
|
|
glNormalPointer(GL_FLOAT, 0, mesh.normals); // Pointer to normals array |
|
|
//glColorPointer(4, GL_UNSIGNED_BYTE, 0, mesh.colors); // Pointer to colors array (NOT USED) |
|
|
//glColorPointer(4, GL_UNSIGNED_BYTE, 0, mesh.colors); // Pointer to colors array (NOT USED) |
|
|
|
|
|
|
|
|
rlMultMatrixf(MatrixToFloat(transform)); |
|
|
|
|
|
|
|
|
|
|
|
glDrawArrays(GL_TRIANGLES, 0, mesh.vertexCount); |
|
|
|
|
|
|
|
|
rlPushMatrix(); |
|
|
|
|
|
rlMultMatrixf(MatrixToFloat(transform)); |
|
|
|
|
|
rlColor4ub(material.colDiffuse.r, material.colDiffuse.g, material.colDiffuse.b, material.colDiffuse.a); |
|
|
|
|
|
glDrawArrays(GL_TRIANGLES, 0, mesh.vertexCount); |
|
|
|
|
|
rlPopMatrix(); |
|
|
|
|
|
|
|
|
glDisableClientState(GL_VERTEX_ARRAY); // Disable vertex array |
|
|
|
|
|
glDisableClientState(GL_TEXTURE_COORD_ARRAY); // Disable texture coords array |
|
|
|
|
|
glDisableClientState(GL_NORMAL_ARRAY); // Disable normals array |
|
|
|
|
|
|
|
|
glDisableClientState(GL_VERTEX_ARRAY); // Disable vertex array |
|
|
|
|
|
glDisableClientState(GL_TEXTURE_COORD_ARRAY); // Disable texture coords array |
|
|
|
|
|
glDisableClientState(GL_NORMAL_ARRAY); // Disable normals array |
|
|
|
|
|
|
|
|
glDisable(GL_TEXTURE_2D); |
|
|
glDisable(GL_TEXTURE_2D); |
|
|
glBindTexture(GL_TEXTURE_2D, 0); |
|
|
glBindTexture(GL_TEXTURE_2D, 0); |
|
@ -1865,6 +1867,20 @@ void *rlglReadTexturePixels(Texture2D texture) |
|
|
// NOTE: Those functions are exposed directly to the user in raylib.h |
|
|
// NOTE: Those functions are exposed directly to the user in raylib.h |
|
|
//---------------------------------------------------------------------------------- |
|
|
//---------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
// Get default internal texture (white texture) |
|
|
|
|
|
Texture2D GetDefaultTexture(void) |
|
|
|
|
|
{ |
|
|
|
|
|
Texture2D texture; |
|
|
|
|
|
|
|
|
|
|
|
texture.id = whiteTexture; |
|
|
|
|
|
texture.width = 1; |
|
|
|
|
|
texture.height = 1; |
|
|
|
|
|
texture.mipmaps = 1; |
|
|
|
|
|
texture.format = UNCOMPRESSED_R8G8B8A8; |
|
|
|
|
|
|
|
|
|
|
|
return texture; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Load a custom shader and bind default locations |
|
|
// Load a custom shader and bind default locations |
|
|
Shader LoadShader(char *vsFileName, char *fsFileName) |
|
|
Shader LoadShader(char *vsFileName, char *fsFileName) |
|
|
{ |
|
|
{ |
|
@ -1930,7 +1946,12 @@ void SetDefaultShader(void) |
|
|
// Get default shader |
|
|
// Get default shader |
|
|
Shader GetDefaultShader(void) |
|
|
Shader GetDefaultShader(void) |
|
|
{ |
|
|
{ |
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
return defaultShader; |
|
|
return defaultShader; |
|
|
|
|
|
#else |
|
|
|
|
|
Shader shader = { 0 }; |
|
|
|
|
|
return shader; |
|
|
|
|
|
#endif |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Get shader uniform location |
|
|
// Get shader uniform location |
|
@ -2050,19 +2071,6 @@ static void LoadCompressedTexture(unsigned char *data, int width, int height, in |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Texture2D GetDefaultTexture(void) |
|
|
|
|
|
{ |
|
|
|
|
|
Texture2D texture; |
|
|
|
|
|
|
|
|
|
|
|
texture.id = whiteTexture; |
|
|
|
|
|
texture.width = 1; |
|
|
|
|
|
texture.height = 1; |
|
|
|
|
|
texture.mipmaps = 1; |
|
|
|
|
|
texture.format = UNCOMPRESSED_R8G8B8A8; |
|
|
|
|
|
|
|
|
|
|
|
return texture; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Load custom shader strings and return program id |
|
|
// Load custom shader strings and return program id |
|
|
static unsigned int LoadShaderProgram(char *vShaderStr, char *fShaderStr) |
|
|
static unsigned int LoadShaderProgram(char *vShaderStr, char *fShaderStr) |
|
|
{ |
|
|
{ |
|
|