Corrected some issues
Corrected compilation for OpenGL 1.1 Review mesh data uploading to GPU
This commit is contained in:
parent
0dabb2708b
commit
52cd5c6324
45
src/models.c
45
src/models.c
@ -592,6 +592,8 @@ Model LoadModel(const char *fileName)
|
|||||||
model.mesh = LoadMesh(fileName);
|
model.mesh = LoadMesh(fileName);
|
||||||
model.transform = MatrixIdentity();
|
model.transform = MatrixIdentity();
|
||||||
model.material = LoadMaterialDefault();
|
model.material = LoadMaterialDefault();
|
||||||
|
|
||||||
|
rlLoadMesh(&model.mesh, false); // Upload mesh data to GPU (static)
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
@ -620,6 +622,7 @@ void UnloadModel(Model model)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Load mesh from file
|
// Load mesh from file
|
||||||
|
// NOTE: Mesh data loaded in CPU, not GPU
|
||||||
Mesh LoadMesh(const char *fileName)
|
Mesh LoadMesh(const char *fileName)
|
||||||
{
|
{
|
||||||
Mesh mesh = { 0 };
|
Mesh mesh = { 0 };
|
||||||
@ -631,7 +634,6 @@ Mesh LoadMesh(const char *fileName)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (mesh.vertexCount == 0) TraceLog(LOG_WARNING, "Mesh could not be loaded");
|
if (mesh.vertexCount == 0) TraceLog(LOG_WARNING, "Mesh could not be loaded");
|
||||||
else rlLoadMesh(&mesh, false); // Upload vertex data to GPU (static mesh)
|
|
||||||
|
|
||||||
// TODO: Initialize default mesh data in case loading fails, maybe a cube?
|
// TODO: Initialize default mesh data in case loading fails, maybe a cube?
|
||||||
|
|
||||||
@ -648,46 +650,7 @@ void UnloadMesh(Mesh *mesh)
|
|||||||
Mesh GenMeshCube(float width, float height, float length)
|
Mesh GenMeshCube(float width, float height, float length)
|
||||||
{
|
{
|
||||||
Mesh mesh = { 0 };
|
Mesh mesh = { 0 };
|
||||||
/*
|
|
||||||
float vertices[] = {
|
|
||||||
-1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
|
|
||||||
1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
|
|
||||||
1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
|
|
||||||
1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
|
|
||||||
1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
|
|
||||||
-1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
-1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
|
|
||||||
1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f,
|
|
||||||
1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
-1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
1.0f, 1.0f , 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f,
|
|
||||||
1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
|
|
||||||
-1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
float vertices[] = {
|
float vertices[] = {
|
||||||
-width/2, -height/2, length/2,
|
-width/2, -height/2, length/2,
|
||||||
width/2, -height/2, length/2,
|
width/2, -height/2, length/2,
|
||||||
|
71
src/rlgl.c
71
src/rlgl.c
@ -317,7 +317,7 @@ static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays;
|
|||||||
|
|
||||||
// Compressed textures support flags
|
// Compressed textures support flags
|
||||||
static bool texCompDXTSupported = false; // DDS texture compression support
|
static bool texCompDXTSupported = false; // DDS texture compression support
|
||||||
static bool texNPOTSupported = false; // NPOT textures full support
|
static bool texNPOTSupported = false; // NPOT textures full support
|
||||||
static bool texFloatSupported = false; // float textures support (32 bit per channel)
|
static bool texFloatSupported = false; // float textures support (32 bit per channel)
|
||||||
|
|
||||||
static int blendMode = 0; // Track current blending mode
|
static int blendMode = 0; // Track current blending mode
|
||||||
@ -1734,28 +1734,25 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
int drawHint = GL_STATIC_DRAW;
|
int drawHint = GL_STATIC_DRAW;
|
||||||
if (dynamic) drawHint = GL_DYNAMIC_DRAW;
|
if (dynamic) drawHint = GL_DYNAMIC_DRAW;
|
||||||
|
|
||||||
GLuint vaoId = 0; // Vertex Array Objects (VAO)
|
|
||||||
GLuint vboId[7] = { 0 }; // Vertex Buffer Objects (VBOs)
|
|
||||||
|
|
||||||
if (vaoSupported)
|
if (vaoSupported)
|
||||||
{
|
{
|
||||||
// Initialize Quads VAO (Buffer A)
|
// Initialize Quads VAO (Buffer A)
|
||||||
glGenVertexArrays(1, &vaoId);
|
glGenVertexArrays(1, &mesh->vaoId);
|
||||||
glBindVertexArray(vaoId);
|
glBindVertexArray(mesh->vaoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: Attributes must be uploaded considering default locations points
|
// NOTE: Attributes must be uploaded considering default locations points
|
||||||
|
|
||||||
// Enable vertex attributes: position (shader-location = 0)
|
// Enable vertex attributes: position (shader-location = 0)
|
||||||
glGenBuffers(1, &vboId[0]);
|
glGenBuffers(1, &mesh->vboId[0]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[0]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[0]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->vertices, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->vertices, drawHint);
|
||||||
glVertexAttribPointer(0, 3, GL_FLOAT, 0, 0, 0);
|
glVertexAttribPointer(0, 3, GL_FLOAT, 0, 0, 0);
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
|
||||||
// Enable vertex attributes: texcoords (shader-location = 1)
|
// Enable vertex attributes: texcoords (shader-location = 1)
|
||||||
glGenBuffers(1, &vboId[1]);
|
glGenBuffers(1, &mesh->vboId[1]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[1]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[1]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*mesh->vertexCount, mesh->texcoords, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*mesh->vertexCount, mesh->texcoords, drawHint);
|
||||||
glVertexAttribPointer(1, 2, GL_FLOAT, 0, 0, 0);
|
glVertexAttribPointer(1, 2, GL_FLOAT, 0, 0, 0);
|
||||||
glEnableVertexAttribArray(1);
|
glEnableVertexAttribArray(1);
|
||||||
@ -1763,8 +1760,8 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
// Enable vertex attributes: normals (shader-location = 2)
|
// Enable vertex attributes: normals (shader-location = 2)
|
||||||
if (mesh->normals != NULL)
|
if (mesh->normals != NULL)
|
||||||
{
|
{
|
||||||
glGenBuffers(1, &vboId[2]);
|
glGenBuffers(1, &mesh->vboId[2]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[2]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[2]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->normals, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->normals, drawHint);
|
||||||
glVertexAttribPointer(2, 3, GL_FLOAT, 0, 0, 0);
|
glVertexAttribPointer(2, 3, GL_FLOAT, 0, 0, 0);
|
||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
@ -1779,8 +1776,8 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
// Default color vertex attribute (shader-location = 3)
|
// Default color vertex attribute (shader-location = 3)
|
||||||
if (mesh->colors != NULL)
|
if (mesh->colors != NULL)
|
||||||
{
|
{
|
||||||
glGenBuffers(1, &vboId[3]);
|
glGenBuffers(1, &mesh->vboId[3]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[3]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[3]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(unsigned char)*4*mesh->vertexCount, mesh->colors, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(unsigned char)*4*mesh->vertexCount, mesh->colors, drawHint);
|
||||||
glVertexAttribPointer(3, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0);
|
glVertexAttribPointer(3, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0);
|
||||||
glEnableVertexAttribArray(3);
|
glEnableVertexAttribArray(3);
|
||||||
@ -1795,8 +1792,8 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
// Default tangent vertex attribute (shader-location = 4)
|
// Default tangent vertex attribute (shader-location = 4)
|
||||||
if (mesh->tangents != NULL)
|
if (mesh->tangents != NULL)
|
||||||
{
|
{
|
||||||
glGenBuffers(1, &vboId[4]);
|
glGenBuffers(1, &mesh->vboId[4]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[4]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[4]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->tangents, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*mesh->vertexCount, mesh->tangents, drawHint);
|
||||||
glVertexAttribPointer(4, 3, GL_FLOAT, 0, 0, 0);
|
glVertexAttribPointer(4, 3, GL_FLOAT, 0, 0, 0);
|
||||||
glEnableVertexAttribArray(4);
|
glEnableVertexAttribArray(4);
|
||||||
@ -1811,8 +1808,8 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
// Default texcoord2 vertex attribute (shader-location = 5)
|
// Default texcoord2 vertex attribute (shader-location = 5)
|
||||||
if (mesh->texcoords2 != NULL)
|
if (mesh->texcoords2 != NULL)
|
||||||
{
|
{
|
||||||
glGenBuffers(1, &vboId[5]);
|
glGenBuffers(1, &mesh->vboId[5]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vboId[5]);
|
glBindBuffer(GL_ARRAY_BUFFER, mesh->vboId[5]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*mesh->vertexCount, mesh->texcoords2, drawHint);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*mesh->vertexCount, mesh->texcoords2, drawHint);
|
||||||
glVertexAttribPointer(5, 2, GL_FLOAT, 0, 0, 0);
|
glVertexAttribPointer(5, 2, GL_FLOAT, 0, 0, 0);
|
||||||
glEnableVertexAttribArray(5);
|
glEnableVertexAttribArray(5);
|
||||||
@ -1826,26 +1823,14 @@ void rlLoadMesh(Mesh *mesh, bool dynamic)
|
|||||||
|
|
||||||
if (mesh->indices != NULL)
|
if (mesh->indices != NULL)
|
||||||
{
|
{
|
||||||
glGenBuffers(1, &vboId[6]);
|
glGenBuffers(1, &mesh->vboId[6]);
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboId[6]);
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mesh->vboId[6]);
|
||||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short)*mesh->triangleCount*3, mesh->indices, GL_STATIC_DRAW);
|
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short)*mesh->triangleCount*3, mesh->indices, GL_STATIC_DRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
mesh->vboId[0] = vboId[0]; // Vertex position VBO
|
|
||||||
mesh->vboId[1] = vboId[1]; // Texcoords VBO
|
|
||||||
mesh->vboId[2] = vboId[2]; // Normals VBO
|
|
||||||
mesh->vboId[3] = vboId[3]; // Colors VBO
|
|
||||||
mesh->vboId[4] = vboId[4]; // Tangents VBO
|
|
||||||
mesh->vboId[5] = vboId[5]; // Texcoords2 VBO
|
|
||||||
mesh->vboId[6] = vboId[6]; // Indices VBO
|
|
||||||
|
|
||||||
if (vaoSupported)
|
if (vaoSupported)
|
||||||
{
|
{
|
||||||
if (vaoId > 0)
|
if (mesh->vaoId > 0) TraceLog(LOG_INFO, "[VAO ID %i] Mesh uploaded successfully to VRAM (GPU)", mesh->vaoId);
|
||||||
{
|
|
||||||
mesh->vaoId = vaoId;
|
|
||||||
TraceLog(LOG_INFO, "[VAO ID %i] Mesh uploaded successfully to VRAM (GPU)", mesh->vaoId);
|
|
||||||
}
|
|
||||||
else TraceLog(LOG_WARNING, "Mesh could not be uploaded to VRAM (GPU)");
|
else TraceLog(LOG_WARNING, "Mesh could not be uploaded to VRAM (GPU)");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1922,7 +1907,7 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform)
|
|||||||
{
|
{
|
||||||
#if defined(GRAPHICS_API_OPENGL_11)
|
#if defined(GRAPHICS_API_OPENGL_11)
|
||||||
glEnable(GL_TEXTURE_2D);
|
glEnable(GL_TEXTURE_2D);
|
||||||
glBindTexture(GL_TEXTURE_2D, material.maps[MAP_DIFFUSE].tex.id);
|
glBindTexture(GL_TEXTURE_2D, material.maps[MAP_DIFFUSE].texture.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_VERTEX_ARRAY); // Enable vertex array
|
||||||
@ -1937,7 +1922,7 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform)
|
|||||||
|
|
||||||
rlPushMatrix();
|
rlPushMatrix();
|
||||||
rlMultMatrixf(MatrixToFloat(transform));
|
rlMultMatrixf(MatrixToFloat(transform));
|
||||||
rlColor4ub(material.colDiffuse.r, material.colDiffuse.g, material.colDiffuse.b, material.colDiffuse.a);
|
rlColor4ub(material.maps[MAP_DIFFUSE].color.r, material.maps[MAP_DIFFUSE].color.g, material.maps[MAP_DIFFUSE].color.b, material.maps[MAP_DIFFUSE].color.a);
|
||||||
|
|
||||||
if (mesh.indices != NULL) glDrawElements(GL_TRIANGLES, mesh.triangleCount*3, GL_UNSIGNED_SHORT, mesh.indices);
|
if (mesh.indices != NULL) glDrawElements(GL_TRIANGLES, mesh.triangleCount*3, GL_UNSIGNED_SHORT, mesh.indices);
|
||||||
else glDrawArrays(GL_TRIANGLES, 0, mesh.vertexCount);
|
else glDrawArrays(GL_TRIANGLES, 0, mesh.vertexCount);
|
||||||
@ -2533,7 +2518,7 @@ void SetMatrixModelview(Matrix view)
|
|||||||
Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size)
|
Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size)
|
||||||
{
|
{
|
||||||
Texture2D cubemap = { 0 };
|
Texture2D cubemap = { 0 };
|
||||||
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
// Get cubemap shader locations
|
// Get cubemap shader locations
|
||||||
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
||||||
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
||||||
@ -2605,7 +2590,7 @@ Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size)
|
|||||||
|
|
||||||
cubemap.width = size;
|
cubemap.width = size;
|
||||||
cubemap.height = size;
|
cubemap.height = size;
|
||||||
|
#endif
|
||||||
return cubemap;
|
return cubemap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2613,7 +2598,7 @@ Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size)
|
|||||||
Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size)
|
Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size)
|
||||||
{
|
{
|
||||||
Texture2D irradiance = { 0 };
|
Texture2D irradiance = { 0 };
|
||||||
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
// Get irradiance shader locations
|
// Get irradiance shader locations
|
||||||
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
||||||
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
||||||
@ -2680,7 +2665,7 @@ Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size)
|
|||||||
|
|
||||||
irradiance.width = size;
|
irradiance.width = size;
|
||||||
irradiance.height = size;
|
irradiance.height = size;
|
||||||
|
#endif
|
||||||
return irradiance;
|
return irradiance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2688,7 +2673,7 @@ Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size)
|
|||||||
Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size)
|
Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size)
|
||||||
{
|
{
|
||||||
Texture2D prefilter = { 0 };
|
Texture2D prefilter = { 0 };
|
||||||
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
// Get prefilter shader locations
|
// Get prefilter shader locations
|
||||||
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
//int projectionLoc = GetShaderLocation(shader, "projection"); // Already set at SetShaderDefaultLocations()
|
||||||
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
//int viewLoc = GetShaderLocation(shader, "view"); // Already set at SetShaderDefaultLocations()
|
||||||
@ -2772,7 +2757,7 @@ Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size)
|
|||||||
|
|
||||||
prefilter.width = size;
|
prefilter.width = size;
|
||||||
prefilter.height = size;
|
prefilter.height = size;
|
||||||
|
#endif
|
||||||
return prefilter;
|
return prefilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2780,7 +2765,7 @@ Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size)
|
|||||||
Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size)
|
Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size)
|
||||||
{
|
{
|
||||||
Texture2D brdf = { 0 };
|
Texture2D brdf = { 0 };
|
||||||
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
// Generate BRDF convolution texture
|
// Generate BRDF convolution texture
|
||||||
glGenTextures(1, &brdf.id);
|
glGenTextures(1, &brdf.id);
|
||||||
glBindTexture(GL_TEXTURE_2D, brdf.id);
|
glBindTexture(GL_TEXTURE_2D, brdf.id);
|
||||||
@ -2812,7 +2797,7 @@ Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size)
|
|||||||
|
|
||||||
brdf.width = size;
|
brdf.width = size;
|
||||||
brdf.height = size;
|
brdf.height = size;
|
||||||
|
#endif
|
||||||
return brdf;
|
return brdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user