Tue, 28 Oct 2025 22:03:06 +0100
fix that dependencies for tools are always checked
| 82 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1 | /* | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 3 | * Copyright 2025 Mike Becker. All rights reserved. | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 4 | * | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 5 | * Redistribution and use in source and binary forms, with or without | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 6 | * modification, are permitted provided that the following conditions are met: | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 7 | * | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 8 | * 1. Redistributions of source code must retain the above copyright | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 9 | * notice, this list of conditions and the following disclaimer. | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 10 | * | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 11 | * 2. Redistributions in binary form must reproduce the above copyright | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 12 | * notice, this list of conditions and the following disclaimer in the | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 13 | * documentation and/or other materials provided with the distribution. | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 14 | * | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 19 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 20 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 21 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 24 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 25 | * POSSIBILITY OF SUCH DAMAGE. | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 26 | */ | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 27 | |
| 143 
4db4f00493ad
prepare implementation of primitives
 Mike Becker <universe@uap-core.de> parents: 
139diff
changeset | 28 | #include "ascension/sprite.h" | 
| 82 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 29 | |
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 30 | #include "ascension/context.h" | 
| 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 31 | #include "ascension/glcontext.h" | 
| 139 
5d655459db85
refactor shader management - resolves #684
 Mike Becker <universe@uap-core.de> parents: 
137diff
changeset | 32 | #include "ascension/mesh.h" | 
| 144 
43636d6a6e25
do not try to use one distinct render group for each different shader
 Mike Becker <universe@uap-core.de> parents: 
143diff
changeset | 33 | #include "ascension/shader.h" | 
| 139 
5d655459db85
refactor shader management - resolves #684
 Mike Becker <universe@uap-core.de> parents: 
137diff
changeset | 34 | #include "ascension/constants.h" | 
| 82 
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 35 | |
| 241 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 36 | #include <assert.h> | 
| 139 
5d655459db85
refactor shader management - resolves #684
 Mike Becker <universe@uap-core.de> parents: 
137diff
changeset | 37 | |
| 145 
a3231310d66d
consistent naming of structs and their typedefs
 Mike Becker <universe@uap-core.de> parents: 
144diff
changeset | 38 | typedef struct asc_sprite_shader_s { | 
| 139 
5d655459db85
refactor shader management - resolves #684
 Mike Becker <universe@uap-core.de> parents: 
137diff
changeset | 39 | AscShaderProgram program; | 
| 168 
f70569c49c24
add abstractions that allow removing dependencies to glew.h
 Mike Becker <universe@uap-core.de> parents: 
167diff
changeset | 40 | asc_uniform_loc tex; | 
| 145 
a3231310d66d
consistent naming of structs and their typedefs
 Mike Becker <universe@uap-core.de> parents: 
144diff
changeset | 41 | } AscSpriteShader; | 
| 144 
43636d6a6e25
do not try to use one distinct render group for each different shader
 Mike Becker <universe@uap-core.de> parents: 
143diff
changeset | 42 | |
| 222 
2cb9a71df7a6
vastly deduplicate shader creation code
 Mike Becker <universe@uap-core.de> parents: 
221diff
changeset | 43 | static void asc_sprite_shader_init(AscShaderProgram *p, cx_attr_unused int flags) { | 
| 270 
3031d1bb5957
further improve names and docu of the uniform location init functions
 Mike Becker <universe@uap-core.de> parents: 
269diff
changeset | 44 | asc_shader_set_uniform_loc_by_name(p, AscSpriteShader, tex); | 
| 222 
2cb9a71df7a6
vastly deduplicate shader creation code
 Mike Becker <universe@uap-core.de> parents: 
221diff
changeset | 45 | } | 
| 
2cb9a71df7a6
vastly deduplicate shader creation code
 Mike Becker <universe@uap-core.de> parents: 
221diff
changeset | 46 | |
| 158 
f650994ec543
implement rounded corners
 Mike Becker <universe@uap-core.de> parents: 
151diff
changeset | 47 | static AscShaderProgram *asc_sprite_shader_create(int rect) { | 
| 223 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 48 | return asc_shader_create((AscShaderCodes) { | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 49 | .vtx = {.source_file = "sprite_vtx.glsl"}, | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 50 | .frag = { | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 51 | .source_file = "sprite_frag.glsl", | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 52 | .preamble_code = (const char*[]){"#define USE_RECT"}, | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 53 | .preamble_code_flags = (uint64_t) rect | 
| 
4f32c7755138
clean up the messy shader code specification
 Mike Becker <universe@uap-core.de> parents: 
222diff
changeset | 54 | }, | 
| 222 
2cb9a71df7a6
vastly deduplicate shader creation code
 Mike Becker <universe@uap-core.de> parents: 
221diff
changeset | 55 | }, sizeof(AscSpriteShader), asc_sprite_shader_init, 0); | 
| 144 
43636d6a6e25
do not try to use one distinct render group for each different shader
 Mike Becker <universe@uap-core.de> parents: 
143diff
changeset | 56 | } | 
| 
43636d6a6e25
do not try to use one distinct render group for each different shader
 Mike Becker <universe@uap-core.de> parents: 
143diff
changeset | 57 | |
| 113 
71ba88258ea0
change node's free function to a destroy function
 Mike Becker <universe@uap-core.de> parents: 
105diff
changeset | 58 | static void asc_sprite_destroy(AscSceneNode *node) { | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 59 | asc_ptr_cast(AscSprite, sprite, node); | 
| 115 
e5f8c99b0987
refactor rendering 1/3 - create new mesh structs
 Mike Becker <universe@uap-core.de> parents: 
114diff
changeset | 60 | asc_mesh_destroy(&sprite->mesh); | 
| 241 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 61 | if (sprite->texture != NULL) { | 
| 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 62 | sprite->texture->refcount--; | 
| 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 63 | } | 
| 88 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 64 | } | 
| 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 65 | |
| 118 | 66 | static void asc_sprite_update(AscSceneNode *node) { | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 67 | asc_ptr_cast(AscSprite, sprite, node); | 
| 118 | 68 | |
| 69 | // calculate texture parameters | |
| 70 | asc_vec2f uv_scale; | |
| 71 | if (sprite->texture_scale_mode == ASC_TEXTURE_SCALE_REPEAT) { | |
| 241 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 72 | assert(sprite->texture != NULL); | 
| 118 | 73 | uv_scale = asc_texture_calculate_uv_scale(sprite->texture, | 
| 175 
e5544920377e
improve macros in datatypes.h - fixes #692
 Mike Becker <universe@uap-core.de> parents: 
169diff
changeset | 74 | ASC_VEC2U(sprite->width, sprite->height), sprite->texture_scale); | 
| 118 | 75 | } else { | 
| 76 | uv_scale = sprite->texture_scale; | |
| 77 | } | |
| 78 | ||
| 79 | // update mesh | |
| 80 | asc_mesh_plane_2d(&sprite->mesh, | |
| 175 
e5544920377e
improve macros in datatypes.h - fixes #692
 Mike Becker <universe@uap-core.de> parents: 
169diff
changeset | 81 | .size = ASC_VEC2F(sprite->width, sprite->height), | 
| 118 | 82 | .uv_scale = uv_scale | 
| 83 | ); | |
| 84 | } | |
| 85 | ||
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 86 | void asc_sprite_draw(const AscCamera *camera, const AscSceneNode *node) { | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 87 | asc_cptr_cast(AscSprite, sprite, node); | 
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 88 | |
| 226 
18327d2df79d
simplify how pre-defined shader IDs work
 Mike Becker <universe@uap-core.de> parents: 
223diff
changeset | 89 | const int flags = asc_texture_is_uv_normalized(sprite->texture) ? 0 : 1; | 
| 
18327d2df79d
simplify how pre-defined shader IDs work
 Mike Becker <universe@uap-core.de> parents: 
223diff
changeset | 90 | |
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 91 | // Activate shader | 
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 92 | // TODO: scene should know which shader we are going to activate s.t. it can pre-sort nodes | 
| 239 
3b78ad115ccd
remove the possibility of non-lazy-initializable shader programs
 Mike Becker <universe@uap-core.de> parents: 
226diff
changeset | 93 | const AscShaderProgram *shader = asc_shader_lookup( | 
| 226 
18327d2df79d
simplify how pre-defined shader IDs work
 Mike Becker <universe@uap-core.de> parents: 
223diff
changeset | 94 | ASC_SHADER_SPRITE(flags), | 
| 
18327d2df79d
simplify how pre-defined shader IDs work
 Mike Becker <universe@uap-core.de> parents: 
223diff
changeset | 95 | asc_sprite_shader_create, flags | 
| 
18327d2df79d
simplify how pre-defined shader IDs work
 Mike Becker <universe@uap-core.de> parents: 
223diff
changeset | 96 | ); | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 97 | if (asc_shader_use(shader, camera)) return; | 
| 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 98 | asc_cptr_cast(AscSpriteShader, sprite_shader, shader); | 
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 99 | |
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 100 | // Upload model matrix | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 101 | asc_shader_upload_model_matrix(shader, node); | 
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 102 | |
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 103 | // Bind texture | 
| 169 
6e6717d9c776
improve "polymorphic" typing of shaders
 Mike Becker <universe@uap-core.de> parents: 
168diff
changeset | 104 | asc_texture_bind(sprite->texture, sprite_shader->tex, 0); | 
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 105 | |
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 106 | // Draw mesh | 
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 107 | asc_mesh_draw_triangle_strip(&sprite->mesh); | 
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 108 | } | 
| 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 109 | |
| 88 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 110 | AscSceneNode *asc_sprite_create(struct asc_sprite_create_args args) { | 
| 122 
1b118cd3e369
replace all stdlib malloc/free with UCX allocator
 Mike Becker <universe@uap-core.de> parents: 
118diff
changeset | 111 | AscSprite *sprite = cxZallocDefault(sizeof(AscSprite)); | 
| 88 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 112 | |
| 118 | 113 | // sprite parameters | 
| 89 
e1f682a8a145
use refcounted objects for textures instead of pass-by-value int structs
 Mike Becker <universe@uap-core.de> parents: 
88diff
changeset | 114 | sprite->texture = args.texture; | 
| 241 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 115 | if (args.texture != NULL) { | 
| 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 116 | args.texture->refcount++; | 
| 
b53bd6ab2a47
add null safety in case a sprite is created without texture parameters
 Mike Becker <universe@uap-core.de> parents: 
239diff
changeset | 117 | } | 
| 118 | 118 | sprite->width = args.width; | 
| 119 | sprite->height = args.height; | |
| 120 | sprite->texture_scale_mode = args.texture_scale_mode; | |
| 121 | sprite->texture_scale.u = ASC_NONZERO_OR(1.f, args.texture_scale_x); | |
| 122 | sprite->texture_scale.v = ASC_NONZERO_OR(1.f, args.texture_scale_y); | |
| 88 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 123 | |
| 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 124 | // basic node parameters | 
| 207 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 125 | asc_ptr_cast(AscSceneNode, node, sprite); | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 126 | asc_scene_node_init(node, | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 127 | ASC_SCENE_NODE_FUNCS(asc_sprite), | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 128 | .name = args.name, | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 129 | .render_group = args.opaque | 
| 150 
3045f61bc4eb
make draw function dynamic
 Mike Becker <universe@uap-core.de> parents: 
145diff
changeset | 130 | ? ASC_RENDER_GROUP_2D_OPAQUE | 
| 207 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 131 | : ASC_RENDER_GROUP_2D_BLEND, | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 132 | .pos2d = ASC_VEC2I(args.x, args.y), | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 133 | .origin2d = ASC_VEC2I(args.origin_x, args.origin_y) | 
| 
4d184a8706b1
add asc_scene_node_init() - fixes #695
 Mike Becker <universe@uap-core.de> parents: 
206diff
changeset | 134 | ); | 
| 88 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 135 | |
| 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 136 | return node; | 
| 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 137 | } | 
| 
6234b7ea48f3
add support for 2d textures in sprite shader - fixes #386
 Mike Becker <universe@uap-core.de> parents: 
82diff
changeset | 138 | |
| 195 
f9e9b7425ed3
improve signature of asc_sprite_set_size()
 Mike Becker <universe@uap-core.de> parents: 
189diff
changeset | 139 | void asc_sprite_set_size(AscSprite *sprite, asc_vec2u size) { | 
| 
f9e9b7425ed3
improve signature of asc_sprite_set_size()
 Mike Becker <universe@uap-core.de> parents: 
189diff
changeset | 140 | sprite->width = size.width; | 
| 
f9e9b7425ed3
improve signature of asc_sprite_set_size()
 Mike Becker <universe@uap-core.de> parents: 
189diff
changeset | 141 | sprite->height = size.height; | 
| 206 | 142 | asc_scene_node_update((AscSceneNode *) sprite); | 
| 118 | 143 | } | 
| 137 
f8e6e0ae61a8
remove pre-defined dummy textures by introducing conditional compilation for shaders
 Mike Becker <universe@uap-core.de> parents: 
122diff
changeset | 144 |