summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMatthew Breindel <falcon@lindenlab.com>2010-06-26 12:35:05 -0700
committerMatthew Breindel <falcon@lindenlab.com>2010-06-26 12:35:05 -0700
commit6f2bd694d9a21174648b4e4f76d6d078aa88265f (patch)
tree1ba898756969e97bbe1ffc16c9b28f7ef2fbac61 /indra
parenta043cfbe463e94a5c6e6f0e31e22912b025890c7 (diff)
Fixed mac build (given LL_MESH_ENABLED set to 0).
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llmemory.h20
-rw-r--r--indra/llmath/llvolume.h2
-rw-r--r--indra/newview/llspatialpartition.cpp4
3 files changed, 22 insertions, 4 deletions
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h
index 1c8c91f57e..35935efa88 100644
--- a/indra/llcommon/llmemory.h
+++ b/indra/llcommon/llmemory.h
@@ -34,6 +34,22 @@
#include <stdlib.h>
+// A not necessarily efficient, but general, aligned malloc http://stackoverflow.com/questions/196329/osx-lacks-memalign
+inline void* ll_aligned_malloc( size_t size, int align )
+{
+ void* mem = malloc( size + (align - 1) + sizeof(void*) );
+ char* aligned = ((char*)mem) + sizeof(void*);
+ aligned += align - ((uintptr_t)aligned & (align - 1));
+
+ ((void**)aligned)[-1] = mem;
+ return aligned;
+}
+
+inline void ll_aligned_free( void* ptr )
+{
+ free( ((void**)ptr)[-1] );
+}
+
inline void* ll_aligned_malloc_16(size_t size) // returned hunk MUST be freed with ll_aligned_free_16().
{
#if defined(LL_WINDOWS)
@@ -65,7 +81,7 @@ inline void* ll_aligned_malloc_32(size_t size) // returned hunk MUST be freed wi
#if defined(LL_WINDOWS)
return _mm_malloc(size, 32);
#elif defined(LL_DARWIN)
-# error implement me.
+ return ll_aligned_malloc( size, 32 );
#else
void *rtn;
if (LL_LIKELY(0 == posix_memalign(&rtn, 32, size)))
@@ -80,7 +96,7 @@ inline void ll_aligned_free_32(void *p)
#if defined(LL_WINDOWS)
_mm_free(p);
#elif defined(LL_DARWIN)
-# error implement me.
+ ll_aligned_free( p );
#else
free(p); // posix_memalign() is compatible with heap deallocator
#endif
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index af28337f57..9cce94e6cf 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -41,7 +41,7 @@ class LLVolumeParams;
class LLProfile;
class LLPath;
-#define LL_MESH_ENABLED 1
+#define LL_MESH_ENABLED 0
template <class T> class LLOctreeNode;
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index dc193dc600..9951cf0193 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -2791,6 +2791,7 @@ void renderPhysicsShape(LLDrawable* drawable)
U32 data_mask = LLVertexBuffer::MAP_VERTEX;
+#if LL_MESH_ENABLED
if (volume->isMesh())
{
LLUUID mesh_id = volume->getVolume()->getParams().getSculptID();
@@ -2827,7 +2828,8 @@ void renderPhysicsShape(LLDrawable* drawable)
return;
}
}
-
+#endif //LL_MESH_ENABLED
+
//push faces
glColor3fv(color.mV);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);