annotate trunk/tests/ChipmunkDemos/samples/ChipmunkDemo.d @ 27:b45f0b140d85

osx again ;)
author Extrawurst
date Mon, 13 Dec 2010 21:24:12 +0100
parents ee7fa417266b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
1
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
2 // written in the D programming language
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
3
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
4 module samples.ChipmunkDemo;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
5
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
6 import chipmunkd.chipmunk;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
7
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
8 import drawSpace;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
9
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
10 import core.stdc.stdlib;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
11
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
12 alias cpSpace *function() demoInitFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
13 alias void function(int ticks) demoUpdateFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
14 alias void function()demoDestroyFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
15
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
16 struct chipmunkDemo {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
17 string name;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
18
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
19 const drawSpaceOptions *drawOptions;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
20
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
21 demoInitFunc initFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
22 demoUpdateFunc updateFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
23 demoDestroyFunc destroyFunc;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
24 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
25
24
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
26 // special hack for OSX
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
27 version(OSX) import std.random:uniform;
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
28
16
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
29 static cpFloat
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
30 frand()
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
31 {
24
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
32 version(OSX){
27
b45f0b140d85 osx again ;)
Extrawurst
parents: 24
diff changeset
33 return std.random.uniform(0.0f,1.0f);
24
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
34 }else{
16
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
35 return cast(cpFloat)rand()/cast(cpFloat)RAND_MAX;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
36 }
24
ee7fa417266b osx fix rand_max
Stephan Dilly <stephan@extrawurst.org>
parents: 16
diff changeset
37 }
16
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
38
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
39 enum GRABABLE_MASK_BIT = (1<<31);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
40 enum NOT_GRABABLE_MASK = (~GRABABLE_MASK_BIT);