mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-12 09:25:19 +00:00
Better ensures frame buffer can be cleared.
This commit is contained in:
@@ -410,7 +410,7 @@ using BufferingScanTarget = Outputs::Display::BufferingScanTarget;
|
|||||||
width:frameBufferWidth
|
width:frameBufferWidth
|
||||||
height:frameBufferHeight
|
height:frameBufferHeight
|
||||||
mipmapped:NO];
|
mipmapped:NO];
|
||||||
textureDescriptor.usage = MTLTextureUsageRenderTarget | MTLTextureUsageShaderRead;
|
textureDescriptor.usage = MTLTextureUsageRenderTarget | MTLTextureUsageShaderRead | MTLTextureUsageShaderWrite;
|
||||||
textureDescriptor.resourceOptions = MTLResourceStorageModePrivate;
|
textureDescriptor.resourceOptions = MTLResourceStorageModePrivate;
|
||||||
id<MTLTexture> _oldFrameBuffer = _frameBuffer;
|
id<MTLTexture> _oldFrameBuffer = _frameBuffer;
|
||||||
_frameBuffer = [_view.device newTextureWithDescriptor:textureDescriptor];
|
_frameBuffer = [_view.device newTextureWithDescriptor:textureDescriptor];
|
||||||
@@ -447,6 +447,9 @@ using BufferingScanTarget = Outputs::Display::BufferingScanTarget;
|
|||||||
if(_oldFrameBuffer) {
|
if(_oldFrameBuffer) {
|
||||||
[self copyTexture:_oldFrameBuffer to:_frameBuffer];
|
[self copyTexture:_oldFrameBuffer to:_frameBuffer];
|
||||||
} else {
|
} else {
|
||||||
|
// TODO: this use of clearTexture is the only reasn _frameBuffer has a marked usage of MTLTextureUsageShaderWrite;
|
||||||
|
// it'd probably be smarter to blank it with geometry rather than potentially complicating
|
||||||
|
// its storage further?
|
||||||
[self clearTexture:_frameBuffer];
|
[self clearTexture:_frameBuffer];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user