From 61c7efc6dd2a036b5d14aa223d06a18cb7d1388e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 16 Nov 2021 03:54:26 +0100 Subject: Sprite: add rotation and origin --- include/mgl/gl.h | 1 + include/mgl/graphics/sprite.h | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mgl/gl.h b/include/mgl/gl.h index 75bc764..7dc1dd7 100644 --- a/include/mgl/gl.h +++ b/include/mgl/gl.h @@ -43,6 +43,7 @@ typedef struct { void (*glLoadIdentity)(void); void (*glLoadMatrixf)(const float *m); void (*glTranslatef)(float x, float y, float z); + void (*glRotatef)(float angle, float x, float y, float z); void (*glGenBuffers)(int n, unsigned int *buffers); void (*glBindBuffer)(unsigned int target, unsigned int buffer); void (*glDeleteBuffers)(int n, const unsigned int *buffers); diff --git a/include/mgl/graphics/sprite.h b/include/mgl/graphics/sprite.h index 03f81ab..64d9c03 100644 --- a/include/mgl/graphics/sprite.h +++ b/include/mgl/graphics/sprite.h @@ -12,15 +12,19 @@ typedef struct { mgl_color color; mgl_vec2f position; mgl_vec2f scale; + mgl_vec2f origin; /* top left by default (0, 0) */ + float rotation; /* in degrees */ } mgl_sprite; /* |texture| may be NULL */ -void mgl_sprite_init(mgl_sprite *self, mgl_texture *texture, float x, float y); +void mgl_sprite_init(mgl_sprite *self, mgl_texture *texture); /* |texture| may be NULL */ void mgl_sprite_set_texture(mgl_sprite *self, mgl_texture *texture); void mgl_sprite_set_position(mgl_sprite *self, mgl_vec2f position); void mgl_sprite_set_color(mgl_sprite *self, mgl_color color); +void mgl_sprite_set_rotation(mgl_sprite *self, float degrees); +void mgl_sprite_set_origin(mgl_sprite *self, mgl_vec2f origin); void mgl_sprite_draw(mgl_context *context, mgl_sprite *sprite); #endif /* MGL_SPRITE_H */ -- cgit v1.2.3-70-g09d2