diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-10-02 08:48:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-02 08:48:19 +0200 |
commit | 09bf1b35c0310617924fc4eaca32d5b91460d492 (patch) | |
tree | 8039332ce9b91780bc5ad09ec5092c165b1e2133 /scene/2d/cpu_particles_2d.cpp | |
parent | bf1c81adf4b1584470318d25fa2ef67e261874cf (diff) | |
parent | 9f21fcf8794568d9ee2dce04a8a066b10721bfad (diff) |
Merge pull request #32459 from bitstopper/master
Fixes CPUParticles2D not making use of AtlasTextures
Diffstat (limited to 'scene/2d/cpu_particles_2d.cpp')
-rw-r--r-- | scene/2d/cpu_particles_2d.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index 85c423964b..b5e5fe51d1 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -166,10 +166,20 @@ void CPUParticles2D::_update_mesh_texture() { vertices.push_back(-tex_size * 0.5 + Vector2(tex_size.x, tex_size.y)); vertices.push_back(-tex_size * 0.5 + Vector2(0, tex_size.y)); PoolVector<Vector2> uvs; - uvs.push_back(Vector2(0, 0)); - uvs.push_back(Vector2(1, 0)); - uvs.push_back(Vector2(1, 1)); - uvs.push_back(Vector2(0, 1)); + AtlasTexture *at = Object::cast_to<AtlasTexture>(*texture); + if (!at) { + uvs.push_back(Vector2(0, 0)); + uvs.push_back(Vector2(1, 0)); + uvs.push_back(Vector2(1, 1)); + uvs.push_back(Vector2(0, 1)); + } else { + Rect2 region_rect = at->get_region(); + Size2 atlas_size = at->get_atlas()->get_size(); + uvs.push_back(Vector2(region_rect.position.x / atlas_size.x, region_rect.position.y / atlas_size.y)); + uvs.push_back(Vector2((region_rect.position.x + region_rect.size.x) / atlas_size.x, region_rect.position.y / atlas_size.y)); + uvs.push_back(Vector2((region_rect.position.x + region_rect.size.x) / atlas_size.x, (region_rect.position.y + region_rect.size.y) / atlas_size.y)); + uvs.push_back(Vector2(region_rect.position.x / atlas_size.x, (region_rect.position.y + region_rect.size.y) / atlas_size.y)); + } PoolVector<Color> colors; colors.push_back(Color(1, 1, 1, 1)); colors.push_back(Color(1, 1, 1, 1)); |