aboutsummaryrefslogtreecommitdiff
path: root/src/sfml/graphics/Sprite.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/sfml/graphics/Sprite.zig')
-rw-r--r--src/sfml/graphics/Sprite.zig156
1 files changed, 0 insertions, 156 deletions
diff --git a/src/sfml/graphics/Sprite.zig b/src/sfml/graphics/Sprite.zig
deleted file mode 100644
index 872c980..0000000
--- a/src/sfml/graphics/Sprite.zig
+++ /dev/null
@@ -1,156 +0,0 @@
-//! Drawable representation of a texture, with its own transformations, color, etc.
-
-const sf = struct {
- pub usingnamespace @import("../sfml.zig");
- pub usingnamespace sf.system;
- pub usingnamespace sf.graphics;
-};
-
-const Sprite = @This();
-
-// Constructor/destructor
-
-/// Inits a sprite with no texture
-pub fn create() !Sprite {
- var sprite = sf.c.sfSprite_create();
- if (sprite == null)
- return sf.Error.nullptrUnknownReason;
-
- return Sprite{ ._ptr = sprite.? };
-}
-
-/// Inits a sprite with a texture
-pub fn createFromTexture(texture: sf.Texture) !Sprite {
- var sprite = sf.c.sfSprite_create();
- if (sprite == null)
- return sf.Error.nullptrUnknownReason;
-
- sf.c.sfSprite_setTexture(sprite, texture._get(), 1);
-
- return Sprite{ ._ptr = sprite.? };
-}
-
-/// Destroys this sprite
-pub fn destroy(self: *Sprite) void {
- sf.c.sfSprite_destroy(self._ptr);
-}
-
-// Draw function
-pub fn sfDraw(self: Sprite, window: anytype, states: ?*sf.c.sfRenderStates) void {
- switch (@TypeOf(window)) {
- sf.RenderWindow => sf.c.sfRenderWindow_drawSprite(window._ptr, self._ptr, states),
- sf.RenderTexture => sf.c.sfRenderTexture_drawSprite(window._ptr, self._ptr, states),
- else => @compileError("window must be a render target"),
- }
-}
-
-// Getters/setters
-
-/// Gets the position of this sprite
-pub fn getPosition(self: Sprite) sf.Vector2f {
- return sf.Vector2f._fromCSFML(sf.c.sfSprite_getPosition(self._ptr));
-}
-/// Sets the position of this sprite
-pub fn setPosition(self: *Sprite, pos: sf.Vector2f) void {
- sf.c.sfSprite_setPosition(self._ptr, pos._toCSFML());
-}
-/// Adds the offset to this shape's position
-pub fn move(self: *Sprite, offset: sf.Vector2f) void {
- sf.c.sfSprite_move(self._ptr, offset._toCSFML());
-}
-
-/// Gets the scale of this sprite
-pub fn getScale(self: Sprite) sf.Vector2f {
- return sf.Vector2f._fromCSFML(sf.c.sfSprite_getScale(self._ptr));
-}
-/// Sets the scale of this sprite
-pub fn setScale(self: *Sprite, factor: sf.Vector2f) void {
- sf.c.sfSprite_setScale(self._ptr, factor._toCSFML());
-}
-/// Scales this sprite
-pub fn scale(self: *Sprite, factor: sf.Vector2f) void {
- sf.c.sfSprite_scale(self._ptr, factor._toCSFML());
-}
-
-/// Gets the origin of this sprite
-pub fn getOrigin(self: Sprite) sf.Vector2f {
- return sf.Vector2f._fromCSFML(sf.c.sfSprite_getOrigin(self._ptr));
-}
-/// Sets the origin of this sprite
-pub fn setOrigin(self: *Sprite, origin: sf.Vector2f) void {
- sf.c.sfSprite_setOrigin(self._ptr, origin._toCSFML());
-}
-
-/// Gets the rotation of this sprite
-pub fn getRotation(self: Sprite) f32 {
- return sf.c.sfSprite_getRotation(self._ptr);
-}
-/// Sets the rotation of this sprite
-pub fn setRotation(self: *Sprite, angle: f32) void {
- sf.c.sfSprite_setRotation(self._ptr, angle);
-}
-/// Rotates this shape by a given amount
-pub fn rotate(self: *Sprite, angle: f32) void {
- sf.c.sfSprite_rotate(self._ptr, angle);
-}
-
-/// Gets the color of this sprite
-pub fn getColor(self: Sprite) sf.Color {
- return sf.Color._fromCSFML(sf.c.sfSprite_getColor(self._ptr));
-}
-/// Sets the color of this sprite
-pub fn setColor(self: *Sprite, color: sf.Color) void {
- sf.c.sfSprite_setColor(self._ptr, color._toCSFML());
-}
-
-/// Gets the texture of this shape
-pub fn getTexture(self: Sprite) ?sf.Texture {
- const t = sf.c.sfSprite_getTexture(self._ptr);
- if (t) |tex| {
- return sf.Texture{ ._const_ptr = tex };
- } else return null;
-}
-/// Sets this sprite's texture (the sprite will take the texture's dimensions)
-pub fn setTexture(self: *Sprite, texture: ?sf.Texture) void {
- var tex = if (texture) |t| t._get() else null;
- sf.c.sfSprite_setTexture(self._ptr, tex, 1);
-}
-/// Gets the sub-rectangle of the texture that the sprite will display
-pub fn getTextureRect(self: Sprite) sf.IntRect {
- return sf.IntRect._fromCSFML(sf.c.sfSprite_getTextureRect(self._ptr));
-}
-/// Sets the sub-rectangle of the texture that the sprite will display
-pub fn setTextureRect(self: *Sprite, rect: sf.IntRect) void {
- sf.c.sfSprite_setTextureRect(self._ptr, rect._toCSFML());
-}
-
-/// Pointer to the csfml structure
-_ptr: *sf.c.sfSprite,
-
-test "sprite: sane getters and setters" {
- const tst = @import("std").testing;
-
- var spr = try Sprite.create();
- defer spr.destroy();
-
- spr.setColor(sf.Color.Yellow);
- spr.setRotation(15);
- spr.setPosition(.{ .x = 1, .y = 2 });
- spr.setOrigin(.{ .x = 20, .y = 25 });
- spr.setScale(.{ .x = 2, .y = 2 });
- spr.setTexture(null);
-
- try tst.expectEqual(sf.Color.Yellow, spr.getColor());
- try tst.expectEqual(sf.Vector2f{ .x = 1, .y = 2 }, spr.getPosition());
- try tst.expectEqual(sf.Vector2f{ .x = 20, .y = 25 }, spr.getOrigin());
- try tst.expectEqual(@as(?sf.Texture, null), spr.getTexture());
- try tst.expectEqual(sf.Vector2f{ .x = 2, .y = 2 }, spr.getScale());
-
- spr.rotate(5);
- spr.move(.{ .x = -5, .y = 5 });
- spr.scale(.{ .x = 5, .y = 5 });
-
- try tst.expectEqual(@as(f32, 20), spr.getRotation());
- try tst.expectEqual(sf.Vector2f{ .x = -4, .y = 7 }, spr.getPosition());
- try tst.expectEqual(sf.Vector2f{ .x = 10, .y = 10 }, spr.getScale());
-}