/* * function: kernel_wire_frame * * output_y: Y channel image2d_t as write only * output_uv: uv channel image2d_t as write only * wire_frames_coords: coordinates of wire frames * coords_num: number of coordinates to be processed */ __kernel void kernel_wire_frame ( __write_only image2d_t output_y, __write_only image2d_t output_uv, __global uint2 *wire_frames_coords, uint coords_num, float border_y, float border_u, float border_v) { if (coords_num == 0) { return; } int gid = get_global_id (0); if (gid >= coords_num) { return; } uint2 coord = wire_frames_coords [gid]; write_imagef (output_y, (int2)(coord.x / 2, coord.y), (float4)(border_y)); if (coord.y % 2 == 0) { write_imagef (output_uv, (int2)(coord.x / 2, coord.y / 2), (float4)(border_u, border_v, 0.0f, 0.0f)); } }