2007-11-22 01:25:55 +00:00
#summary API design issues
#labels Phase-Design
2007-11-22 07:47:10 +00:00
== General Issues ==
* does nvtt have state? should we have a context? Don't use globals/statics.
2007-11-22 01:25:55 +00:00
2007-11-22 01:26:22 +00:00
== !InputOptions ==
2007-11-22 01:25:55 +00:00
2007-12-13 07:12:40 +00:00
* ~~Default mipmap filter should be Box instead of Kaiser.~~ (Fixed)
2007-11-22 07:49:41 +00:00
* Remove `Format_LATC`, stop adding more aliases.
2007-11-22 07:47:10 +00:00
=== Alpha transparency ===
* `alphaTransparency` should not be specified in setFormat.
* Add `setAlphaMode(AlphaMode mode)`
Where `AlphaMode` could be:
2007-11-22 07:47:34 +00:00
* !AlphaMode_None
* !AlphaMode_Transparency
* !AlphaMode_Premultiplied
2007-11-22 07:47:10 +00:00
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.
2007-11-22 01:25:55 +00:00
=== Mipmapping options ===
2007-11-22 10:30:43 +00:00
~~Option 1:~~
2007-11-22 01:25:55 +00:00
* Deprecate setMipmapping.
* Add `setMipmapFilter(MipmapFilter filter)`
2007-11-22 10:30:43 +00:00
* ~~Add maxLevel argument to `setTextureLayout`~~
2007-11-22 01:25:55 +00:00
* 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.
2007-11-22 01:26:22 +00:00
== !CompressionOptions ==
2007-12-13 07:12:40 +00:00
* `enableHardwareCompressor`, should be called `enableCudaCompressor` or `enableGpuCompressor`.
2007-11-22 07:47:10 +00:00
* `Quantization` should be a compression option.
* remove error threshold from setQuality, it's not used.
2007-11-24 08:47:29 +00:00
* `setColorWeights` should take an alpha weight, not used right now, but useful for future formats.
2007-11-22 07:47:10 +00:00
== !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 ===
2007-11-22 07:47:34 +00:00
* !Error_Unknown should be 0
* !Error_UserInterruption is not being used and could be removed.