From 9f9aaf07e68f960558a8fd3eb6111cd3623e1d62 Mon Sep 17 00:00:00 2001 From: CobaltXII Date: Thu, 3 Jan 2019 16:08:41 -0500 Subject: [PATCH] Implemented gpu_sprite* generate_rectangle_gpu_sprite --- src/inc/sprite.hpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/inc/sprite.hpp b/src/inc/sprite.hpp index 9aade32..c597610 100644 --- a/src/inc/sprite.hpp +++ b/src/inc/sprite.hpp @@ -176,3 +176,28 @@ gpu_sprite* generate_test_gpu_sprite() return my_gpu_sprite; } + +// Generate a rectangle sprite. + +gpu_sprite* generate_rectangle_gpu_sprite(int x_tl, int y_tl, int x_br, int y_br, int x_res, int y_res, GLuint texture) +{ + cpu_sprite* my_cpu_sprite = allocate_sprite(6); + + float x_tlf = x_tl / float(x_res) * 2.0f - 1.0f; + float y_tlf = y_tl / float(y_res) * 2.0f - 1.0f; + + float x_brf = x_br / float(x_res) * 2.0f - 1.0f; + float y_brf = y_br / float(y_res) * 2.0f - 1.0f; + + write_vertex(my_cpu_sprite, x_tlf, -y_tlf, 0.0f, 0.0f); + write_vertex(my_cpu_sprite, x_tlf, -y_brf, 0.0f, 1.0f); + write_vertex(my_cpu_sprite, x_brf, -y_brf, 1.0f, 1.0f); + + write_vertex(my_cpu_sprite, x_tlf, -y_tlf, 0.0f, 0.0f); + write_vertex(my_cpu_sprite, x_brf, -y_brf, 1.0f, 1.0f); + write_vertex(my_cpu_sprite, x_brf, -y_tlf, 1.0f, 0.0f); + + gpu_sprite* my_gpu_sprite = make_gpu_sprite(my_cpu_sprite, texture); + + return my_gpu_sprite; +} \ No newline at end of file