Add tessellation option to toggle rounding text to pixel coordinates
On by default and only there for testing
This commit is contained in:
parent
8e4fd942a9
commit
ddd52f47c5
2 changed files with 14 additions and 1 deletions
|
@ -136,6 +136,7 @@ impl Widget for &mut epaint::TessellationOptions {
|
||||||
aa_size: _,
|
aa_size: _,
|
||||||
anti_alias,
|
anti_alias,
|
||||||
coarse_tessellation_culling,
|
coarse_tessellation_culling,
|
||||||
|
round_text_to_pixels,
|
||||||
debug_paint_clip_rects,
|
debug_paint_clip_rects,
|
||||||
debug_paint_text_rects,
|
debug_paint_text_rects,
|
||||||
debug_ignore_clip_rects,
|
debug_ignore_clip_rects,
|
||||||
|
@ -147,6 +148,9 @@ impl Widget for &mut epaint::TessellationOptions {
|
||||||
coarse_tessellation_culling,
|
coarse_tessellation_culling,
|
||||||
"Do coarse culling in the tessellator",
|
"Do coarse culling in the tessellator",
|
||||||
);
|
);
|
||||||
|
ui.checkbox(round_text_to_pixels, "Align text positions to pixel grid")
|
||||||
|
.on_hover_text("Most text already is, so don't expect to see a large change.");
|
||||||
|
|
||||||
ui.checkbox(debug_ignore_clip_rects, "Ignore clip rectangles");
|
ui.checkbox(debug_ignore_clip_rects, "Ignore clip rectangles");
|
||||||
ui.checkbox(debug_paint_clip_rects, "Paint clip rectangles");
|
ui.checkbox(debug_paint_clip_rects, "Paint clip rectangles");
|
||||||
ui.checkbox(debug_paint_text_rects, "Paint text bounds");
|
ui.checkbox(debug_paint_text_rects, "Paint text bounds");
|
||||||
|
|
|
@ -274,6 +274,10 @@ pub struct TessellationOptions {
|
||||||
/// This likely makes
|
/// This likely makes
|
||||||
pub coarse_tessellation_culling: bool,
|
pub coarse_tessellation_culling: bool,
|
||||||
|
|
||||||
|
/// If `true` (default) align text to mesh grid.
|
||||||
|
/// This makes the text sharper on most platforms.
|
||||||
|
pub round_text_to_pixels: bool,
|
||||||
|
|
||||||
/// Output the clip rectangles to be painted.
|
/// Output the clip rectangles to be painted.
|
||||||
pub debug_paint_clip_rects: bool,
|
pub debug_paint_clip_rects: bool,
|
||||||
|
|
||||||
|
@ -291,6 +295,7 @@ impl Default for TessellationOptions {
|
||||||
aa_size: 1.0,
|
aa_size: 1.0,
|
||||||
anti_alias: true,
|
anti_alias: true,
|
||||||
coarse_tessellation_culling: true,
|
coarse_tessellation_culling: true,
|
||||||
|
round_text_to_pixels: true,
|
||||||
debug_paint_text_rects: false,
|
debug_paint_text_rects: false,
|
||||||
debug_paint_clip_rects: false,
|
debug_paint_clip_rects: false,
|
||||||
debug_ignore_clip_rects: false,
|
debug_ignore_clip_rects: false,
|
||||||
|
@ -311,7 +316,11 @@ impl TessellationOptions {
|
||||||
impl TessellationOptions {
|
impl TessellationOptions {
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn round_to_pixel(&self, point: f32) -> f32 {
|
pub fn round_to_pixel(&self, point: f32) -> f32 {
|
||||||
(point * self.pixels_per_point).round() / self.pixels_per_point
|
if self.round_text_to_pixels {
|
||||||
|
(point * self.pixels_per_point).round() / self.pixels_per_point
|
||||||
|
} else {
|
||||||
|
point
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue