diff --git a/pkg/macos/graphics.zig b/pkg/macos/graphics.zig index 6a5a75933..56bdc776a 100644 --- a/pkg/macos/graphics.zig +++ b/pkg/macos/graphics.zig @@ -1,4 +1,5 @@ pub const c = @import("graphics/c.zig"); +pub usingnamespace @import("graphics/color_space.zig"); pub usingnamespace @import("graphics/font.zig"); test { diff --git a/pkg/macos/graphics/color_space.zig b/pkg/macos/graphics/color_space.zig new file mode 100644 index 000000000..91fc18994 --- /dev/null +++ b/pkg/macos/graphics/color_space.zig @@ -0,0 +1,24 @@ +const std = @import("std"); +const assert = std.debug.assert; +const Allocator = std.mem.Allocator; +const c = @import("c.zig"); + +pub const ColorSpace = opaque { + pub fn createDeviceGray() Allocator.Error!*ColorSpace { + return @intToPtr( + ?*ColorSpace, + @ptrToInt(c.CGColorSpaceCreateDeviceGray()), + ) orelse Allocator.Error.OutOfMemory; + } + + pub fn release(self: *ColorSpace) void { + c.CGColorSpaceRelease(@ptrCast(c.CGColorSpaceRef, self)); + } +}; + +test { + //const testing = std.testing; + + const space = try ColorSpace.createDeviceGray(); + defer space.release(); +}