KTX-Software icon indicating copy to clipboard operation
KTX-Software copied to clipboard

libktx: install format headers?

Open n-morales opened this issue 8 months ago • 2 comments

I'm learning the API for libktx, and according to the usage overview for writing a ktx1 or ktx2 file, I would need to include the following headers:

#include <ktx.h>
#include <vkformat_enum.h>

However, vk_format_enum.h does not appear to be installed by the CMakeLists.txt (I'm using conan to install ktx, but I believe this is also the case if building and installing from source). There are a couple of other headers, like vk_format.h and gl_format.h that may also be useful to have installed.

By the way, while I could of course include the system vulkan and opengl headers, the piece of software I'm writing is intended to not have a dependency on these so it would be nice to have these stub headers provided by the library.

n-morales avatar Apr 18 '25 19:04 n-morales

The usage overview is in error as it was never the intention to release vkformat_enum. The expectation was that people creating Vulkan textures would have the Vulkan SDK installed. Thanks for pointing out that this may not always be wanted. I have to ensure that an installation of vkformat_enum does not cause conflicts with the Vulkan SDK, if that is already installed. I do not want to install it directly in /usr/local/include. I will give this some thought.

We are unlikely to release vkformat.h and gl_format.h. More likely is adding conversion functions to the API.

MarkCallow avatar Apr 18 '25 23:04 MarkCallow

Thanks for the quick response. That makes sense to me -- basically in the end I would like some sort of way of parsing or writing the pixel format of the images in the ktx file without needing Vulkan or OpenGL headers -- perhaps to avoid conflicts there could be an enum -- tied to the vulkan enum through the same code generation mechanism used for vkformat_enum.h but named differently?

Edit: If the maintainers endorse this approach I think it would seem straightforward enough for me to be able to implement it in a PR.

n-morales avatar Apr 19 '25 12:04 n-morales