28 lines
1.4 KiB
C
28 lines
1.4 KiB
C
|
// Copyright 2013 Howling Moon Software. All rights reserved.
|
||
|
// See http://chipmunk2d.net/legal.php for more information.
|
||
|
|
||
|
/// cpHastySpace is exclusive to Chipmunk Pro
|
||
|
/// Currently it enables ARM NEON optimizations in the solver, but in the future will include other optimizations such as
|
||
|
/// a multi-threaded solver and multi-threaded collision broadphases.
|
||
|
|
||
|
struct cpHastySpace;
|
||
|
typedef struct cpHastySpace cpHastySpace;
|
||
|
|
||
|
/// Create a new hasty space.
|
||
|
/// On ARM platforms that support NEON, this will enable the vectorized solver.
|
||
|
/// cpHastySpace also supports multiple threads, but runs single threaded by default for determinism.
|
||
|
CP_EXPORT cpSpace *cpHastySpaceNew(void);
|
||
|
CP_EXPORT void cpHastySpaceFree(cpSpace *space);
|
||
|
|
||
|
/// Set the number of threads to use for the solver.
|
||
|
/// Currently Chipmunk is limited to 2 threads as using more generally provides very minimal performance gains.
|
||
|
/// Passing 0 as the thread count on iOS or OS X will cause Chipmunk to automatically detect the number of threads it should use.
|
||
|
/// On other platforms passing 0 for the thread count will set 1 thread.
|
||
|
CP_EXPORT void cpHastySpaceSetThreads(cpSpace *space, unsigned long threads);
|
||
|
|
||
|
/// Returns the number of threads the solver is using to run.
|
||
|
CP_EXPORT unsigned long cpHastySpaceGetThreads(cpSpace *space);
|
||
|
|
||
|
/// When stepping a hasty space, you must use this function.
|
||
|
CP_EXPORT void cpHastySpaceStep(cpSpace *space, cpFloat dt);
|