mirror of https://github.com/encounter/SDL.git
metal: Cleaned up some reference count politics.
This commit is contained in:
parent
7cb8b50ad8
commit
686fc0937e
|
@ -394,14 +394,10 @@ METAL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
default: return SDL_SetError("Texture format %s not supported by Metal", SDL_GetPixelFormatName(texture->format));
|
default: return SDL_SetError("Texture format %s not supported by Metal", SDL_GetPixelFormatName(texture->format));
|
||||||
}
|
}
|
||||||
|
|
||||||
// !!! FIXME: autorelease or nah?
|
|
||||||
MTLTextureDescriptor *mtltexdesc = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:mtlpixfmt
|
MTLTextureDescriptor *mtltexdesc = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:mtlpixfmt
|
||||||
width:(NSUInteger)texture->w height:(NSUInteger)texture->h mipmapped:NO];
|
width:(NSUInteger)texture->w height:(NSUInteger)texture->h mipmapped:NO];
|
||||||
|
|
||||||
id<MTLTexture> mtltexture = [data.mtldevice newTextureWithDescriptor:mtltexdesc];
|
id<MTLTexture> mtltexture = [data.mtldevice newTextureWithDescriptor:mtltexdesc];
|
||||||
#if !__has_feature(objc_arc)
|
|
||||||
[mtltexdesc release];
|
|
||||||
#endif
|
|
||||||
if (mtltexture == nil) {
|
if (mtltexture == nil) {
|
||||||
return SDL_SetError("Texture allocation failed");
|
return SDL_SetError("Texture allocation failed");
|
||||||
}
|
}
|
||||||
|
@ -734,11 +730,6 @@ METAL_RenderPresent(SDL_Renderer * renderer)
|
||||||
[data.mtlcmdencoder endEncoding];
|
[data.mtlcmdencoder endEncoding];
|
||||||
[data.mtlcmdbuffer presentDrawable:data.mtlbackbuffer];
|
[data.mtlcmdbuffer presentDrawable:data.mtlbackbuffer];
|
||||||
[data.mtlcmdbuffer commit];
|
[data.mtlcmdbuffer commit];
|
||||||
#if !__has_feature(objc_arc)
|
|
||||||
[data.mtlcmdencoder release];
|
|
||||||
[data.mtlcmdbuffer release];
|
|
||||||
[data.mtlbackbuffer release];
|
|
||||||
#endif
|
|
||||||
data.mtlcmdencoder = nil;
|
data.mtlcmdencoder = nil;
|
||||||
data.mtlcmdbuffer = nil;
|
data.mtlcmdbuffer = nil;
|
||||||
data.mtlbackbuffer = nil;
|
data.mtlbackbuffer = nil;
|
||||||
|
@ -761,17 +752,14 @@ METAL_DestroyRenderer(SDL_Renderer * renderer)
|
||||||
if (renderer->driverdata) {
|
if (renderer->driverdata) {
|
||||||
METAL_RenderData *data = CFBridgingRelease(renderer->driverdata);
|
METAL_RenderData *data = CFBridgingRelease(renderer->driverdata);
|
||||||
|
|
||||||
#if !__has_feature(objc_arc)
|
|
||||||
if (data.mtlbackbuffer != nil) {
|
|
||||||
[data.mtlbackbuffer release];
|
|
||||||
}
|
|
||||||
if (data.mtlcmdencoder != nil) {
|
if (data.mtlcmdencoder != nil) {
|
||||||
[data.mtlcmdencoder endEncoding];
|
[data.mtlcmdencoder endEncoding];
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !__has_feature(objc_arc)
|
||||||
|
[data.mtlbackbuffer release];
|
||||||
[data.mtlcmdencoder release];
|
[data.mtlcmdencoder release];
|
||||||
}
|
|
||||||
if (data.mtlcmdbuffer != nil) {
|
|
||||||
[data.mtlcmdbuffer release];
|
[data.mtlcmdbuffer release];
|
||||||
}
|
|
||||||
[data.mtlcmdqueue release];
|
[data.mtlcmdqueue release];
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
[data.mtlpipelineprims[i] release];
|
[data.mtlpipelineprims[i] release];
|
||||||
|
@ -784,9 +772,9 @@ METAL_DestroyRenderer(SDL_Renderer * renderer)
|
||||||
[data.mtldevice release];
|
[data.mtldevice release];
|
||||||
[data.mtlpassdesc release];
|
[data.mtlpassdesc release];
|
||||||
[data.mtllayer release];
|
[data.mtllayer release];
|
||||||
[data release];
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_free(renderer);
|
SDL_free(renderer);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue