You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nvidia-texture-tools/ApiDesignIssues.md

70 lines
2.1 KiB
Markdown

## General Issues ##
* does nvtt have state? should we have a context? Don't use globals/statics.
## InputOptions ##
* ~~Default mipmap filter should be Box instead of Kaiser.~~ (Fixed)
* Remove `Format_LATC`, stop adding more aliases.
### Alpha transparency ###
* `alphaTransparency` should not be specified in setFormat.
* Add `setAlphaMode(AlphaMode mode)`
Where `AlphaMode` could be:
* AlphaMode\_None
* AlphaMode\_Transparency
* AlphaMode\_Premultiplied
None is the default (treats alpha as a regular channel) while Transparency and Premultiplied are hints. Currently there are some compressors that only support None, others that only support Transparency.
### Mipmapping options ###
~~Option 1:~~
* Deprecate setMipmapping.
* Add `setMipmapFilter(MipmapFilter filter)`
* ~~Add maxLevel argument to `setTextureLayout`~~
* To disable mipmap output set maxLevel = 0.
Option 2:
* Deprecate setMipmapping.
* Add `setMipmapFilter(MipmapFilter filter)`
* Add `enableMipmaps(bool enable)`
* Add `setMipmapMaxLevel(int maxLevel)`
Option 3:
* Add `setMipmapFilter(MipmapFilter filter)`
* Remove filter argument from `setMipmapping`: `setMipmapping(bool enabled, int maxLevel)`
Option 4:
* Leave things as is.
## CompressionOptions ##
* `enableHardwareCompressor`, should be called `enableCudaCompressor` or `enableGpuCompressor`.
* `Quantization` should be a compression option.
* remove error threshold from setQuality, it's not used.
* `setColorWeights` should take an alpha weight, not used right now, but useful for future formats.
## OutputOptions ##
* Should be a pimpl like `InputOptions` and `CompressionOptions`. Member attributes should be hidden.
* Add `setFileName()` member to output dds file directly instead of using output handler.
### Output Handling ###
* `OutputHandler::writeData` should return false to signal a write error and stop processing.
* The `mipmap` method of `OutputHandler` should have been called `image` or `beginImage`.
### Error Handling ###
* Error\_Unknown should be 0
* Error\_UserInterruption is not being used and could be removed.