Fix AtlasTexture usage in Sprite3D.
Changes as requested inb484d5c
. (cherry picked from commit4b545e3105
)
This commit is contained in:
parent
9d006730ad
commit
d1c93a0af3
|
@ -366,6 +366,16 @@ void Sprite3D::_draw() {
|
||||||
final_rect.position * pixel_size,
|
final_rect.position * pixel_size,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Vector2 src_tsize = Vector2(texture->get_width(), texture->get_height());
|
||||||
|
|
||||||
|
// Properly setup UVs for impostor textures (AtlasTexture).
|
||||||
|
Ref<AtlasTexture> atlas_tex = texture;
|
||||||
|
if (atlas_tex != NULL) {
|
||||||
|
src_tsize[0] = atlas_tex->get_atlas()->get_width();
|
||||||
|
src_tsize[1] = atlas_tex->get_atlas()->get_height();
|
||||||
|
}
|
||||||
|
|
||||||
Vector2 uvs[4] = {
|
Vector2 uvs[4] = {
|
||||||
final_src_rect.position / tsize,
|
final_src_rect.position / tsize,
|
||||||
(final_src_rect.position + Vector2(final_src_rect.size.x, 0)) / tsize,
|
(final_src_rect.position + Vector2(final_src_rect.size.x, 0)) / tsize,
|
||||||
|
@ -656,6 +666,16 @@ void AnimatedSprite3D::_draw() {
|
||||||
final_rect.position * pixel_size,
|
final_rect.position * pixel_size,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Vector2 src_tsize = Vector2(texture->get_width(), texture->get_height());
|
||||||
|
|
||||||
|
// Properly setup UVs for impostor textures (AtlasTexture).
|
||||||
|
Ref<AtlasTexture> atlas_tex = texture;
|
||||||
|
if (atlas_tex != NULL) {
|
||||||
|
src_tsize[0] = atlas_tex->get_atlas()->get_width();
|
||||||
|
src_tsize[1] = atlas_tex->get_atlas()->get_height();
|
||||||
|
}
|
||||||
|
|
||||||
Vector2 uvs[4] = {
|
Vector2 uvs[4] = {
|
||||||
final_src_rect.position / tsize,
|
final_src_rect.position / tsize,
|
||||||
(final_src_rect.position + Vector2(final_src_rect.size.x, 0)) / tsize,
|
(final_src_rect.position + Vector2(final_src_rect.size.x, 0)) / tsize,
|
||||||
|
|
Loading…
Reference in New Issue