src/text.c

changeset 25
601b3f4e17a2
parent 24
7183b4ae9b20
child 26
139dac8ef9ee
equal deleted inserted replaced
24:7183b4ae9b20 25:601b3f4e17a2
30 #include "ascension/error.h" 30 #include "ascension/error.h"
31 #include "ascension/shader.h" 31 #include "ascension/shader.h"
32 32
33 #include <GL/glew.h> 33 #include <GL/glew.h>
34 34
35 AscTextNode *asc_text(int x, int y, char const *text) { 35 AscText *asc_text(int x, int y, char const *text) {
36 AscTextNode *node = calloc(1, sizeof(AscTextNode)); 36 AscText *node = calloc(1, sizeof(AscText));
37 if (node == NULL) { 37 if (node == NULL) {
38 asc_error("Out of memory."); 38 asc_error("Out of memory.");
39 return NULL; 39 return NULL;
40 } 40 }
41 41
47 } 47 }
48 48
49 return node; 49 return node;
50 } 50 }
51 51
52 void asc_text_update(AscTextNode *node) { 52 void asc_text_update(AscText *node) {
53 // short circuit if fully transparent or hidden, we don't need anything 53 // short circuit if fully transparent or hidden, we don't need anything
54 if (node->color.alpha == 0 || node->hidden) { 54 if (node->color.alpha == 0 || node->hidden) {
55 return; 55 return;
56 } 56 }
57 57
91 91
92 // Free the surface 92 // Free the surface
93 SDL_FreeSurface(surface); 93 SDL_FreeSurface(surface);
94 } 94 }
95 95
96 void asc_text_draw(AscTextNode *node) { 96 void asc_text_draw(AscText *node) {
97 if (node->color.alpha == 0 || node->hidden) { 97 if (node->color.alpha == 0 || node->hidden) {
98 return; 98 return;
99 } 99 }
100 100
101 if (node->internal.tex_id == 0) { 101 if (node->internal.tex_id == 0) {
126 126
127 // Draw mesh 127 // Draw mesh
128 asc_primitives_draw_plane(); 128 asc_primitives_draw_plane();
129 } 129 }
130 130
131 void asc_text_free(AscTextNode *node) { 131 void asc_text_free(AscText *node) {
132 asc_dprintf("Release text node texture: %u", node->internal.tex_id); 132 asc_dprintf("Release text node texture: %u", node->internal.tex_id);
133 glDeleteTextures(1, &node->internal.tex_id); 133 glDeleteTextures(1, &node->internal.tex_id);
134 free(node->text); 134 free(node->text);
135 free(node); 135 free(node);
136 } 136 }

mercurial