Guest User

Untitled

a guest
May 24th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. /// Установка областей чтения семплов
  2. public var centers:[float2] = [float2]() {
  3. didSet{
  4. if centers.count > 0 {
  5.  
  6. // создать MTL-буфер из которого будем читать центры областей в шейдере
  7. centersBuffer = context.device.makeBuffer(length: MemoryLayout<float2>.size * centers.count, options: [])!
  8.  
  9. // создаем MTL-буфер в который будем писать значения цветов в шейдере
  10. colorsBuffer = context.device.makeBuffer(length: MemoryLayout<float3>.size * centers.count, options: .storageModeShared)!
  11.  
  12. // пишем в буфер центры
  13. memcpy(centersBuffer.contents(), centers, centersBuffer.length)
  14.  
  15. // выделяем память массив цветов, в который потом скопируем то что прилетело
  16. // в буфер в шейдере
  17. _colors = [float3](repeating:float3(0), count:centers.count)
  18.  
  19. // определим размерность грида вычислений GPU
  20. patchColorsKernel.preferedDimension = MTLSize(width: centers.count, height: 1, depth: 1)
  21.  
  22. // сбросим фильтр
  23. dirty = true
  24.  
  25. // запустим вычисления на шейдерах
  26. process()
  27. }
  28. }
  29. }
Add Comment
Please, Sign In to add comment