texture2.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /* -*- tab-width: 4; -*- */
  2. /* vi: set sw=2 ts=4 expandtab textwidth=70: */
  3. /*
  4. * Copyright 2019-2020 The Khronos Group Inc.
  5. * SPDX-License-Identifier: Apache-2.0
  6. */
  7. /**
  8. * @internal
  9. * @file texture2.h
  10. * @~English
  11. *
  12. * @brief Declare internal ktxTexture2 functions for sharing between
  13. * compilation units.
  14. *
  15. * These functions are private and should not be used outside the library.
  16. */
  17. #ifndef _TEXTURE2_H_
  18. #define _TEXTURE2_H_
  19. #include "texture.h"
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23. #define CLASS ktxTexture2
  24. #include "texture_funcs.inl"
  25. #undef CLASS
  26. typedef struct ktxTexture2_private {
  27. ktx_uint8_t* _supercompressionGlobalData;
  28. ktx_uint32_t _requiredLevelAlignment;
  29. ktx_uint64_t _sgdByteLength;
  30. ktx_uint64_t _firstLevelFileOffset; /*!< Always 0, unless the texture was
  31. created from a stream and the image
  32. data is not yet loaded. */
  33. // Must be last so it can grow.
  34. ktxLevelIndexEntry _levelIndex[1]; /*!< Offsets in this index are from the
  35. start of the image data. Use
  36. ktxTexture_levelStreamOffset() and
  37. ktxTexture_levelDataOffset(). The former
  38. will add the above file offset to the
  39. index offset. */
  40. } ktxTexture2_private;
  41. KTX_error_code
  42. ktxTexture2_LoadImageData(ktxTexture2* This,
  43. ktx_uint8_t* pBuffer, ktx_size_t bufSize);
  44. KTX_error_code
  45. ktxTexture2_constructFromStreamAndHeader(ktxTexture2* This, ktxStream* pStream,
  46. KTX_header2* pHeader,
  47. ktxTextureCreateFlags createFlags);
  48. ktx_uint64_t ktxTexture2_calcDataSizeTexture(ktxTexture2* This);
  49. ktx_size_t ktxTexture2_calcLevelOffset(ktxTexture2* This, ktx_uint32_t level);
  50. ktx_uint32_t ktxTexture2_calcRequiredLevelAlignment(ktxTexture2* This);
  51. ktx_uint64_t ktxTexture2_levelFileOffset(ktxTexture2* This, ktx_uint32_t level);
  52. ktx_uint64_t ktxTexture2_levelDataOffset(ktxTexture2* This, ktx_uint32_t level);
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif /* _TEXTURE2_H_ */