File: 3321.ispc

package info (click to toggle)
ispc 1.28.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 97,620 kB
  • sloc: cpp: 77,067; python: 8,303; yacc: 3,337; lex: 1,126; ansic: 631; sh: 475; makefile: 17
file content (25 lines) | stat: -rw-r--r-- 569 bytes parent folder | download
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
// RUN: %{ispc} --target=host --nowrap --nostdlib %s -o %t.o 2>&1 | FileCheck %s --allow-empty

// CHECK-NOT: Error: Assertion failed
struct FloatVec3 {
    float coords[3];
};

struct Triangle {
    FloatVec3 point[3];
};

struct MeshObject {
    unsigned int numTris;
    Triangle *triangles;
};

bool intersects_triangle_ispc(Triangle triangle);

export void intersects_mesh(uniform MeshObject const &MO, uniform float tOut[]) {
    foreach (i = 0...MO.numTris) {
        if (!intersects_triangle_ispc(MO.triangles[i])) {
            tOut[i] = -1;
        }
    }
}