[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50028] branches/ge_harmony/source/blender /gpu/intern/gpu_extensions.c: Fixing up the uniform map on GPU_shaders, and trying to avoid memory problems.
Daniel Stokes
kupomail at gmail.com
Sun Aug 19 23:28:42 CEST 2012
Revision: 50028
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50028
Author: kupoman
Date: 2012-08-19 21:28:42 +0000 (Sun, 19 Aug 2012)
Log Message:
-----------
Fixing up the uniform map on GPU_shaders, and trying to avoid memory problems.
Modified Paths:
--------------
branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2012-08-19 20:45:34 UTC (rev 50027)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_extensions.c 2012-08-19 21:28:42 UTC (rev 50028)
@@ -1276,7 +1276,10 @@
glDeleteObjectARB(shader->fragment);
if (shader->object)
glDeleteObjectARB(shader->object);
- BLI_ghash_free(shader->uniforms, NULL, NULL);
+ if (shader->uniforms) {
+ BLI_ghash_free(shader->uniforms, (GHashKeyFreeFP)MEM_freeN, NULL);
+ shader->uniforms = NULL;
+ }
MEM_freeN(shader);
}
@@ -1287,8 +1290,10 @@
bind = (int)BLI_ghash_lookup(shader->uniforms, name);
}
else {
- bind = glGetUniformLocationARB(shader->object, name);
- BLI_ghash_insert(shader->uniforms, (void*)name, (void*)bind);
+ char *key = MEM_mallocN(strlen(name)+sizeof(char), "Uniform Key");
+ strcpy(key, name);
+ bind = glGetUniformLocationARB(shader->object, key);
+ BLI_ghash_insert(shader->uniforms, (void*)key, (void*)bind);
}
return bind;
More information about the Bf-blender-cvs
mailing list