mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 07:46:12 +03:00
renderer/metal: clean up some memory management
This commit is contained in:
35
src/App.zig
35
src/App.zig
@ -73,41 +73,6 @@ pub fn create(
|
||||
};
|
||||
errdefer app.surfaces.deinit(alloc);
|
||||
|
||||
// TODO: remove this temporary crap
|
||||
// const glslang = @import("glslang");
|
||||
// try glslang.init();
|
||||
// {
|
||||
// const c = glslang.c;
|
||||
// const glsl_input: c.glslang_input_t = .{
|
||||
// .language = c.GLSLANG_SOURCE_GLSL,
|
||||
// .stage = c.GLSLANG_STAGE_FRAGMENT,
|
||||
// .client = c.GLSLANG_CLIENT_VULKAN,
|
||||
// .client_version = c.GLSLANG_TARGET_VULKAN_1_2,
|
||||
// .target_language = c.GLSLANG_TARGET_SPV,
|
||||
// .target_language_version = c.GLSLANG_TARGET_SPV_1_5,
|
||||
// .code = @embedFile("temp.frag"),
|
||||
// .default_version = 100,
|
||||
// .default_profile = c.GLSLANG_NO_PROFILE,
|
||||
// .force_default_version_and_profile = 0,
|
||||
// .forward_compatible = 0,
|
||||
// .messages = c.GLSLANG_MSG_DEFAULT_BIT,
|
||||
// .resource = c.glslang_default_resource(),
|
||||
// };
|
||||
//
|
||||
// const shader = try glslang.Shader.create(&glsl_input);
|
||||
// defer shader.delete();
|
||||
// try shader.preprocess(&glsl_input);
|
||||
// try shader.parse(&glsl_input);
|
||||
//
|
||||
// const program = try glslang.Program.create();
|
||||
// defer program.delete();
|
||||
// program.addShader(shader);
|
||||
// try program.link(c.GLSLANG_MSG_SPV_RULES_BIT | c.GLSLANG_MSG_VULKAN_RULES_BIT);
|
||||
// program.spirvGenerate(c.GLSLANG_STAGE_FRAGMENT);
|
||||
// const size = program.spirvGetSize();
|
||||
// log.warn("SPIRV PROGRAM size={d}", .{size});
|
||||
// }
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
|
@ -254,6 +254,8 @@ fn initPostPipeline(
|
||||
const ptr = post_library.msgSend(?*anyopaque, objc.sel("newFunctionWithName:"), .{str});
|
||||
break :func_frag objc.Object.fromId(ptr.?);
|
||||
};
|
||||
defer func_vert.msgSend(void, objc.sel("release"), .{});
|
||||
defer func_frag.msgSend(void, objc.sel("release"), .{});
|
||||
|
||||
// Create our descriptor
|
||||
const desc = init: {
|
||||
@ -262,6 +264,7 @@ fn initPostPipeline(
|
||||
const id_init = id_alloc.msgSend(objc.Object, objc.sel("init"), .{});
|
||||
break :init id_init;
|
||||
};
|
||||
defer desc.msgSend(void, objc.sel("release"), .{});
|
||||
desc.setProperty("vertexFunction", func_vert);
|
||||
desc.setProperty("fragmentFunction", func_frag);
|
||||
|
||||
@ -315,6 +318,8 @@ fn initCellPipeline(device: objc.Object, library: objc.Object) !objc.Object {
|
||||
const ptr = library.msgSend(?*anyopaque, objc.sel("newFunctionWithName:"), .{str});
|
||||
break :func_frag objc.Object.fromId(ptr.?);
|
||||
};
|
||||
defer func_vert.msgSend(void, objc.sel("release"), .{});
|
||||
defer func_frag.msgSend(void, objc.sel("release"), .{});
|
||||
|
||||
// Create the vertex descriptor. The vertex descriptor describes the
|
||||
// data layout of the vertex inputs. We use indexed (or "instanced")
|
||||
@ -501,6 +506,8 @@ fn initImagePipeline(device: objc.Object, library: objc.Object) !objc.Object {
|
||||
const ptr = library.msgSend(?*anyopaque, objc.sel("newFunctionWithName:"), .{str});
|
||||
break :func_frag objc.Object.fromId(ptr.?);
|
||||
};
|
||||
defer func_vert.msgSend(void, objc.sel("release"), .{});
|
||||
defer func_frag.msgSend(void, objc.sel("release"), .{});
|
||||
|
||||
// Create the vertex descriptor. The vertex descriptor describes the
|
||||
// data layout of the vertex inputs. We use indexed (or "instanced")
|
||||
@ -577,6 +584,7 @@ fn initImagePipeline(device: objc.Object, library: objc.Object) !objc.Object {
|
||||
|
||||
break :vertex_desc desc;
|
||||
};
|
||||
defer vertex_desc.msgSend(void, objc.sel("release"), .{});
|
||||
|
||||
// Create our descriptor
|
||||
const desc = init: {
|
||||
@ -585,6 +593,7 @@ fn initImagePipeline(device: objc.Object, library: objc.Object) !objc.Object {
|
||||
const id_init = id_alloc.msgSend(objc.Object, objc.sel("init"), .{});
|
||||
break :init id_init;
|
||||
};
|
||||
defer desc.msgSend(void, objc.sel("release"), .{});
|
||||
|
||||
// Set our properties
|
||||
desc.setProperty("vertexFunction", func_vert);
|
||||
|
Reference in New Issue
Block a user