* Refactorings and code clean-up
* Major rework/standardization:
* DDSEncoderType, DX10DXGIFormat merged with DDSType for a single way to describe a DDS format
* Added constants for DXGI formats
* DDSImageWriteParam is now mutable and supports standard way of setting compression type
* DDSImageMetadata now supports more of the format
Performance:
* DDSReader now use seek() to jump to correct mipmap instead of reading all bytes
* DDSImageWriter now uses getTile(0, 0) instead of getData() for better performance
* Fix JavaDoc 🎉
* Sonar issues + roll back accidental check-in
* More clean-up: Removed optional flags from param, header size validation, metadata now reports compresion as lossy
* More clean-up: Now keeps stream byte order consistent (LE), support for Raster, more tests
* Mipmap support using ImageIO sequence API
* Added raster write test
+ fixed a small issue for PAM
* Sonar issues
* dds dxt10 support, with some certain supported DXGI Formats only.
* expand the supporting range for some DX10 DXGI Format in the DXGI_FORMAT enumeration
* readability and maintainability fixes, adding DXT10 test cases.
* java.awt.* -> java.awt.Dimension
* DDS header & BC1 writer
* BC4 Writer
* BC3 Writer
* BC1-5 writer support
* remove unused methods
* code fixes
* BC4 fix to resolve unwanted blocky effect.
* CI test fixes
* change bitflag setter functions
* temporary disable formats that does not have an encoder yet.
* resolving SonaQube issues.
* dds dxt10 support, with some certain supported DXGI Formats only.
* expand the supporting range for some DX10 DXGI Format in the DXGI_FORMAT enumeration
* readability and maintainability fixes, adding DXT10 test cases.
* java.awt.* -> java.awt.Dimension
* Basic wrapper around DDSReader.
Nasty hack to get initial plugin working...
Mark and Reset the imageinput stream when reading the header. Then read the whole buffer into DDSReader and generate a fixed BufferedImage ignoring the getDestination() BufferedImage.
* Read header (DDSHeader) and pass into DDSReader
Remove header methods using buffer offset addressing.
Switch endian for DX1-DX5 types
* Fix pixel order to ARGB
* Push ImageInputStream into DDSReader
Unable to determine buffer length (so as a hack I over allocate buffer and read)
```
byte[] buffer = new byte[width * height * 4];
int len = imageInput.read(buffer);
```
Added test files for all supported formats.
* Added processImageStarted and stubbed out processImageProgress and processReadAborted
Added all DDS format test cases to getTestData
* Remove offset and use imageInput.readFully
Reads next image calculating/updating width/height from mipmapLevel.
Probably will never get used as we only want the largest image returned.
* Code cleanup and added exception handling.
* Use Enum DDSType instead of int values.
Pass imageIndex into mipmap.
* Update imageio/imageio-dds/src/main/java/com/twelvemonkeys/imageio/plugins/dds/DDSHeader.java
Improve IIOException "Invalid DDS header size"
Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
* Update imageio/imageio-dds/src/main/java/com/twelvemonkeys/imageio/plugins/dds/DDSHeader.java
Improve Magic IIOException
Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>
* Delete .run directory
* Format tabs -> 4 spaces
* Convert 4byte array into %08x string format.
* Don't need to expose classes outside the package
DDSHeader, DDSReader, DDSType
* (fix) wrong public...
* Move setByteOrder to DDSImageReader.readHeader
* Use imageIndex to calculate height/width and buffer offset.
* Delete .gitignore
* Revert "Delete .gitignore"
This reverts commit 71a4e73ca6.
* Undelete/Restore .gitignore
* Simplify String.format into one.
* Override failing tests and ignore.
* Revert formatting on PNGImageReaderTest.java
---------
Co-authored-by: Harald Kuhr <harald.kuhr@gmail.com>