-
-
Notifications
You must be signed in to change notification settings - Fork 214
API/ABI changes review for NVTT #259
Comments
This is neat. Is this tracking all exported symbols or only the ones declared in the public headers? In my case the nvtt library exports many private symbols, but applications are only supposed to use the ones declared in the public header 'nvtt.h'. |
Just some idea: The change in 2.1.1 is just a correction of class added in 2.1.0 (78054e9), so no issue for anyone coming from 2.0.8 or earlier. The new APIs in 2.1.0 are fine for anyone coming from 2.0.8. Remaining issues: removed API in 2.1.0, namely:
(3) is trivial, as it has been replaced by a new function with an additional (defaulting) parameter: The first two look a little bit more complicated (commit 1e2567e#diff-48db6077e2f51b018674558733ee4460), but are trivial as well. Biggest issue:
For this issue I see no trivial solution, but to rename the current OutputHandler base class and restore the original one. |
Although adding a method argument with default argument keeps API compatibility, it changes the function type. Use function overloading instead and implement the old one as a wrapper to the extended one, supplying the default argument. Fixes part of castano#259 Signed-off-by: Stefan Brüns <[email protected]>
The linear transform has never been implemented, so just add as a stub for API/ABI compatibility. Fixes part of castano#259 Signed-off-by: Stefan Brüns <[email protected]>
The only colortransform actually implemented was the transform from RGB to YCoCG (ColorTransform_YCoCg). Restore the full enum for API compatibility, and allow the transform to be specified using InputOptions::setColortransform. Fixes part of castano#259 Signed-off-by: Stefan Brüns <[email protected]>
I was hoping 2.1.0 would be an opportunity to do some breaking changes. My plan was to maintain binary compatibility through the revisions of minor version, but allow changes between minor versions. This may be a little unusual, but I'm reserving the major version changes for major rewrites with little to none source code compatibility. If this makes life too hard for distributions, I'm willing to reconsider. Patches like this that improve compatibility at little cost are certainly welcome. |
Its somewhat sad this has not been merged prior to the 2.1.2 release. |
The review of API/ABI changes for NVTT since 2.0.0 version: https://abi-laboratory.pro/tracker/timeline/nvidia-texture-tools/
Created with the help of open-source abi-tracker tool: https://github.com/lvc/abi-tracker. Hope it will be helpful for users and maintainers of the library.
Environment
The text was updated successfully, but these errors were encountered: