mirror of
https://github.com/wez/wezterm.git
synced 2024-12-25 14:22:37 +03:00
opengl uses different byteorder than our software renderer
so we need to byte swap depending on whether we are using opengl or not.
This commit is contained in:
parent
c30ffc2226
commit
702fff7ab7
@ -56,6 +56,7 @@ struct GlyphCache<T: Texture2d> {
|
||||
glyph_cache: HashMap<GlyphKey, Rc<CachedGlyph<T>>>,
|
||||
atlas: Atlas<T>,
|
||||
fonts: Rc<FontConfiguration>,
|
||||
byte_swap: bool,
|
||||
}
|
||||
|
||||
impl GlyphCache<ImageTexture> {
|
||||
@ -67,6 +68,7 @@ impl GlyphCache<ImageTexture> {
|
||||
fonts: Rc::clone(fonts),
|
||||
glyph_cache: HashMap::new(),
|
||||
atlas,
|
||||
byte_swap: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -90,6 +92,7 @@ impl GlyphCache<SrgbTexture2d> {
|
||||
fonts: Rc::clone(fonts),
|
||||
glyph_cache: HashMap::new(),
|
||||
atlas,
|
||||
byte_swap: false,
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -155,12 +158,21 @@ impl<T: Texture2d> GlyphCache<T> {
|
||||
scale,
|
||||
}
|
||||
} else {
|
||||
let raw_im = Image::with_rgba32(
|
||||
glyph.width as usize,
|
||||
glyph.height as usize,
|
||||
4 * glyph.width as usize,
|
||||
&glyph.data,
|
||||
);
|
||||
let raw_im = if self.byte_swap {
|
||||
Image::with_rgba32(
|
||||
glyph.width as usize,
|
||||
glyph.height as usize,
|
||||
4 * glyph.width as usize,
|
||||
&glyph.data,
|
||||
)
|
||||
} else {
|
||||
Image::with_bgra32(
|
||||
glyph.width as usize,
|
||||
glyph.height as usize,
|
||||
4 * glyph.width as usize,
|
||||
&glyph.data,
|
||||
)
|
||||
};
|
||||
|
||||
let bearing_x = glyph.bearing_x * scale;
|
||||
let bearing_y = glyph.bearing_y * scale;
|
||||
|
Loading…
Reference in New Issue
Block a user