Я работаю над программой рисования, в которой я рисую интерактивные штрихи через MTKView.Если я задаю для параметра loadAction renderPassDescriptor значение «clear»:
renderPassDescriptor?.colorAttachments[0].loadAction = .clear
В буфере кадров, как и ожидалось, отображается самое последнее содержимое renderCommandEncoder?.drawPrimitives
, в данном случае это передний край мазка кисти.
Если я установлю loadAction в 'load':
renderPassDescriptor?.colorAttachments[0].loadAction = .load
Буфер кадров мигает как сумасшедший и показывает пятнистый след того, что я только что нарисовал.Теперь я понимаю, что перепрошивка, вероятно, вызвана тройной буферизацией MTKView по умолчанию.Таким образом, каждый раз, когда я пишу в currentDrawable, я, вероятно, пишу в один из 3 циклических буферов.Пожалуйста, поправьте меня, если я ошибаюсь.
Мой вопрос: что мне нужно сделать, чтобы нарисовать чистый мазок без мигания буфера кадра, как сейчас?Другими словами, есть ли способ иметь главный буфер, который обновляется с последним содержимым commandEncoder?