Я хочу скопировать экран MTKView (или UIView, или NSView). Как получить текущий объект для рисования (или текстуру), фактически используемый для рисования содержимого этого MTKView? Если я использую currentDrawable, я получаю текстуру, которая не актуальна (уже слишком старая).
Как получить текущую текущую текстуру, используемую MTKView / UIView / NSView
comment
Вам нужна текстура до или после рендеринга?
- person Hamid Yusifli   schedule 01.12.2019
comment
@ 0xBFE1A8: после рендеринга :)
- person zeus   schedule 01.12.2019
Ответы (1)
Вы можете зарегистрировать обработчик завершения:
[commandBuffer addCompletedHandler:^(id<MTLCommandBuffer> cb)
{
id<MTLTexture> texture = view.currentDrawable.texture;
/* ... */
}];
Для повышения производительности выпускайте чертежи как можно скорее.
person
Hamid Yusifli
schedule
01.12.2019
Могу ли я сохранять текстуру столько, сколько захочу? Я имею в виду текстуру, а не прорисовку
- person zeus; 02.12.2019
Нет, вам следует как можно скорее выпустить текстуру, доступную для рисования.
- person Hamid Yusifli; 02.12.2019
если вы хотите сохранить текстуру, скопируйте ее в другую текстуру с помощью MTLBlitCommandEncoder
- person Hamid Yusifli; 02.12.2019