Skip to content

zig-gamedev/zopengl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenGL loader interface, bindings and optional type-safe wrapper for Zig.

Supports:

  • OpenGL Core Profile up to version 4.6
  • OpenGL ES up to version 2.0

Getting started

Example build.zig:

pub fn build(b: *std.Build) void { const exe = b.addExecutable(.{ ... }); const zopengl = b.dependency("zopengl", .{}); exe.root_module.addImport("zopengl", zopengl.module("root")); }

Now in your code you may import and use zopengl:

const zopengl = @import("zopengl"); pub fn main() !void { // Create window and OpenGL context here... (you can use our `zsdl` or `zglfw` libs for this) try zopengl.loadCoreProfile(getProcAddress, 4, 0); const gl = zopengl.bindings; // or zopengl.wrapper (experimental) gl.clearBufferfv(gl.COLOR, 0, &.{ 0.2, 0.4, 0.8, 1.0 }); } fn getProcAddress(name: [*:0]const u8) callconv(.c) ?*const anyopaque { // Load GL function pointer here // You could use `zsdl.gl.getProcAddress() or `zglfw.getProcAddress()` }

About

OpenGL loader interface, bindings and optional type-safe wrapper for Zig.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages