73 lines
2.2 KiB
Plaintext
73 lines
2.2 KiB
Plaintext
#summary API design issues
|
|
#labels Phase-Design
|
|
|
|
== 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. |