Start on Scene::push_surface
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
co-authored by
Nathan Sobo
parent
d473b52f5a
commit
e12eaf8c58
@@ -13,6 +13,7 @@ use cocoa::base::{BOOL, NO, YES};
|
||||
pub use dispatcher::Dispatcher;
|
||||
pub use fonts::FontSystem;
|
||||
use platform::{MacForegroundPlatform, MacPlatform};
|
||||
pub use renderer::Surface;
|
||||
use std::{rc::Rc, sync::Arc};
|
||||
use window::Window;
|
||||
|
||||
|
||||
@@ -37,6 +37,10 @@ struct PathSprite {
|
||||
shader_data: shaders::GPUISprite,
|
||||
}
|
||||
|
||||
pub struct Surface {
|
||||
pub bounds: RectF,
|
||||
}
|
||||
|
||||
impl Renderer {
|
||||
pub fn new(
|
||||
device: metal::Device,
|
||||
|
||||
@@ -10,7 +10,7 @@ use crate::{
|
||||
fonts::{FontId, GlyphId},
|
||||
geometry::{rect::RectF, vector::Vector2F},
|
||||
json::ToJson,
|
||||
platform::CursorStyle,
|
||||
platform::{current::Surface, CursorStyle},
|
||||
ImageData,
|
||||
};
|
||||
pub use mouse_region::*;
|
||||
@@ -34,6 +34,7 @@ pub struct Layer {
|
||||
quads: Vec<Quad>,
|
||||
underlines: Vec<Underline>,
|
||||
images: Vec<Image>,
|
||||
surfaces: Vec<Surface>,
|
||||
shadows: Vec<Shadow>,
|
||||
glyphs: Vec<Glyph>,
|
||||
image_glyphs: Vec<ImageGlyph>,
|
||||
@@ -249,6 +250,10 @@ impl Scene {
|
||||
self.active_layer().push_image(image)
|
||||
}
|
||||
|
||||
pub fn push_surface(&mut self, surface: Surface) {
|
||||
self.active_layer().push_surface(surface)
|
||||
}
|
||||
|
||||
pub fn push_underline(&mut self, underline: Underline) {
|
||||
self.active_layer().push_underline(underline)
|
||||
}
|
||||
@@ -329,6 +334,7 @@ impl Layer {
|
||||
quads: Default::default(),
|
||||
underlines: Default::default(),
|
||||
images: Default::default(),
|
||||
surfaces: Default::default(),
|
||||
shadows: Default::default(),
|
||||
image_glyphs: Default::default(),
|
||||
glyphs: Default::default(),
|
||||
@@ -391,6 +397,12 @@ impl Layer {
|
||||
}
|
||||
}
|
||||
|
||||
fn push_surface(&mut self, surface: Surface) {
|
||||
if can_draw(surface.bounds) {
|
||||
self.surfaces.push(surface);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn images(&self) -> &[Image] {
|
||||
self.images.as_slice()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user