diff options
Diffstat (limited to 'src/graphics/sprite.c')
-rw-r--r-- | src/graphics/sprite.c | 7 |
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); |