Skip to content
28 changes: 14 additions & 14 deletions crates/bevy_sprite_render/src/text2d/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use bevy_ecs::{
system::{Commands, Query, Res, ResMut},
};
use bevy_image::prelude::*;
use bevy_math::Vec2;
use bevy_math::{Vec2, Vec3};
use bevy_render::sync_world::TemporaryRenderEntity;
use bevy_render::Extract;
use bevy_sprite::{Anchor, Text2dShadow};
Expand Down Expand Up @@ -65,9 +65,9 @@ pub fn extract_text2d_sprite(
global_transform,
) in text2d_query.iter()
{
let scaling = GlobalTransform::from_scale(
Vec2::splat(text_layout_info.scale_factor.recip()).extend(1.),
);
let inverse_scale_factor = text_layout_info.scale_factor.recip();
let scaling =
GlobalTransform::from_scale(Vec3::new(inverse_scale_factor, -inverse_scale_factor, 1.));
if !view_visibility.get() {
continue;
}
Expand All @@ -85,7 +85,7 @@ pub fn extract_text2d_sprite(
continue;
};
let render_entity = commands.spawn(TemporaryRenderEntity).id();
let offset = Vec2::new(run.bounds.center().x, -run.bounds.center().y);
let offset = run.bounds.center();
let transform = *global_transform
* GlobalTransform::from_translation(top_left.extend(0.))
* scaling
Expand All @@ -97,7 +97,7 @@ pub fn extract_text2d_sprite(
color: text_background_color.0.into(),
image_handle_id: AssetId::default(),
flip_x: false,
flip_y: false,
flip_y: true,
kind: ExtractedSpriteKind::Single {
anchor: Vec2::ZERO,
rect: None,
Expand Down Expand Up @@ -128,7 +128,7 @@ pub fn extract_text2d_sprite(
.textures[atlas_info.location.glyph_index]
.as_rect();
extracted_slices.slices.push(ExtractedSlice {
offset: Vec2::new(position.x, -position.y),
offset: *position,
rect,
size: rect.size(),
});
Expand All @@ -146,7 +146,7 @@ pub fn extract_text2d_sprite(
color,
image_handle_id: atlas_info.texture,
flip_x: false,
flip_y: false,
flip_y: true,
kind: ExtractedSpriteKind::Slices {
indices: start..end,
},
Expand All @@ -167,7 +167,7 @@ pub fn extract_text2d_sprite(

if has_strikethrough {
let render_entity = commands.spawn(TemporaryRenderEntity).id();
let offset = run.strikethrough_position() * Vec2::new(1., -1.);
let offset = run.strikethrough_position();
let transform =
shadow_transform * GlobalTransform::from_translation(offset.extend(0.));
extracted_sprites.sprites.push(ExtractedSprite {
Expand All @@ -189,7 +189,7 @@ pub fn extract_text2d_sprite(

if has_underline {
let render_entity = commands.spawn(TemporaryRenderEntity).id();
let offset = run.underline_position() * Vec2::new(1., -1.);
let offset = run.underline_position();
let transform =
shadow_transform * GlobalTransform::from_translation(offset.extend(0.));
extracted_sprites.sprites.push(ExtractedSprite {
Expand Down Expand Up @@ -245,7 +245,7 @@ pub fn extract_text2d_sprite(
.textures[atlas_info.location.glyph_index]
.as_rect();
extracted_slices.slices.push(ExtractedSlice {
offset: Vec2::new(position.x, -position.y),
offset: *position,
rect,
size: rect.size(),
});
Expand All @@ -261,7 +261,7 @@ pub fn extract_text2d_sprite(
color,
image_handle_id: atlas_info.texture,
flip_x: false,
flip_y: false,
flip_y: true,
kind: ExtractedSpriteKind::Slices {
indices: start..end,
},
Expand Down Expand Up @@ -290,7 +290,7 @@ pub fn extract_text2d_sprite(
.unwrap_or(text_color.0)
.to_linear();
let render_entity = commands.spawn(TemporaryRenderEntity).id();
let offset = run.strikethrough_position() * Vec2::new(1., -1.);
let offset = run.strikethrough_position();
let transform = *global_transform
* GlobalTransform::from_translation(top_left.extend(0.))
* scaling
Expand Down Expand Up @@ -318,7 +318,7 @@ pub fn extract_text2d_sprite(
.unwrap_or(text_color.0)
.to_linear();
let render_entity = commands.spawn(TemporaryRenderEntity).id();
let offset = run.underline_position() * Vec2::new(1., -1.);
let offset = run.underline_position();
let transform = *global_transform
* GlobalTransform::from_translation(top_left.extend(0.))
* scaling
Expand Down