我正在学习Swift,Metal / MetalKit来创建一个工程应用程序。由于视力不佳,我不使用Interface Builder(我迷失在xcode中)。 在27“iMac上运行OSX 10.11。
我有一个运行的mtkview显示3D图形,但需要在顶部(角落)添加另一个视图以显示视图方向。
我在Linux,gtkmm和mesa 3d中有第二个opengl视图,但我找不到任何关于如何在金属中添加第二个视图的文档。
我尝试在我的程序中添加第二个mtkview,但没有任何反应(我认为它不被认可)。
最好的方法是什么?
有没有人有任何关于如何做到这一点的信息或示例?
答案 0 :(得分:0)
这是一个非常简单的答案。 Metal使用所谓的视口来指定应该绘制视图的哪个部分。视图端口外的所有内容都保留原样。这就是你如何使用它:
// Draw the full view here
let topLeft = MTLViewport(originX: 10,
originY: 10,
width: size.width / 3,
height: size.height / 3,
znear: 0,
zfar: 1)
renderEncoder.setViewport(topLeft)
// Draw the top left view here
当然,您不应该总是计算topLeft
视图端口,因为它只会在视图大小更改时更改,因此会将其放在mtkView:drawableSizeWillChange:
方法中。