Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

changes to image adding when using Image in GUI #15260

Merged
merged 1 commit into from
Jul 9, 2024

Conversation

RaananW
Copy link
Member

@RaananW RaananW commented Jul 9, 2024

This changes the behavior that was added to support svg files:

  1. Only SVGs are added to the DOM (files that end with .svg)
  2. The SVGs are removed from thee DOM right after they are no longer needed.

PG for testing: #XCPP9Y#21986

@RaananW RaananW requested a review from deltakosh July 9, 2024 12:16
@bjsplat
Copy link
Collaborator

bjsplat commented Jul 9, 2024

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 9, 2024

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 9, 2024

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 9, 2024

@RaananW RaananW merged commit 0e7a3f0 into BabylonJS:master Jul 9, 2024
12 checks passed
@@ -583,10 +583,12 @@ export class Image extends Control {
this._domImage = engine.createCanvasImage();
// need to add to enforce rendering
const imgElement = this._domImage as HTMLImageElement;
if (imgElement.style) {
let addedToDom = false;
if (imgElement.style && this._source?.endsWith(".svg")) {
imgElement.style.visibility = "hidden";
imgElement.style.position = "absolute";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to have something like "top: 0" or this will change the page layout and increase height of parent container.

also quality check: ensure these images are not appearing overtop of the canvas. Prepend them to the parent container to ensure they are before the canvas/3d view. Because of native z layering which is determined by ascending order (afaik, from past experience), that will cause them to always be underneath the canvas.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

concern is that there'd be a scrollbar appearing briefly due to this. Not 100% sure if it would be observed by the user, but its highly likely if the onload is an async callback with time to render the page in between.
A screenshot regression test will not reveal the temporary layout change if its only taken at the end. A video would of course.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the add and remove happen on the same frame, synchronous. This should not change user layout

@RaananW RaananW deleted the addImageOnlyWhenNeeded branch July 11, 2024 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants