From b87af8646f71de1398e665c361fe659b0707a72e Mon Sep 17 00:00:00 2001 From: Leah Amelia Chen Date: Fri, 28 Aug 2026 16:01:37 +0800 Subject: [PATCH] pkg/opengl: replace cImport with translate-c General Zig 0.16+ futureproofing --- pkg/opengl/Buffer.zig | 2 +- pkg/opengl/Framebuffer.zig | 2 +- pkg/opengl/Program.zig | 2 +- pkg/opengl/Renderbuffer.zig | 2 +- pkg/opengl/Sampler.zig | 2 +- pkg/opengl/Shader.zig | 2 +- pkg/opengl/Texture.zig | 2 +- pkg/opengl/VertexArray.zig | 2 +- pkg/opengl/build.zig | 12 +++++++++++- pkg/opengl/c.zig | 3 --- pkg/opengl/draw.zig | 2 +- pkg/opengl/errors.zig | 2 +- pkg/opengl/extensions.zig | 2 +- pkg/opengl/gl.c | 2 ++ pkg/opengl/glad.zig | 2 +- pkg/opengl/main.zig | 2 +- pkg/opengl/primitives.zig | 2 +- 17 files changed, 27 insertions(+), 18 deletions(-) delete mode 100644 pkg/opengl/c.zig create mode 100644 pkg/opengl/gl.c diff --git a/pkg/opengl/Buffer.zig b/pkg/opengl/Buffer.zig index 609342958..bb04b75dd 100644 --- a/pkg/opengl/Buffer.zig +++ b/pkg/opengl/Buffer.zig @@ -1,7 +1,7 @@ const Buffer = @This(); const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/Framebuffer.zig b/pkg/opengl/Framebuffer.zig index ea1f0d2ba..f1bca9da1 100644 --- a/pkg/opengl/Framebuffer.zig +++ b/pkg/opengl/Framebuffer.zig @@ -1,7 +1,7 @@ const Framebuffer = @This(); const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); const Texture = @import("Texture.zig"); diff --git a/pkg/opengl/Program.zig b/pkg/opengl/Program.zig index ee77582c1..c563aebdb 100644 --- a/pkg/opengl/Program.zig +++ b/pkg/opengl/Program.zig @@ -4,7 +4,7 @@ const std = @import("std"); const assert = std.debug.assert; const log = std.log.scoped(.opengl); -const c = @import("c.zig").c; +const c = @import("c"); const Shader = @import("Shader.zig"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/Renderbuffer.zig b/pkg/opengl/Renderbuffer.zig index ef21287f7..2f4647d60 100644 --- a/pkg/opengl/Renderbuffer.zig +++ b/pkg/opengl/Renderbuffer.zig @@ -1,7 +1,7 @@ const Renderbuffer = @This(); const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/Sampler.zig b/pkg/opengl/Sampler.zig index f5c15699f..82c4c1505 100644 --- a/pkg/opengl/Sampler.zig +++ b/pkg/opengl/Sampler.zig @@ -1,7 +1,7 @@ const Sampler = @This(); const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); const Texture = @import("Texture.zig"); diff --git a/pkg/opengl/Shader.zig b/pkg/opengl/Shader.zig index 8973ace30..0084c8729 100644 --- a/pkg/opengl/Shader.zig +++ b/pkg/opengl/Shader.zig @@ -4,7 +4,7 @@ const std = @import("std"); const assert = std.debug.assert; const log = std.log.scoped(.opengl); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/Texture.zig b/pkg/opengl/Texture.zig index 03e794855..fea6ce3e6 100644 --- a/pkg/opengl/Texture.zig +++ b/pkg/opengl/Texture.zig @@ -1,7 +1,7 @@ const Texture = @This(); const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/VertexArray.zig b/pkg/opengl/VertexArray.zig index 44bf31621..3817f8fa0 100644 --- a/pkg/opengl/VertexArray.zig +++ b/pkg/opengl/VertexArray.zig @@ -1,6 +1,6 @@ const VertexArray = @This(); -const c = @import("c.zig").c; +const c = @import("c"); const glad = @import("glad.zig"); const errors = @import("errors.zig"); diff --git a/pkg/opengl/build.zig b/pkg/opengl/build.zig index f472053ed..e63313a99 100644 --- a/pkg/opengl/build.zig +++ b/pkg/opengl/build.zig @@ -1,6 +1,16 @@ const std = @import("std"); pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const c = b.addTranslateC(.{ + .root_source_file = b.path("gl.c"), + .target = target, + .optimize = optimize, + }); + c.addIncludePath(b.path("../../vendor/glad/include")); + const module = b.addModule("opengl", .{ .root_source_file = b.path("main.zig") }); - module.addIncludePath(b.path("../../vendor/glad/include")); + module.addImport("c", c.createModule()); } diff --git a/pkg/opengl/c.zig b/pkg/opengl/c.zig deleted file mode 100644 index fc95ee94c..000000000 --- a/pkg/opengl/c.zig +++ /dev/null @@ -1,3 +0,0 @@ -pub const c = @cImport({ - @cInclude("glad/gl.h"); -}); diff --git a/pkg/opengl/draw.zig b/pkg/opengl/draw.zig index 50110f605..8c205864a 100644 --- a/pkg/opengl/draw.zig +++ b/pkg/opengl/draw.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); const Primitive = @import("primitives.zig").Primitive; diff --git a/pkg/opengl/errors.zig b/pkg/opengl/errors.zig index ec0464604..cfae2c276 100644 --- a/pkg/opengl/errors.zig +++ b/pkg/opengl/errors.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const glad = @import("glad.zig"); pub const Error = error{ diff --git a/pkg/opengl/extensions.zig b/pkg/opengl/extensions.zig index 5fdbada93..1c49bdbce 100644 --- a/pkg/opengl/extensions.zig +++ b/pkg/opengl/extensions.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); const errors = @import("errors.zig"); const glad = @import("glad.zig"); diff --git a/pkg/opengl/gl.c b/pkg/opengl/gl.c new file mode 100644 index 000000000..94e25eb70 --- /dev/null +++ b/pkg/opengl/gl.c @@ -0,0 +1,2 @@ +#include +#include diff --git a/pkg/opengl/glad.zig b/pkg/opengl/glad.zig index 663e75e12..d766a60b6 100644 --- a/pkg/opengl/glad.zig +++ b/pkg/opengl/glad.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig").c; +const c = @import("c"); pub const Context = c.GladGLContext; diff --git a/pkg/opengl/main.zig b/pkg/opengl/main.zig index ede4e6a03..c3f17a7ce 100644 --- a/pkg/opengl/main.zig +++ b/pkg/opengl/main.zig @@ -10,7 +10,7 @@ //! //! WARNING: Lots of performance improvements that we can make with Zig //! comptime help. I'm deferring this until later but have some fun ideas. -pub const c = @import("c.zig").c; +pub const c = @import("c"); pub const glad = @import("glad.zig"); pub const egl = @import("egl.zig"); pub const ext = @import("extensions.zig"); diff --git a/pkg/opengl/primitives.zig b/pkg/opengl/primitives.zig index e12f51a66..52ef2a1ad 100644 --- a/pkg/opengl/primitives.zig +++ b/pkg/opengl/primitives.zig @@ -1,4 +1,4 @@ -pub const c = @import("c.zig").c; +const c = @import("c"); pub const Primitive = enum(c_int) { point = c.GL_POINTS,