summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesh.h17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/mesh.h b/src/mesh.h
index a2bd207..f466470 100644
--- a/src/mesh.h
+++ b/src/mesh.h
@@ -167,21 +167,20 @@ __global__ void set_colors(unsigned int *colors)
g_colors = colors;
}
-__global__ void color_solids(int nthreads, unsigned int ntriangles, int *solid_id_map, int *solid_ids, unsigned int *solid_colors)
+__global__ void color_solids(int first_triangle, int nthreads,
+ int *solid_id_map,
+ bool *solid_hit,
+ unsigned int *solid_colors)
{
int id = blockIdx.x*blockDim.x + threadIdx.x;
if (id >= nthreads)
return;
- int solid_id = solid_ids[id];
- unsigned int color = solid_colors[id];
-
- for (int i=0; i < ntriangles; i++)
- {
- if (solid_id_map[i] == solid_id)
- g_colors[i] = color;
- }
+ int triangle_id = first_triangle + id;
+ int solid_id = solid_id_map[triangle_id];
+ if (solid_hit[solid_id])
+ g_colors[triangle_id] = solid_colors[solid_id];
}
} // extern "c"