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

2.1 KiB

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.