aboutsummaryrefslogtreecommitdiff
path: root/src/sfml/graphics/VertexArray.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/sfml/graphics/VertexArray.zig')
-rw-r--r--src/sfml/graphics/VertexArray.zig16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/sfml/graphics/VertexArray.zig b/src/sfml/graphics/VertexArray.zig
index ea4ccb2..d340600 100644
--- a/src/sfml/graphics/VertexArray.zig
+++ b/src/sfml/graphics/VertexArray.zig
@@ -14,19 +14,23 @@ pub fn createFromSlice(vertex: []const sf.graphics.Vertex, primitive: sf.graphic
sf.c.sfVertexArray_resize(vert, vertex.len);
for (vertex) |v, i|
sf.c.sfVertexArray_getVertex(vert, i).* = @bitCast(sf.c.sfVertex, v);
- return VertexArray{ .ptr = vert };
+ return VertexArray{ ._ptr = vert };
} else return sf.Error.nullptrUnknownReason;
}
/// Destroys a vertex array
-pub fn destroy(self: VertexArray) void {
- sf.c.sfVertexArray_destroy(self.ptr);
+pub fn destroy(self: *VertexArray) void {
+ sf.c.sfVertexArray_destroy(self._ptr);
}
// Draw function
-pub fn sfDraw(self: VertexArray, window: sf.graphics.RenderWindow, states: ?*sf.c.sfRenderStates) void {
- sf.c.sfRenderWindow_drawVertexArray(window.ptr, self.ptr, states);
+pub fn sfDraw(self: VertexArray, window: anytype, states: ?*sf.c.sfRenderStates) void {
+ switch (@TypeOf(window)) {
+ sf.graphics.RenderWindow => sf.c.sfRenderWindow_drawVertexArray(window._ptr, self._ptr, states),
+ sf.graphics.RenderTexture => sf.c.sfRenderTexture_drawVertexArray(window._ptr, self._ptr, states),
+ else => @compileError("window must be a render target"),
+ }
}
/// Pointer to the csfml structure
-ptr: *sf.c.sfVertexArray,
+_ptr: *sf.c.sfVertexArray,