Можно ли изменить размер металлического вида (MTKView ()), чтобы его высота растягивалась на весь экран, но отношение к ширине сохраняется? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь масштабировать свой MTKView() полный экран на iPhone X, и я хочу сохранить соотношение в отношении ширины (я понимаю, это означает, что некоторые стороны будут обрезаны).

Может кто-нибудь помочь, пожалуйста?

required init(coder: NSCoder) {  
    super.init(coder: coder)  

    device = MTLCreateSystemDefaultDevice()  

    configureMetal()  

    createTextureCache()  

    colorPixelFormat = .bgra8Unorm  

    self.framebufferOnly = false  
    self.autoResizeDrawable = false  
    self.contentMode = .scaleAspectFit  
    self.contentScaleFactor = UIScreen.main.scale  
    self.drawableSize = CGSize(width: 2320, height: 3088)  
} 

1 Ответ

0 голосов
/ 14 мая 2019

Пару лет назад я написал класс под названием EEMetalTextureViewer , который может быть полезен для этого.По сути, это быстрый просмотрщик пиксельных данных на основе металла, который может взять CVImageBuffer или просто необработанные пиксельные данные и вывести их на экран для вас (он основан на MTKView), и этот класс также поддерживает различные UIViewContentMode опции.

Для ясности, поддержка тех, кто требует ручного масштабирования содержимого - MTKView делает не , делает это автоматически для вас.

Пример кода, который у меня там естьфактически демонстрирует использование прямой трансляции с камеры и ее презентации - это может быть хорошей отправной точкой для вас.

...