src/text.c

changeset 206
26726b7a89a7
parent 204
be5cf64b5c29
equal deleted inserted replaced
205:d1e44c861426 206:26726b7a89a7
84 if (surface == NULL) { 84 if (surface == NULL) {
85 asc_error("Rendering TTF surface failed: %s", SDL_GetError()); 85 asc_error("Rendering TTF surface failed: %s", SDL_GetError());
86 return; 86 return;
87 } 87 }
88 if (asc_test_flag(text->base.flags, ASC_TEXT_CENTERED_FLAG)) { 88 if (asc_test_flag(text->base.flags, ASC_TEXT_CENTERED_FLAG)) {
89 asc_node_set_origin(node, ASC_VEC3F(surface->w / 2, 0, 0)); 89 asc_scene_node_set_origin(node, ASC_VEC3F(surface->w / 2, 0, 0));
90 } 90 }
91 91
92 // Transfer Image Data 92 // Transfer Image Data
93 asc_texture_from_surface(text->texture, surface); 93 asc_texture_from_surface(text->texture, surface);
94 94
105 105
106 // Free the surface 106 // Free the surface
107 SDL_FreeSurface(surface); 107 SDL_FreeSurface(surface);
108 108
109 // Schedule for transform update 109 // Schedule for transform update
110 asc_node_update_transform(node); 110 asc_scene_node_update_transform(node);
111 } 111 }
112 112
113 static void asc_text_draw(const AscCamera *camera, const AscSceneNode *node) { 113 static void asc_text_draw(const AscCamera *camera, const AscSceneNode *node) {
114 asc_cptr_cast(AscText, text, node); 114 asc_cptr_cast(AscText, text, node);
115 115
180 AscText *node, 180 AscText *node,
181 enum asc_text_alignment alignment 181 enum asc_text_alignment alignment
182 ) { 182 ) {
183 asc_ptr_cast(AscSceneNode, snode, node); 183 asc_ptr_cast(AscSceneNode, snode, node);
184 asc_set_flag_masked(snode->flags, ASC_TEXT_ALIGNMENT_MASK, alignment); 184 asc_set_flag_masked(snode->flags, ASC_TEXT_ALIGNMENT_MASK, alignment);
185 asc_node_update(snode); 185 asc_scene_node_update(snode);
186 } 186 }
187 187
188 void asc_text_centered(AscText *node, bool centered) { 188 void asc_text_centered(AscText *node, bool centered) {
189 asc_ptr_cast(AscSceneNode, snode, node); 189 asc_ptr_cast(AscSceneNode, snode, node);
190 if (centered) { 190 if (centered) {
191 asc_clear_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED); 191 asc_clear_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED);
192 } else { 192 } else {
193 asc_set_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED); 193 asc_set_flag(snode->flags, ASC_TEXT_ALIGN_CENTERED);
194 } 194 }
195 asc_node_update(snode); 195 asc_scene_node_update(snode);
196 } 196 }
197 197
198 void asc_text_max_width(AscText *node, unsigned max_width) { 198 void asc_text_max_width(AscText *node, unsigned max_width) {
199 node->max_width = max_width; 199 node->max_width = max_width;
200 asc_node_update((AscSceneNode*)node); 200 asc_scene_node_update((AscSceneNode*)node);
201 } 201 }
202 202
203 void asc_text_printf( 203 void asc_text_printf(
204 AscText *node, 204 AscText *node,
205 const char *format, 205 const char *format,
212 &node->text.length, 212 &node->text.length,
213 format, 213 format,
214 ap 214 ap
215 ); 215 );
216 va_end(ap); 216 va_end(ap);
217 asc_node_update((AscSceneNode*)node); 217 asc_scene_node_update((AscSceneNode*)node);
218 } 218 }
219 219

mercurial