render: simplify construction of RendererBase
This commit is contained in:
parent
2dc2dc1123
commit
85c11448fb
2 changed files with 15 additions and 31 deletions
|
|
@ -173,15 +173,19 @@ impl dyn GfxFramebuffer {
|
||||||
self.render(ops, Some(&Color { r, g, b, a }));
|
self.render(ops, Some(&Color { r, g, b, a }));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn renderer_base<'a>(&self, ops: &'a mut Vec<GfxApiOpt>, scale: Scale) -> RendererBase<'a> {
|
||||||
|
RendererBase {
|
||||||
|
ops,
|
||||||
|
scaled: scale != 1,
|
||||||
|
scale,
|
||||||
|
scalef: scale.to_f64(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn copy_texture(&self, texture: &Rc<dyn GfxTexture>, x: i32, y: i32) {
|
pub fn copy_texture(&self, texture: &Rc<dyn GfxTexture>, x: i32, y: i32) {
|
||||||
let mut ops = self.take_render_ops();
|
let mut ops = self.take_render_ops();
|
||||||
let scale = Scale::from_int(1);
|
let scale = Scale::from_int(1);
|
||||||
let mut renderer = RendererBase {
|
let mut renderer = self.renderer_base(&mut ops, scale);
|
||||||
ops: &mut ops,
|
|
||||||
scaled: false,
|
|
||||||
scale,
|
|
||||||
scalef: 1.0,
|
|
||||||
};
|
|
||||||
renderer.render_texture(texture, x, y, None, None, scale, None);
|
renderer.render_texture(texture, x, y, None, None, scale, None);
|
||||||
let clear = self.format().has_alpha.then_some(&Color::TRANSPARENT);
|
let clear = self.format().has_alpha.then_some(&Color::TRANSPARENT);
|
||||||
self.render(ops, clear);
|
self.render(ops, clear);
|
||||||
|
|
@ -194,12 +198,7 @@ impl dyn GfxFramebuffer {
|
||||||
f: &mut dyn FnMut(&mut RendererBase),
|
f: &mut dyn FnMut(&mut RendererBase),
|
||||||
) {
|
) {
|
||||||
let mut ops = self.take_render_ops();
|
let mut ops = self.take_render_ops();
|
||||||
let mut renderer = RendererBase {
|
let mut renderer = self.renderer_base(&mut ops, scale);
|
||||||
ops: &mut ops,
|
|
||||||
scaled: scale != 1,
|
|
||||||
scale,
|
|
||||||
scalef: scale.to_f64(),
|
|
||||||
};
|
|
||||||
f(&mut renderer);
|
f(&mut renderer);
|
||||||
self.render(ops, clear);
|
self.render(ops, clear);
|
||||||
}
|
}
|
||||||
|
|
@ -217,12 +216,7 @@ impl dyn GfxFramebuffer {
|
||||||
let mut ops = self.take_render_ops();
|
let mut ops = self.take_render_ops();
|
||||||
let (width, height) = self.size();
|
let (width, height) = self.size();
|
||||||
let mut renderer = Renderer {
|
let mut renderer = Renderer {
|
||||||
base: RendererBase {
|
base: self.renderer_base(&mut ops, scale),
|
||||||
ops: &mut ops,
|
|
||||||
scaled: scale != 1,
|
|
||||||
scale,
|
|
||||||
scalef: scale.to_f64(),
|
|
||||||
},
|
|
||||||
state,
|
state,
|
||||||
result,
|
result,
|
||||||
logical_extents: node.node_absolute_position().at_point(0, 0),
|
logical_extents: node.node_absolute_position().at_point(0, 0),
|
||||||
|
|
@ -313,12 +307,7 @@ impl dyn GfxFramebuffer {
|
||||||
let mut ops = self.take_render_ops();
|
let mut ops = self.take_render_ops();
|
||||||
let (width, height) = self.size();
|
let (width, height) = self.size();
|
||||||
let mut renderer = Renderer {
|
let mut renderer = Renderer {
|
||||||
base: RendererBase {
|
base: self.renderer_base(&mut ops, scale),
|
||||||
ops: &mut ops,
|
|
||||||
scaled: scale != 1,
|
|
||||||
scale,
|
|
||||||
scalef: scale.to_f64(),
|
|
||||||
},
|
|
||||||
state,
|
state,
|
||||||
result: None,
|
result: None,
|
||||||
logical_extents: Rect::new_empty(0, 0),
|
logical_extents: Rect::new_empty(0, 0),
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ use {
|
||||||
leaks::Tracker,
|
leaks::Tracker,
|
||||||
logger::Logger,
|
logger::Logger,
|
||||||
rect::Rect,
|
rect::Rect,
|
||||||
renderer::{renderer_base::RendererBase, RenderResult, Renderer},
|
renderer::{RenderResult, Renderer},
|
||||||
scale::Scale,
|
scale::Scale,
|
||||||
theme::{Color, Theme},
|
theme::{Color, Theme},
|
||||||
tree::{
|
tree::{
|
||||||
|
|
@ -771,12 +771,7 @@ impl State {
|
||||||
let mut ops = target.take_render_ops();
|
let mut ops = target.take_render_ops();
|
||||||
let (width, height) = target.size();
|
let (width, height) = target.size();
|
||||||
let mut renderer = Renderer {
|
let mut renderer = Renderer {
|
||||||
base: RendererBase {
|
base: target.renderer_base(&mut ops, Scale::from_int(1)),
|
||||||
ops: &mut ops,
|
|
||||||
scaled: false,
|
|
||||||
scale: Scale::from_int(1),
|
|
||||||
scalef: 1.0,
|
|
||||||
},
|
|
||||||
state: self,
|
state: self,
|
||||||
result: None,
|
result: None,
|
||||||
logical_extents: position.at_point(0, 0),
|
logical_extents: position.at_point(0, 0),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue