aboutsummaryrefslogtreecommitdiff
path: root/src/graphics/sprite.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics/sprite.c')
-rw-r--r--src/graphics/sprite.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/graphics/sprite.c b/src/graphics/sprite.c
index 7bc9db1..231b554 100644
--- a/src/graphics/sprite.c
+++ b/src/graphics/sprite.c
@@ -9,6 +9,10 @@ void mgl_sprite_init(mgl_sprite *self, mgl_texture *texture, float x, float y) {
self->scale = (mgl_vec2f){ 1.0f, 1.0f };
}
+void mgl_sprite_set_texture(mgl_sprite *self, mgl_texture *texture) {
+ self->texture = texture;
+}
+
void mgl_sprite_set_position(mgl_sprite *self, mgl_vec2f position) {
self->position = position;
}
@@ -19,6 +23,9 @@ void mgl_sprite_set_color(mgl_sprite *self, mgl_color color) {
/* TODO: Cache texture bind to not bind texture if its already bound and do not bind texture 0 */
void mgl_sprite_draw(mgl_context *context, mgl_sprite *sprite) {
+ if(!sprite->texture)
+ return;
+
context->gl.glColor4ub(sprite->color.r, sprite->color.g, sprite->color.b, sprite->color.a);
context->gl.glBindTexture(GL_TEXTURE_2D, sprite->texture->id);
context->gl.glBegin(GL_QUADS);