Skip to content
This repository has been archived by the owner on Dec 28, 2021. It is now read-only.

Commit

Permalink
fix: Correctly place overlay over whole scene.
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelMauderer committed Mar 12, 2021
1 parent f0b928b commit b199fed
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 17 deletions.
12 changes: 8 additions & 4 deletions src/rust/ensogl/lib/components/src/label.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,16 @@ impl Model {
let display_object = display::object::Instance::new(&logger);
let label = app.new_view::<text::Area>();
let background = background::View::new(&logger);
display_object.add_child(&background);
display_object.add_child(&label);

// Depth sorting of labels to in front of the background.
// FIXME[MM/WD]: Depth sorting of labels to in front of everything else in the scene.
// Temporary solution. The depth management needs to allow defining relative position of
// the text and background and let the whole component to be set to am an arbitrary layer.
label.remove_from_scene_layer_DEPRECATED(&scene.layers.main);
label.add_to_scene_layer_DEPRECATED(&scene.layers.label);
label.add_to_scene_layer_DEPRECATED(&scene.layers.tooltip_text);
scene.layers.tooltip_background.add_exclusive(&background);

display_object.add_child(&background);
display_object.add_child(&label);

let style = StyleWatch::new(&app.display.scene().style_sheet);

Expand Down
37 changes: 24 additions & 13 deletions src/rust/ensogl/lib/core/src/display/scene.rs
Original file line number Diff line number Diff line change
Expand Up @@ -603,11 +603,15 @@ impl Renderer {
/// should be abstracted away in the future.
#[derive(Clone,CloneRef,Debug)]
pub struct HardcodedLayers {
pub viz : Layer,
pub below_main : Layer,
pub viz : Layer,
pub below_main : Layer,
// main <- here is the 'main` layer inserted.
pub cursor : Layer,
pub label : Layer,
pub cursor : Layer,
pub label : Layer,

pub tooltip_background : Layer,
pub tooltip_text : Layer,

pub viz_fullscreen : Layer,
pub breadcrumbs : Layer,
layers : Layers,
Expand All @@ -622,23 +626,30 @@ impl Deref for HardcodedLayers {

impl HardcodedLayers {
pub fn new(logger:impl AnyLogger) -> Self {
let layers = Layers::new(logger);
let viz = layers.new_layer();
let cursor = layers.new_layer();
let label = layers.new_layer();
let viz_fullscreen = layers.new_layer();
let below_main = layers.new_layer();
let breadcrumbs = layers.new_layer();
let layers = Layers::new(logger);
let viz = layers.new_layer();
let cursor = layers.new_layer();
let label = layers.new_layer();
let tooltip_background = layers.new_layer();
let tooltip_text = layers.new_layer();
let viz_fullscreen = layers.new_layer();
let below_main = layers.new_layer();
let breadcrumbs = layers.new_layer();
viz.set_camera(layers.main.camera());
label.set_camera(layers.main.camera());
tooltip_background.set_camera(layers.main.camera());
tooltip_text.set_camera(layers.main.camera());
below_main.set_camera(layers.main.camera());
layers.add_layers_order_dependency(&viz,&below_main);
layers.add_layers_order_dependency(&below_main,&layers.main);
layers.add_layers_order_dependency(&layers.main,&cursor);
layers.add_layers_order_dependency(&cursor,&label);
layers.add_layers_order_dependency(&label,&viz_fullscreen);
layers.add_layers_order_dependency(&label,&tooltip_background);
layers.add_layers_order_dependency(&tooltip_background,&tooltip_text);
layers.add_layers_order_dependency(&tooltip_text,&viz_fullscreen);
layers.add_layers_order_dependency(&viz_fullscreen,&breadcrumbs);
Self {layers,viz,cursor,label,viz_fullscreen,below_main,breadcrumbs}
Self {layers,viz,cursor,label,viz_fullscreen,below_main,breadcrumbs,tooltip_background,
tooltip_text}
}
}

Expand Down

0 comments on commit b199fed

Please sign in to comment.