src/sprite.c

changeset 117
d1267f656a97
parent 116
bfb2a7d62047
child 118
830608f7e7d9
equal deleted inserted replaced
116:bfb2a7d62047 117:d1267f656a97
57 57
58 node->position = asc_vec3f_new(args.x, args.y, ASC_SCENE_2D_DEPTH_OFFSET); 58 node->position = asc_vec3f_new(args.x, args.y, ASC_SCENE_2D_DEPTH_OFFSET);
59 node->scale = asc_vec3f_one; 59 node->scale = asc_vec3f_one;
60 asc_node_update_transform(node); 60 asc_node_update_transform(node);
61 61
62 // calculate texture parameters
63 asc_vec2f uv_scale;
64 uv_scale.u = ASC_NONZERO_OR(1.f, args.texture_scale_x);
65 uv_scale.v = ASC_NONZERO_OR(1.f, args.texture_scale_y);
66 if (args.texture_scale_mode == ASC_TEXTURE_SCALE_REPEAT) {
67 uv_scale = asc_texture_calculate_uv_scale(args.texture,
68 asc_vec2u_new(args.width, args.height), uv_scale);
69 }
70
62 // initialize mesh 71 // initialize mesh
63 asc_mesh_plane_2d(&sprite->mesh, 72 asc_mesh_plane_2d(&sprite->mesh,
64 .size = asc_vec2f_new(args.width, args.height), 73 .size = asc_vec2f_new(args.width, args.height),
65 // TODO: support different texture modes 74 .uv_scale = uv_scale
66 ); 75 );
67 76
68 return node; 77 return node;
69 } 78 }
70 79

mercurial