[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16366] trunk/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Sep 4 22:51:28 CEST 2008


Revision: 16366
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16366
Author:   blendix
Date:     2008-09-04 22:51:28 +0200 (Thu, 04 Sep 2008)

Log Message:
-----------

Merge of first part of changes from the apricot branch, especially
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:

* GLSL support in the viewport and game engine, enable in the game
  menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
  gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
  storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.

* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
  An extra texture slot shows up once the last slot is used.

* Memory limit for undo, not enabled by default yet because it
  needs the .B.blend to be changed.
* Multiple undo for image painting.

* An offset for dupligroups, so not all objects in a group have to
  be at the origin.

Modified Paths:
--------------
    trunk/blender/blenderplayer/CMakeLists.txt
    trunk/blender/config/darwin-config.py
    trunk/blender/extern/glew/SConscript
    trunk/blender/extern/glew/include/GL/glew.h
    trunk/blender/extern/glew/src/glew.c
    trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
    trunk/blender/intern/guardedalloc/intern/mallocn.c
    trunk/blender/intern/memutil/MEM_Allocator.h
    trunk/blender/intern/memutil/MEM_CacheLimiter.h
    trunk/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
    trunk/blender/intern/moto/include/GEN_Map.h
    trunk/blender/intern/moto/include/MT_Matrix4x4.h
    trunk/blender/intern/moto/include/MT_Matrix4x4.inl
    trunk/blender/release/scripts/sysinfo.py
    trunk/blender/source/Makefile
    trunk/blender/source/blender/CMakeLists.txt
    trunk/blender/source/blender/Makefile
    trunk/blender/source/blender/SConscript
    trunk/blender/source/blender/blenkernel/BKE_DerivedMesh.h
    trunk/blender/source/blender/blenkernel/BKE_bad_level_calls.h
    trunk/blender/source/blender/blenkernel/BKE_colortools.h
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/blenkernel/BKE_mesh.h
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/BKE_texture.h
    trunk/blender/source/blender/blenkernel/BKE_utildefines.h
    trunk/blender/source/blender/blenkernel/CMakeLists.txt
    trunk/blender/source/blender/blenkernel/SConscript
    trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
    trunk/blender/source/blender/blenkernel/intern/Makefile
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/colortools.c
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/blenkernel/intern/material.c
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/blenkernel/intern/texture.c
    trunk/blender/source/blender/blenlib/BLI_arithb.h
    trunk/blender/source/blender/blenlib/BLI_blenlib.h
    trunk/blender/source/blender/blenlib/intern/arithb.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/include/BDR_drawmesh.h
    trunk/blender/source/blender/include/BDR_drawobject.h
    trunk/blender/source/blender/include/BDR_imagepaint.h
    trunk/blender/source/blender/include/BIF_gl.h
    trunk/blender/source/blender/include/BIF_meshtools.h
    trunk/blender/source/blender/include/BSE_drawview.h
    trunk/blender/source/blender/makesdna/DNA_brush_types.h
    trunk/blender/source/blender/makesdna/DNA_group_types.h
    trunk/blender/source/blender/makesdna/DNA_image_types.h
    trunk/blender/source/blender/makesdna/DNA_ipo_types.h
    trunk/blender/source/blender/makesdna/DNA_lamp_types.h
    trunk/blender/source/blender/makesdna/DNA_material_types.h
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/makesdna/DNA_world_types.h
    trunk/blender/source/blender/nodes/CMakeLists.txt
    trunk/blender/source/blender/nodes/SConscript
    trunk/blender/source/blender/nodes/intern/CMP_nodes/Makefile
    trunk/blender/source/blender/nodes/intern/Makefile
    trunk/blender/source/blender/nodes/intern/SHD_nodes/Makefile
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_curves.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_invert.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_math.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_normal.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_output.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_value.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
    trunk/blender/source/blender/nodes/intern/SHD_util.h
    trunk/blender/source/blender/python/CMakeLists.txt
    trunk/blender/source/blender/python/SConscript
    trunk/blender/source/blender/python/api2_2x/Blender.c
    trunk/blender/source/blender/python/api2_2x/Group.c
    trunk/blender/source/blender/python/api2_2x/Image.c
    trunk/blender/source/blender/python/api2_2x/Lamp.c
    trunk/blender/source/blender/python/api2_2x/MTex.c
    trunk/blender/source/blender/python/api2_2x/Makefile
    trunk/blender/source/blender/python/api2_2x/Material.c
    trunk/blender/source/blender/python/api2_2x/doc/Group.py
    trunk/blender/source/blender/radiosity/CMakeLists.txt
    trunk/blender/source/blender/radiosity/SConscript
    trunk/blender/source/blender/radiosity/intern/source/Makefile
    trunk/blender/source/blender/render/intern/include/render_types.h
    trunk/blender/source/blender/render/intern/source/pipeline.c
    trunk/blender/source/blender/render/intern/source/rayshade.c
    trunk/blender/source/blender/render/intern/source/shadbuf.c
    trunk/blender/source/blender/render/intern/source/shadeoutput.c
    trunk/blender/source/blender/render/intern/source/zbuf.c
    trunk/blender/source/blender/src/CMakeLists.txt
    trunk/blender/source/blender/src/Makefile
    trunk/blender/source/blender/src/SConscript
    trunk/blender/source/blender/src/buttons_object.c
    trunk/blender/source/blender/src/buttons_shading.c
    trunk/blender/source/blender/src/drawarmature.c
    trunk/blender/source/blender/src/drawmesh.c
    trunk/blender/source/blender/src/drawobject.c
    trunk/blender/source/blender/src/drawview.c
    trunk/blender/source/blender/src/editdeform.c
    trunk/blender/source/blender/src/editface.c
    trunk/blender/source/blender/src/editipo_lib.c
    trunk/blender/source/blender/src/editlattice.c
    trunk/blender/source/blender/src/editmode_undo.c
    trunk/blender/source/blender/src/editview.c
    trunk/blender/source/blender/src/header_image.c
    trunk/blender/source/blender/src/header_info.c
    trunk/blender/source/blender/src/header_view3d.c
    trunk/blender/source/blender/src/headerbuttons.c
    trunk/blender/source/blender/src/imagepaint.c
    trunk/blender/source/blender/src/meshtools.c
    trunk/blender/source/blender/src/playanim.c
    trunk/blender/source/blender/src/previewrender.c
    trunk/blender/source/blender/src/renderwin.c
    trunk/blender/source/blender/src/sculptmode.c
    trunk/blender/source/blender/src/sequence.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/toets.c
    trunk/blender/source/blender/src/usiblender.c
    trunk/blender/source/blender/src/verse_image.c
    trunk/blender/source/creator/CMakeLists.txt
    trunk/blender/source/creator/Makefile
    trunk/blender/source/creator/SConscript
    trunk/blender/source/creator/creator.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/BlenderRoutines/CMakeLists.txt
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.h
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
    trunk/blender/source/gameengine/BlenderRoutines/Makefile
    trunk/blender/source/gameengine/BlenderRoutines/SConscript
    trunk/blender/source/gameengine/Converter/BL_ArmatureObject.cpp
    trunk/blender/source/gameengine/Converter/BL_ArmatureObject.h
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Converter/BL_DeformableGameObject.cpp
    trunk/blender/source/gameengine/Converter/BL_MeshDeformer.cpp
    trunk/blender/source/gameengine/Converter/BL_MeshDeformer.h
    trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.cpp
    trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp
    trunk/blender/source/gameengine/Converter/BL_ShapeDeformer.h
    trunk/blender/source/gameengine/Converter/BL_SkinDeformer.cpp
    trunk/blender/source/gameengine/Converter/BL_SkinDeformer.h
    trunk/blender/source/gameengine/Converter/BL_SkinMeshObject.cpp
    trunk/blender/source/gameengine/Converter/BL_SkinMeshObject.h
    trunk/blender/source/gameengine/Converter/CMakeLists.txt
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
    trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
    trunk/blender/source/gameengine/Converter/Makefile
    trunk/blender/source/gameengine/Converter/SConscript
    trunk/blender/source/gameengine/GamePlayer/ActiveX/BlenderPlayerCtl.cpp
    trunk/blender/source/gameengine/GamePlayer/common/CMakeLists.txt
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.h
    trunk/blender/source/gameengine/GamePlayer/common/Makefile
    trunk/blender/source/gameengine/GamePlayer/common/SConscript
    trunk/blender/source/gameengine/GamePlayer/common/unix/GPU_PolygonMaterial.h
    trunk/blender/source/gameengine/GamePlayer/ghost/CMakeLists.txt
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.h
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/Makefile
    trunk/blender/source/gameengine/GamePlayer/ghost/SConscript
    trunk/blender/source/gameengine/GamePlayer/netscape/src/ketsji/KXH_ketsji_hooks.cpp
    trunk/blender/source/gameengine/Ketsji/BL_BlenderShader.cpp
    trunk/blender/source/gameengine/Ketsji/BL_BlenderShader.h
    trunk/blender/source/gameengine/Ketsji/BL_Material.h
    trunk/blender/source/gameengine/Ketsji/BL_Shader.cpp
    trunk/blender/source/gameengine/Ketsji/BL_Shader.h
    trunk/blender/source/gameengine/Ketsji/CMakeLists.txt
    trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
    trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h
    trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
    trunk/blender/source/gameengine/Ketsji/KX_ISceneConverter.h
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
    trunk/blender/source/gameengine/Ketsji/KX_Light.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Light.h
    trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.h
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.h
    trunk/blender/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.h
    trunk/blender/source/gameengine/Ketsji/KX_VertexProxy.cpp
    trunk/blender/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
    trunk/blender/source/gameengine/Ketsji/Makefile
    trunk/blender/source/gameengine/Ketsji/SConscript
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
    trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.h
    trunk/blender/source/gameengine/PyDoc/GameLogic.py
    trunk/blender/source/gameengine/PyDoc/Rasterizer.py
    trunk/blender/source/gameengine/Rasterizer/Makefile
    trunk/blender/source/gameengine/Rasterizer/RAS_BucketManager.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_BucketManager.h
    trunk/blender/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
    trunk/blender/source/gameengine/Rasterizer/RAS_IRasterizer.h
    trunk/blender/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_IRenderTools.h
    trunk/blender/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_MaterialBucket.h
    trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.h
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/Makefile
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
    trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.h
    trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.h
    trunk/blender/source/gameengine/Rasterizer/SConscript
    trunk/blender/source/kernel/gen_system/GEN_Map.h
    trunk/blender/source/nan_definitions.mk
    trunk/blender/tools/btools.py

Added Paths:
-----------
    trunk/blender/source/blender/gpu/
    trunk/blender/source/blender/gpu/CMakeLists.txt
    trunk/blender/source/blender/gpu/GPU_draw.h
    trunk/blender/source/blender/gpu/GPU_extensions.h
    trunk/blender/source/blender/gpu/GPU_material.h
    trunk/blender/source/blender/gpu/Makefile
    trunk/blender/source/blender/gpu/SConscript
    trunk/blender/source/blender/gpu/intern/
    trunk/blender/source/blender/gpu/intern/Makefile
    trunk/blender/source/blender/gpu/intern/gpu_codegen.c
    trunk/blender/source/blender/gpu/intern/gpu_codegen.h
    trunk/blender/source/blender/gpu/intern/gpu_draw.c
    trunk/blender/source/blender/gpu/intern/gpu_extensions.c
    trunk/blender/source/blender/gpu/intern/gpu_material.c
    trunk/blender/source/blender/gpu/intern/gpu_shader_material.glsl
    trunk/blender/source/blender/gpu/intern/gpu_shader_material.glsl.c
    trunk/blender/source/blender/gpu/intern/gpu_shader_vertex.glsl
    trunk/blender/source/blender/gpu/intern/gpu_shader_vertex.glsl.c

Modified: trunk/blender/blenderplayer/CMakeLists.txt
===================================================================
--- trunk/blender/blenderplayer/CMakeLists.txt	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/blenderplayer/CMakeLists.txt	2008-09-04 20:51:28 UTC (rev 16366)
@@ -90,6 +90,7 @@
     bf_soundsystem 
     bf_kernel 
     bf_nodes
+	bf_gpu
     bf_imbuf
     bf_avi 
     kx_network 

Modified: trunk/blender/config/darwin-config.py
===================================================================
--- trunk/blender/config/darwin-config.py	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/config/darwin-config.py	2008-09-04 20:51:28 UTC (rev 16366)
@@ -143,7 +143,6 @@
 
 WITH_BF_GAMEENGINE='true'
 WITH_BF_PLAYER='true'
-WITH_BF_GLEXT= '1'
 
 WITH_BF_ODE = 'false'
 BF_ODE = LIBDIR + '/ode'

Modified: trunk/blender/extern/glew/SConscript
===================================================================
--- trunk/blender/extern/glew/SConscript	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/extern/glew/SConscript	2008-09-04 20:51:28 UTC (rev 16366)
@@ -9,4 +9,4 @@
 defs = ''
 incs = 'include'
 
-env.BlenderLib ( 'extern_glew', sources, Split(incs), Split(defs), libtype=['intern', 'player'], priority=[25, 50])
+env.BlenderLib ( 'extern_glew', sources, Split(incs), Split(defs), libtype=['blender', 'player'], priority=[50, 50])

Modified: trunk/blender/extern/glew/include/GL/glew.h
===================================================================
--- trunk/blender/extern/glew/include/GL/glew.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/extern/glew/include/GL/glew.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -58,8 +58,11 @@
 ** version 1.2.1 Specification.
 */
 
-/* added this here for blender, should be moved elsewhere */
+#define BLENDER_CHANGES
+
+#ifdef BLENDER_CHANGES
 #define GLEW_STATIC
+#endif
 
 #ifndef __glew_h__
 #define __glew_h__
@@ -1805,6 +1808,7 @@
 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v);
 typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer);
 
+#ifndef BLENDER_CHANGES
 #define glAttachShader GLEW_GET_FUN(__glewAttachShader)
 #define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation)
 #define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate)
@@ -1898,6 +1902,7 @@
 #define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv)
 #define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv)
 #define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer)
+#endif
 
 #define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0)
 

Modified: trunk/blender/extern/glew/src/glew.c
===================================================================
--- trunk/blender/extern/glew/src/glew.c	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/extern/glew/src/glew.c	2008-09-04 20:51:28 UTC (rev 16366)
@@ -1836,6 +1836,7 @@
 {
   GLboolean r = GL_FALSE;
 
+#ifndef BLENDER_CHANGES
   r = ((glAttachShader = (PFNGLATTACHSHADERPROC)glewGetProcAddress((const GLubyte*)"glAttachShader")) == NULL) || r;
   r = ((glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindAttribLocation")) == NULL) || r;
   r = ((glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparate")) == NULL) || r;
@@ -1929,6 +1930,7 @@
   r = ((glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4uiv")) == NULL) || r;
   r = ((glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4usv")) == NULL) || r;
   r = ((glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointer")) == NULL) || r;
+#endif
 
   return r;
 }

Modified: trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
===================================================================
--- trunk/blender/intern/guardedalloc/MEM_guardedalloc.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/guardedalloc/MEM_guardedalloc.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -58,8 +58,8 @@
 #ifndef MEM_MALLOCN_H
 #define MEM_MALLOCN_H
 
-/* Needed for FILE* */
-#include "stdio.h"
+#include "stdio.h" /* needed for FILE* */
+#include "BLO_sys_types.h" /* needed for uintptr_t */
 
 #ifdef __cplusplus
 extern "C" {
@@ -123,6 +123,12 @@
 	/** Attempt to enforce OSX (or other OS's) to have malloc and stack nonzero */
 	void MEM_set_memory_debug(void);
 
+	/* Memory usage stats
+	 * - MEM_get_memory_in_use is all memory
+	 * - MEM_get_mapped_memory_in_use is a subset of all memory */
+	uintptr_t MEM_get_memory_in_use(void);
+	uintptr_t MEM_get_mapped_memory_in_use(void);
+	int MEM_get_memory_blocks_in_use(void);
 
 #ifdef __cplusplus
 }

Modified: trunk/blender/intern/guardedalloc/intern/mallocn.c
===================================================================
--- trunk/blender/intern/guardedalloc/intern/mallocn.c	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/guardedalloc/intern/mallocn.c	2008-09-04 20:51:28 UTC (rev 16366)
@@ -49,8 +49,6 @@
 
 #include "MEM_guardedalloc.h"
 
-#include "BLO_sys_types.h" // needed for intptr_t
-
 /* --------------------------------------------------------------------- */
 /* Data definition                                                       */
 /* --------------------------------------------------------------------- */
@@ -113,8 +111,8 @@
 /* --------------------------------------------------------------------- */
 	
 
-volatile int totblock= 0;
-volatile uintptr_t mem_in_use= 0, mmap_in_use= 0;
+static volatile int totblock= 0;
+static volatile uintptr_t mem_in_use= 0, mmap_in_use= 0;
 
 static volatile struct localListBase _membase;
 static volatile struct localListBase *membase = &_membase;
@@ -698,4 +696,19 @@
 	return(name);
 }
 
+uintptr_t MEM_get_memory_in_use(void)
+{
+	return mem_in_use;
+}
+
+uintptr_t MEM_get_mapped_memory_in_use(void)
+{
+	return mmap_in_use;
+}
+
+int MEM_get_memory_blocks_in_use(void)
+{
+	return totblock;
+}
+
 /* eof */

Modified: trunk/blender/intern/memutil/MEM_Allocator.h
===================================================================
--- trunk/blender/intern/memutil/MEM_Allocator.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/memutil/MEM_Allocator.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -25,6 +25,7 @@
 #define __MEM_Allocator_h_included__ 1
 
 #include "guardedalloc/MEM_guardedalloc.h"
+#include "guardedalloc/BLO_sys_types.h"
 
 #ifdef _MSC_VER
 #if _MSC_VER < 1300 // 1200 == VC++ 6.0 according to boost

Modified: trunk/blender/intern/memutil/MEM_CacheLimiter.h
===================================================================
--- trunk/blender/intern/memutil/MEM_CacheLimiter.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/memutil/MEM_CacheLimiter.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -61,11 +61,8 @@
 
 #ifndef __MEM_cache_limiter_c_api_h_included__
 extern "C" {
-	extern void MEM_CacheLimiter_set_maximum(int m);
-	extern int MEM_CacheLimiter_get_maximum();
-        // this is rather _ugly_!
-        extern int mem_in_use;
-	extern int mmap_in_use;
+	extern void MEM_CacheLimiter_set_maximum(intptr_t m);
+	extern intptr_t MEM_CacheLimiter_get_maximum();
 };
 #endif
 
@@ -141,7 +138,10 @@
 		delete handle;
 	}
 	void enforce_limits() {
-		int max = MEM_CacheLimiter_get_maximum();
+		intptr_t max = MEM_CacheLimiter_get_maximum();
+		intptr_t mem_in_use= MEM_get_memory_in_use();
+		intptr_t mmap_in_use= MEM_get_mapped_memory_in_use();
+
 		if (max == 0) {
 			return;
 		}

Modified: trunk/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
===================================================================
--- trunk/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp	2008-09-04 20:51:28 UTC (rev 16366)
@@ -27,18 +27,18 @@
 #include "MEM_CacheLimiter.h"
 #include "MEM_CacheLimiterC-Api.h"
 
-static int & get_max() 
+static intptr_t & get_max() 
 {
-	static int m = 32*1024*1024;
+	static intptr_t m = 32*1024*1024;
 	return m;
 }
 
-void MEM_CacheLimiter_set_maximum(int m)
+void MEM_CacheLimiter_set_maximum(intptr_t m)
 {
 	get_max() = m;
 }
 
-int MEM_CacheLimiter_get_maximum()
+intptr_t MEM_CacheLimiter_get_maximum()
 {
 	return get_max();
 }

Modified: trunk/blender/intern/moto/include/GEN_Map.h
===================================================================
--- trunk/blender/intern/moto/include/GEN_Map.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/moto/include/GEN_Map.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -50,6 +50,19 @@
             m_buckets[i] = 0;
         }
     }
+
+	GEN_Map(const GEN_Map& map)
+	{
+		m_num_buckets = map.m_num_buckets;
+		m_buckets = new Entry *[m_num_buckets];
+
+		for (int i = 0; i < m_num_buckets; ++i) {
+			m_buckets[i] = 0;
+
+			for(Entry *entry = map.m_buckets[i]; entry; entry=entry->m_next)
+				insert(entry->m_key, entry->m_value);
+		}
+	}
     
     int size() { 
         int count=0;

Modified: trunk/blender/intern/moto/include/MT_Matrix4x4.h
===================================================================
--- trunk/blender/intern/moto/include/MT_Matrix4x4.h	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/moto/include/MT_Matrix4x4.h	2008-09-04 20:51:28 UTC (rev 16366)
@@ -212,6 +212,7 @@
 	MT_Matrix4x4 transposed() const; 
 	void         transpose();
 
+	MT_Matrix4x4 inverse() const;
 	void         invert();
   
 protected:

Modified: trunk/blender/intern/moto/include/MT_Matrix4x4.inl
===================================================================
--- trunk/blender/intern/moto/include/MT_Matrix4x4.inl	2008-09-04 16:40:20 UTC (rev 16365)
+++ trunk/blender/intern/moto/include/MT_Matrix4x4.inl	2008-09-04 20:51:28 UTC (rev 16366)
@@ -52,15 +52,15 @@
 		}
 }
 
-/* We do things slightly different here, because the invert() modifies
- * the buffer itself. This makes it impossible to make this op right
- * away. Like other, still missing facilities, I will repair this
- * later. */
-/* GEN_INLINE T_Matrix4x4 MT_Matrix4x4::inverse() const */
-/*  { */
-/*  } */
+GEN_INLINE MT_Matrix4x4 MT_Matrix4x4::inverse() const
+{
+	MT_Matrix4x4 invmat = *this;
 
+	invmat.invert();
 
+	return invmat;
+}
+
 GEN_INLINE MT_Matrix4x4& MT_Matrix4x4::operator*=(const MT_Matrix4x4& m)
 {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list