mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-06 02:48:27 +00:00
Prepare for rendering list of operations
This commit is contained in:
parent
c74a6399ff
commit
5680b13607
@ -2,6 +2,10 @@ pub struct TextRenderer {
|
|||||||
text_atlas: glyphon::TextAtlas,
|
text_atlas: glyphon::TextAtlas,
|
||||||
viewport: glyphon::Viewport,
|
viewport: glyphon::Viewport,
|
||||||
text_renderer: glyphon::TextRenderer,
|
text_renderer: glyphon::TextRenderer,
|
||||||
|
font_system: glyphon::FontSystem,
|
||||||
|
buffer: glyphon::Buffer,
|
||||||
|
swash_cache: glyphon::SwashCache,
|
||||||
|
scale_factor: f32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TextRenderer {
|
impl TextRenderer {
|
||||||
@ -12,7 +16,7 @@ impl TextRenderer {
|
|||||||
scale_factor: f32,
|
scale_factor: f32,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let cache = glyphon::Cache::new(device);
|
let cache = glyphon::Cache::new(device);
|
||||||
let mut swash_cache = glyphon::SwashCache::new();
|
let swash_cache = glyphon::SwashCache::new();
|
||||||
|
|
||||||
let mut text_atlas = glyphon::TextAtlas::new(
|
let mut text_atlas = glyphon::TextAtlas::new(
|
||||||
device,
|
device,
|
||||||
@ -30,7 +34,7 @@ impl TextRenderer {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut text_renderer = glyphon::TextRenderer::new(
|
let text_renderer = glyphon::TextRenderer::new(
|
||||||
&mut text_atlas,
|
&mut text_atlas,
|
||||||
device,
|
device,
|
||||||
wgpu::MultisampleState::default(),
|
wgpu::MultisampleState::default(),
|
||||||
@ -59,18 +63,36 @@ impl TextRenderer {
|
|||||||
glyphon::Shaping::Advanced,
|
glyphon::Shaping::Advanced,
|
||||||
);
|
);
|
||||||
|
|
||||||
text_renderer
|
Self {
|
||||||
|
text_atlas,
|
||||||
|
viewport,
|
||||||
|
text_renderer,
|
||||||
|
font_system,
|
||||||
|
buffer,
|
||||||
|
swash_cache,
|
||||||
|
scale_factor,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn render(
|
||||||
|
&mut self,
|
||||||
|
device: &wgpu::Device,
|
||||||
|
queue: &wgpu::Queue,
|
||||||
|
surface_config: &wgpu::SurfaceConfiguration,
|
||||||
|
render_pass: &mut wgpu::RenderPass,
|
||||||
|
) -> anyhow::Result<()> {
|
||||||
|
self.text_renderer
|
||||||
.prepare(
|
.prepare(
|
||||||
device,
|
device,
|
||||||
queue,
|
queue,
|
||||||
&mut font_system,
|
&mut self.font_system,
|
||||||
&mut text_atlas,
|
&mut self.text_atlas,
|
||||||
&viewport,
|
&self.viewport,
|
||||||
[glyphon::TextArea {
|
[glyphon::TextArea {
|
||||||
buffer: &buffer,
|
buffer: &self.buffer,
|
||||||
left: 0.,
|
left: 0.,
|
||||||
top: 0.,
|
top: 0.,
|
||||||
scale: scale_factor,
|
scale: self.scale_factor,
|
||||||
bounds: glyphon::TextBounds {
|
bounds: glyphon::TextBounds {
|
||||||
left: 0,
|
left: 0,
|
||||||
top: 0,
|
top: 0,
|
||||||
@ -80,24 +102,10 @@ impl TextRenderer {
|
|||||||
default_color: glyphon::Color::rgb(0, 0, 0),
|
default_color: glyphon::Color::rgb(0, 0, 0),
|
||||||
custom_glyphs: &[],
|
custom_glyphs: &[],
|
||||||
}],
|
}],
|
||||||
&mut swash_cache,
|
&mut self.swash_cache,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
Self {
|
|
||||||
text_atlas,
|
|
||||||
viewport,
|
|
||||||
text_renderer,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn render(
|
|
||||||
&mut self,
|
|
||||||
_: &wgpu::Device,
|
|
||||||
_: &wgpu::Queue,
|
|
||||||
_: &wgpu::SurfaceConfiguration,
|
|
||||||
render_pass: &mut wgpu::RenderPass,
|
|
||||||
) -> anyhow::Result<()> {
|
|
||||||
self.text_renderer.render(
|
self.text_renderer.render(
|
||||||
&self.text_atlas,
|
&self.text_atlas,
|
||||||
&self.viewport,
|
&self.viewport,
|
||||||
|
Loading…
Reference in New Issue
Block a user