shaders/icc: completely refactor
Rewrite all of the ICC profile handling code, fundamentally getting rid of the 'ICC->ICC transform' design and representing each profile as an independent object that can be either decoded or encoded, at separate stages in the pipeline. This is only an initial version, and serves to establish the API. It is not yet fully optimized, but optimizations can and will be applied transparently underneath the hood of this API (e.g. skipping the full 3DLUT when not required, implementing support for fixed function profiles, natively applying matrix+shaper profiles, etc.) This design brings with it a number of advantages, most notably allowing support for using libplacebo-native tone mapping together with ICC profiles, by properly forwarding the actual contrast values detected from the profile. In addition to a redesign of the core logic, also changes things so that the ICC.h header is always installed, even if non-functional - `pl_icc_open` will simply always return NULL.
parent
232fcd94
No related branches found
No related tags found
Showing
- demos/plplay.c 8 additions, 1 deletiondemos/plplay.c
- src/common.h 1 addition, 4 deletionssrc/common.h
- src/include/libplacebo/colorspace.h 1 addition, 0 deletionssrc/include/libplacebo/colorspace.h
- src/include/libplacebo/renderer.h 2 additions, 6 deletionssrc/include/libplacebo/renderer.h
- src/include/libplacebo/shaders/icc.h 58 additions, 89 deletionssrc/include/libplacebo/shaders/icc.h
- src/meson.build 4 additions, 3 deletionssrc/meson.build
- src/renderer.c 81 additions, 61 deletionssrc/renderer.c
- src/shaders.h 0 additions, 1 deletionsrc/shaders.h
- src/shaders/icc.c 371 additions, 275 deletionssrc/shaders/icc.c
- src/tests/gpu_tests.h 18 additions, 22 deletionssrc/tests/gpu_tests.h
- src/tests/icc.c 104 additions, 0 deletionssrc/tests/icc.c
- src/tests/tests.h 44 additions, 0 deletionssrc/tests/tests.h
Loading
Please register or sign in to comment