aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2019-04-01 18:22:56 +0200
committerRay <raysan5@gmail.com>2019-04-01 18:22:56 +0200
commitf1cbdd6b3af5dc51cef306cbbc4619c7b6ed548a (patch)
treed54509bdda0022fab10ca20560efb76c314d50b0 /src
parent86212e84628e589701c7934affd83685ff3e8ae9 (diff)
downloadraylib-f1cbdd6b3af5dc51cef306cbbc4619c7b6ed548a.tar.gz
raylib-f1cbdd6b3af5dc51cef306cbbc4619c7b6ed548a.zip
Corrected some issues
- Support compiling for OpenGL 1.1 - Free meshes/materials memory after usage...
Diffstat (limited to 'src')
-rw-r--r--src/models.c3
-rw-r--r--src/rlgl.h19
2 files changed, 19 insertions, 3 deletions
diff --git a/src/models.c b/src/models.c
index 9fb08d82..7c266843 100644
--- a/src/models.c
+++ b/src/models.c
@@ -682,6 +682,9 @@ void UnloadModel(Model model)
{
for (int i = 0; i < model.meshCount; i++) UnloadMesh(&model.meshes[i]);
for (int i = 0; i < model.materialCount; i++) UnloadMaterial(model.materials[i]);
+
+ free(model.meshes);
+ free(model.materials);
free(model.meshMaterial);
TraceLog(LOG_INFO, "Unloaded model data from RAM and VRAM");
diff --git a/src/rlgl.h b/src/rlgl.h
index 49ab1de5..9e9394db 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -2036,6 +2036,8 @@ unsigned int rlLoadTexture(void *data, int width, int height, int format, int mi
unsigned int rlLoadTextureDepth(int width, int height, int bits, bool useRenderBuffer)
{
unsigned int id = 0;
+
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
unsigned int glInternalFormat = GL_DEPTH_COMPONENT16;
if ((bits != 16) && (bits != 24) && (bits != 32)) bits = 16;
@@ -2081,6 +2083,7 @@ unsigned int rlLoadTextureDepth(int width, int height, int bits, bool useRenderB
glBindRenderbuffer(GL_RENDERBUFFER, 0);
}
+#endif
return id;
}
@@ -2092,7 +2095,8 @@ unsigned int rlLoadTextureCubemap(void *data, int size, int format)
{
unsigned int cubemapId = 0;
unsigned int dataSize = GetPixelDataSize(size, size, format);
-
+
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glGenTextures(1, &cubemapId);
glBindTexture(GL_TEXTURE_CUBE_MAP, cubemapId);
@@ -2137,6 +2141,7 @@ unsigned int rlLoadTextureCubemap(void *data, int size, int format)
#endif
glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
+#endif
return cubemapId;
}
@@ -2221,9 +2226,9 @@ RenderTexture2D rlLoadRenderTexture(int width, int height, int format, int depth
{
RenderTexture2D target = { 0 };
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
if (useDepthTexture && texDepthSupported) target.depthTexture = true;
-#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
// Create the framebuffer object
glGenFramebuffers(1, &target.id);
glBindFramebuffer(GL_FRAMEBUFFER, target.id);
@@ -2274,6 +2279,7 @@ RenderTexture2D rlLoadRenderTexture(int width, int height, int format, int depth
// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture
void rlRenderTextureAttach(RenderTexture2D target, unsigned int id, int attachType)
{
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glBindFramebuffer(GL_FRAMEBUFFER, target.id);
if (attachType == 0) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0);
@@ -2284,11 +2290,15 @@ void rlRenderTextureAttach(RenderTexture2D target, unsigned int id, int attachTy
}
glBindFramebuffer(GL_FRAMEBUFFER, 0);
+#endif
}
// Verify render texture is complete
bool rlRenderTextureComplete(RenderTexture target)
{
+ bool result = false;
+
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
glBindFramebuffer(GL_FRAMEBUFFER, target.id);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
@@ -2309,7 +2319,10 @@ bool rlRenderTextureComplete(RenderTexture target)
glBindFramebuffer(GL_FRAMEBUFFER, 0);
- return (status == GL_FRAMEBUFFER_COMPLETE);
+ result = (status == GL_FRAMEBUFFER_COMPLETE);
+#endif
+
+ return result;
}
// Generate mipmap data for selected texture