Software decoding for S3TC textures
Now that the S3TC patent on texture compression has "expired":https://www.phoronix.com/scan.php?page=news_item&px=S3TC-For-Mesa-Finally, we can finally add software decoding for these textures in OpenMW. This will:
- Allow OpenMW to run with graphics drivers not supporting S3TC (e.g. Raspberry PI)
- Allow our "cursor decoding":https://github.com/OpenMW/openmw/blob/master/components/sdlutil/sdlcursormanager.cpp#L85 to be improved, which should resolve bug #3567 (closed) . (Morrowind's cursor textures need to be uncompressed to be usable as a hardware cursor for SDL. Currently we do this by rendering the texture on the GPU then downloading it back to main memory. This is slow, not very elegant, relies on deprecated 'PBuffer' extension and appears to also trigger bugs in OS X graphics drivers).
The decoding should ideally be implemented as an option in OSG's DDS reader so that other projects can benefit from it. For the time being we can also add a copy to OpenMW's code so we don't have to wait for a new OSG version.
Possibly useful references:
- "OgreDDSCodec":https://bitbucket.org/sinbad/ogre/src/da9d8b010d332a5da5a0ce6fb0c0b654e2e9b299/OgreMain/src/OgreDDSCodec.cpp?at=default
- "libsquish":https://code.google.com/archive/p/libsquish/
- "OSG submission":http://forum.openscenegraph.org/viewtopic.php?p=66554
(RM-4137 from redmine: created on 2017-10-03 by scrawl ., , closed on 2017-10-15 by nobody, relates #3567 (closed))