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

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

0 голосов
/ 04 декабря 2018
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 квадратов в текстуре.

...