kernel void computeTool(constant float4 *color [[buffer(0)]],
constant float2 *point [[buffer(1)]],
texture2d<float,access::read_write> des [[texture(0)]],
uint2 gid [[thread_position_in_grid]])
{
float2 x = (*point);
if ((gid.x > (uint(x.x) - 40) && (gid.x < (uint(x.x) + 40))) &&
(gid.y > (uint(x.y) -40) && gid.y < (uint(x.y) + 40))) {
des.write(float4(1.0,0.5,1.0,0.0), gid);
}
}
В этой функции ядра я передаю float2
тип данных и рисую квадрат вокруг координат точки.Как я могу изменить эту функцию, чтобы принимать массив float2
и рисовать квадраты вокруг пройденных точек?Например, если пройдено 10 точек, я хочу нарисовать 10 квадратов в текстуре.