|
@@ -1080,22 +1080,24 @@ void rlglDrawEx(Mesh mesh, Material material, Matrix transform, bool wires)
|
|
|
glBindTexture(GL_TEXTURE_2D, material.texDiffuse.id);
|
|
|
|
|
|
// 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)
|
|
|
|
|
|
- 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);
|
|
|
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
|
|
|
//----------------------------------------------------------------------------------
|
|
|
|
|
|
+// 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
|
|
|
Shader LoadShader(char *vsFileName, char *fsFileName)
|
|
|
{
|
|
@@ -1930,7 +1946,12 @@ void SetDefaultShader(void)
|
|
|
// Get default shader
|
|
|
Shader GetDefaultShader(void)
|
|
|
{
|
|
|
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
|
|
return defaultShader;
|
|
|
+#else
|
|
|
+ Shader shader = { 0 };
|
|
|
+ return shader;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
// 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
|
|
|
static unsigned int LoadShaderProgram(char *vShaderStr, char *fShaderStr)
|
|
|
{
|