summaryrefslogtreecommitdiffstats
path: root/src/com/mbien/opencl/demos/joglinterop/JoglInterop.cl
blob: 02356b2a8e0724f740676b0dc9f09e5b0169dd21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
 * Simple kernel to modify vertex positions in sine wave pattern
 */
__kernel void sineWave(__global float4 * pos, unsigned int width, unsigned int height, float time) {

    unsigned int x = get_global_id(0);
    unsigned int y = get_global_id(1);

    // calculate uv coordinates
    float u = x / (float) width;
    float v = y / (float) height;

    u = u*2.0f - 1.0f;
    v = v*2.0f - 1.0f;

    // calculate simple sine wave pattern
    float freq = 4.0f;
    float w = sin(u*freq + time) * cos(v*freq + time) * 0.5f;

    // write output vertex
    pos[y*width+x] = (float4)(u, w, v, 1.0f);
}