123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /*
- * Copyright (c) 2006-2009 Erin Catto http://www.box2d.org
- * Copyright (c) 2013 Google, Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- */
- #include <Box2D/Common/b2Settings.h>
- #include <stdio.h>
- #include <stdarg.h>
- #include <stdlib.h>
- b2Version b2_version = {2, 3, 0};
- #define LIQUIDFUN_VERSION_MAJOR 1
- #define LIQUIDFUN_VERSION_MINOR 1
- #define LIQUIDFUN_VERSION_REVISION 0
- #define LIQUIDFUN_STRING_EXPAND(X) #X
- #define LIQUIDFUN_STRING(X) LIQUIDFUN_STRING_EXPAND(X)
- static void* b2AllocDefault(int32 size, void* callbackData);
- static void b2FreeDefault(void* mem, void* callbackData);
- const b2Version b2_liquidFunVersion = {
- LIQUIDFUN_VERSION_MAJOR, LIQUIDFUN_VERSION_MINOR,
- LIQUIDFUN_VERSION_REVISION,
- };
- const char *b2_liquidFunVersionString =
- "LiquidFun "
- LIQUIDFUN_STRING(LIQUIDFUN_VERSION_MAJOR) "."
- LIQUIDFUN_STRING(LIQUIDFUN_VERSION_MINOR) "."
- LIQUIDFUN_STRING(LIQUIDFUN_VERSION_REVISION);
- static int32 b2_numAllocs = 0;
- // Initialize default allocator.
- static b2AllocFunction b2_allocCallback = b2AllocDefault;
- static b2FreeFunction b2_freeCallback = b2FreeDefault;
- static void *b2_callbackData = NULL;
- // Default implementation of b2AllocFunction.
- static void* b2AllocDefault(int32 size, void* callbackData)
- {
- B2_NOT_USED(callbackData);
- return malloc(size);
- }
- // Default implementation of b2FreeFunction.
- static void b2FreeDefault(void* mem, void* callbackData)
- {
- B2_NOT_USED(callbackData);
- free(mem);
- }
- /// Set alloc and free callbacks to override the default behavior of using
- /// malloc() and free() for dynamic memory allocation.
- /// Set allocCallback and freeCallback to NULL to restore the default
- /// allocator (malloc / free).
- void b2SetAllocFreeCallbacks(b2AllocFunction allocCallback,
- b2FreeFunction freeCallback, void* callbackData)
- {
- b2Assert((allocCallback && freeCallback) ||
- (!allocCallback && !freeCallback));
- b2Assert(0 == b2GetNumAllocs());
- if (allocCallback && freeCallback)
- {
- b2_allocCallback = allocCallback;
- b2_freeCallback = freeCallback;
- b2_callbackData = callbackData;
- }
- else
- {
- b2_allocCallback = b2AllocDefault;
- b2_freeCallback = b2FreeDefault;
- b2_callbackData = NULL;
- }
- }
- // Memory allocators. Modify these to use your own allocator.
- void* b2Alloc(int32 size)
- {
- b2_numAllocs++;
- return b2_allocCallback(size, b2_callbackData);
- }
- void b2Free(void* mem)
- {
- b2_numAllocs--;
- b2_freeCallback(mem, b2_callbackData);
- }
- void b2SetNumAllocs(const int32 numAllocs)
- {
- b2_numAllocs = numAllocs;
- }
- int32 b2GetNumAllocs()
- {
- return b2_numAllocs;
- }
- // You can modify this to use your logging facility.
- void b2Log(const char* string, ...)
- {
- #if DEBUG
- va_list args;
- va_start(args, string);
- vprintf(string, args);
- va_end(args);
- #else
- B2_NOT_USED(string);
- #endif
- }
- class Validator
- {
- public:
- Validator()
- {
- b2Assert(sizeof(uint64)==8);
- b2Assert(sizeof(int64)==8);
- }
- } validate;
|