Texture Management
Referencing
- Textures are referenced by file name
- Material nodes have absolute (!) texture file names in Properties for the textures they reference
- Textures are not loaded in the backend, only their names are stored
Data management
- A central cache avoids textures from being loaded multiple times
- When texture data is needed, the Framebuffer is requested from the cache with the texture's file name (relative file name would be great here) as the key
Specific use cases
The following use cases are relevant:
- A material is set to use a texture
- A material is updated to use a different texture: a) the old texture is still referenced somewhere, b) the old texture is no longer referenced
- The UV editor should display a texture
- The OpenGL preview rendering for a material needs to use the texture
- A texture needs to be made available to a rendering engine (e.g. Sunflow)
