Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Comments

Always use the correct representation when drawing image#2044

Open
bdolman wants to merge 2 commits intoTextureGroup:master from
Hitlabs:fix-dynamic-images
Open

Always use the correct representation when drawing image #2044
bdolman wants to merge 2 commits intoTextureGroup:master from
Hitlabs:fix-dynamic-images

Conversation

@bdolman
Copy link
Contributor

@bdolman bdolman commented Nov 24, 2021

Before this change, the image asset (which may contain multiple reps
of an image for differing traits) was only consulted when the trait
collection changed. But in cases where display was scheduled
on the node and the trait collection had not changed, the image node
ends up with the default representation instead.

An example of this:

You have an image asset with two versions: light (default) and dark.
The device is currently in dark mode
The image is being presented in an item in a collection node.

  1. Item node is first added to hierarchy. Trait collection doesn't match
    so regenerateFromImageAsset=true.
  2. Dark image is rendered, as expected
  3. Item node is scrolled off screen
  4. Item is scrolled back on screen
  5. This triggers display on the item node
  6. Trait collection has NOT changed so regenerateFromImageAsset=false
  7. So, imageAsset is not consulted and default (Light) image is rendered

After looking at this a lot, I don’t see any reason why we need the
regenerateFromImageAsset flag at all (introduced in #1663). Whenever
the image node is displayed we need to make sure we are generating the
correct representation.

Before this change, the image asset (which may contain multiple reps
of an image for differing traits) was only consulted when the trait
collection changed. But in cases where display was scheduled
on the node and the trait collection had not changed, the image node
ends up with the default representation instead.
An example of this:
You have an image asset with two versions: light (default) and dark.
The device is currently in dark mode
The image is being presented in an item in a collection node.
1. Item node is first added to hierarchy. Trait collection doesn't match
so regenerateFromImageAsset=true.
2. Dark image is rendered, as expected
3. Item node is scrolled off screen
4. Item is scrolled back on screen
5. This triggers display on the item node
6. Trait collection has NOT changed so regenerateFromImageAsset=false
7. So, imageAsset is not consulted and default (Light) image is rendered
After looking at this a lot, I don’t see any reason why we need the
regenerateFromImageAsset flag at all (introduced in TextureGroup#1663). Whenever
the image node is displayed we need to make sure we are generating the
correct representation.
Copy link

CLAassistant commented Nov 24, 2021
edited
Loading

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /