Skip to content

Set GL_TEXTURE_MAX_LEVEL for DDS files with incomplete mip chain #45

@AnyOldName3

Description

@AnyOldName3

There are DDS files in the wild that don't specify a complete mip chain with mipmaps all the way down to 1x1. When loading such files with SOIL2, the resulting texture isn't mipmap-complete, and OpenGL implementations don't have to display it as expected (e.g. modern AMD hardware with their proprietary Windows drivers samples everything as opaque black), but there's no indication of this to the programmer.

As I'm not currently hitting this with production code, just a quick test application, I can just add a glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 3) call after loading the offending texture, but it would be better if SOIL2 either gave some way of querying which mip levels the file actually contained, or set the correct max level automatically. I imagine that the flag to enable a glGenerateMipmap call would fix the symptom, too, but it isn't ideal if there's custom mip data as it overwrites all levels other than the base level.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions