-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathparticleSystem.cuh
72 lines (60 loc) · 2.64 KB
/
particleSystem.cuh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Copyright 1993-2013 NVIDIA Corporation. All rights reserved.
*
* Please refer to the NVIDIA end user license agreement (EULA) associated
* with this source code for terms and conditions that govern your use of
* this software. Any use, reproduction, disclosure, or distribution of
* this software and related documentation outside the terms of the EULA
* is strictly prohibited.
*
*/
extern "C"
{
void cudaInit(int argc, char **argv);
void allocateArray(void **devPtr, int size);
void freeArray(void *devPtr);
void threadSync();
void copyArrayFromDevice(void *host, const void *device, struct cudaGraphicsResource **cuda_vbo_resource, int size);
void copyArrayToDevice(void *device, const void *host, int offset, int size);
void registerGLBufferObject(uint vbo, struct cudaGraphicsResource **cuda_vbo_resource);
void unregisterGLBufferObject(struct cudaGraphicsResource *cuda_vbo_resource);
void *mapGLBufferObject(struct cudaGraphicsResource **cuda_vbo_resource);
void unmapGLBufferObject(struct cudaGraphicsResource *cuda_vbo_resource);
void setStates(curandState *m_dStates, uint numParticles);
void setParameters(SimParams *hostParams);
void integrateSystem(float *pos,
float *vel,
float deltaTime,
uint numParticles);
void calcHash(uint *gridParticleHash,
uint *gridParticleIndex,
float *pos,
int numParticles);
void reorderDataAndFindCellStart(uint *cellStart,
uint *cellEnd,
float *sortedPos,
float *sortedVel,
curandState *sortedStates,
float *sortedType,
uint *gridParticleHash,
uint *gridParticleIndex,
float *oldPos,
float *oldVel,
curandState *oldStates,
float *oldType,
uint numParticles,
uint numCells);
void collide(float *newVel,
curandState *newState,
float *newCellType,
float *sortedPos,
float *sortedVel,
curandState *sortedStates,
float *sortedType,
uint *gridParticleIndex,
uint *cellStart,
uint *cellEnd,
uint numParticles,
uint numCells);
void sortParticles(uint *dGridParticleHash, uint *dGridParticleIndex, uint numParticles);
}