Функция ядра в металле

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 квадратов в текстуре.

0 ответов

Другие вопросы по тегам