Skip to content

TextureLayered subclasses don't serialize properly when created from a tool script #34312

Closed
@Shfty

Description

Godot version:
3.1.2 / 3.2 beta 3

OS/device including version:
Windows 10 Pro 10.0.18362 Build 18362

Issue description:
TextureLayered resources (as well as their Texture3D and TextureArray subclasses) can be created without issue via the import process by selecting the appropriate Import As option, but creating them from a tool script results in instances that can't be serialized.

I've been trying to use a TextureArray to implement a mipmap-friendly texture atlas for the Qodot project, which works well, but can't be saved into a scene due to this issue.

Steps to reproduce:

  • Open the project below
  • Open texture_array_test.tscn
  • Select the root scene node
  • Click the 'reload' checkbox in the inspector
  • A message detailing the contents of the created TextureArray will print to the log
  • Save the scene
  • The following error will appear in the log once per texture layer:
    • ERROR: Resource was not pre cached for the resource section, bug? At: scene/resources/resource_format_text.cpp:1372
  • Reload the scene
  • The following error will appear in the log, once per texture layer:
    -ERROR: _set_data: Condition ' !img.is_valid() ' is true. Continuing..: At: **scene/resources/texture.cpp:2093**
  • The TextureArray exported from the root node will now have empty layers

Minimal reproduction project:
TextureArrayBug.zip

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions