iOS MTKView(Metal Kit 视图)绘制的图像没有适当的比例

iOS MTKView (Metal Kit view) draws image without proper scale

我不明白为什么 MTKView 不使用设备的比例。

我有一个 Retina 设备:2 倍比例,MTKView.bounds 400x200,CIImage 大小为 800x400,但它只绘制图像的左下四分之一。

奇怪的 drawableSize returns 边界大小 (400x200)。

这是我使用的代码:

id<MTLTexture> targetTexture = self.currentDrawable.texture;
id<MTLCommandBuffer> commandBuffer = [commandQueue commandBuffer];

[ctx render:coreImage toMTLTexture:targetTexture commandBuffer:commandBuffer bounds:self.bounds colorSpace:colorSpace];

[commandBuffer presentDrawable:self.currentDrawable];
[commandBuffer commit];

找到了。我只需要使用 MTKView 的方法 setDrawableSize 到我想要的缩放尺寸:

[self setDrawableSize:coreImage.extent.size];