mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
renderer/metal: use release()
consistently
I’m not sure why this variation was here previously – maybe it predated the introduction of `release()`?
This commit is contained in:
@ -177,7 +177,7 @@ pub const GPUState = struct {
|
||||
pub fn init() !GPUState {
|
||||
const device = objc.Object.fromId(mtl.MTLCreateSystemDefaultDevice());
|
||||
const queue = device.msgSend(objc.Object, objc.sel("newCommandQueue"), .{});
|
||||
errdefer queue.msgSend(void, objc.sel("release"), .{});
|
||||
errdefer queue.release();
|
||||
|
||||
var instance = try InstanceBuffer.initFill(device, &.{
|
||||
0, 1, 3, // Top-left triangle
|
||||
@ -206,7 +206,7 @@ pub const GPUState = struct {
|
||||
for (0..BufferCount) |_| self.frame_sema.wait();
|
||||
for (&self.frames) |*frame| frame.deinit();
|
||||
self.instance.deinit();
|
||||
self.queue.msgSend(void, objc.sel("release"), .{});
|
||||
self.queue.release();
|
||||
}
|
||||
|
||||
/// Get the next frame state to draw to. This will wait on the
|
||||
@ -269,13 +269,13 @@ pub const FrameState = struct {
|
||||
.size = 8,
|
||||
.format = .grayscale,
|
||||
});
|
||||
errdefer deinitMTLResource(grayscale);
|
||||
errdefer grayscale.release();
|
||||
const color = try initAtlasTexture(device, &.{
|
||||
.data = undefined,
|
||||
.size = 8,
|
||||
.format = .rgba,
|
||||
});
|
||||
errdefer deinitMTLResource(color);
|
||||
errdefer color.release();
|
||||
|
||||
return .{
|
||||
.uniforms = uniforms,
|
||||
@ -290,8 +290,8 @@ pub const FrameState = struct {
|
||||
self.uniforms.deinit();
|
||||
self.cells.deinit();
|
||||
self.cells_bg.deinit();
|
||||
deinitMTLResource(self.grayscale);
|
||||
deinitMTLResource(self.color);
|
||||
self.grayscale.release();
|
||||
self.color.release();
|
||||
}
|
||||
};
|
||||
|
||||
@ -319,8 +319,8 @@ pub const CustomShaderState = struct {
|
||||
}
|
||||
|
||||
pub fn deinit(self: *CustomShaderState) void {
|
||||
deinitMTLResource(self.front_texture);
|
||||
deinitMTLResource(self.back_texture);
|
||||
self.front_texture.release();
|
||||
self.back_texture.release();
|
||||
self.sampler.deinit();
|
||||
}
|
||||
};
|
||||
@ -2057,8 +2057,8 @@ pub fn setScreenSize(
|
||||
// Only free our previous texture if this isn't our first
|
||||
// time setting the custom shader state.
|
||||
if (state.uniforms.resolution[0] > 0) {
|
||||
deinitMTLResource(state.front_texture);
|
||||
deinitMTLResource(state.back_texture);
|
||||
state.front_texture.release();
|
||||
state.back_texture.release();
|
||||
}
|
||||
|
||||
state.uniforms.resolution = .{
|
||||
@ -2982,7 +2982,7 @@ fn syncAtlasTexture(device: objc.Object, atlas: *const font.Atlas, texture: *obj
|
||||
const width = texture.getProperty(c_ulong, "width");
|
||||
if (atlas.size > width) {
|
||||
// Free our old texture
|
||||
deinitMTLResource(texture.*);
|
||||
texture.*.release();
|
||||
|
||||
// Reallocate
|
||||
texture.* = try initAtlasTexture(device, atlas);
|
||||
@ -3049,12 +3049,6 @@ fn initAtlasTexture(device: objc.Object, atlas: *const font.Atlas) !objc.Object
|
||||
return objc.Object.fromId(id);
|
||||
}
|
||||
|
||||
/// Deinitialize a metal resource (buffer, texture, etc.) and free the
|
||||
/// memory associated with it.
|
||||
fn deinitMTLResource(obj: objc.Object) void {
|
||||
obj.msgSend(void, objc.sel("release"), .{});
|
||||
}
|
||||
|
||||
test {
|
||||
_ = mtl_cell;
|
||||
}
|
||||
|
Reference in New Issue
Block a user