image.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Copyright 2011-2017 Branimir Karadzic. All rights reserved.
  3. * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
  4. */
  5. #ifndef IMAGE_H_HEADER_GUARD
  6. #define IMAGE_H_HEADER_GUARD
  7. namespace bgfx
  8. {
  9. ///
  10. struct ImageContainer
  11. {
  12. bx::AllocatorI* m_allocator;
  13. void* m_data;
  14. TextureFormat::Enum m_format;
  15. uint32_t m_size;
  16. uint32_t m_offset;
  17. uint32_t m_width;
  18. uint32_t m_height;
  19. uint32_t m_depth;
  20. uint16_t m_numLayers;
  21. uint8_t m_numMips;
  22. bool m_hasAlpha;
  23. bool m_cubeMap;
  24. bool m_ktx;
  25. bool m_ktxLE;
  26. bool m_srgb;
  27. };
  28. ///
  29. ImageContainer* imageParse(
  30. bx::AllocatorI* _allocator
  31. , const void* _data
  32. , uint32_t _size
  33. , TextureFormat::Enum _dstFormat = TextureFormat::Count
  34. );
  35. ///
  36. ImageContainer* imageAlloc(
  37. bx::AllocatorI* _allocator
  38. , TextureFormat::Enum _format
  39. , uint16_t _width
  40. , uint16_t _height
  41. , uint16_t _depth
  42. , uint16_t _numLayers
  43. , bool _cubeMap
  44. , bool _hasMips
  45. , const void* _data = NULL
  46. );
  47. ///
  48. void imageFree(ImageContainer* _imageContainer);
  49. /// Converts format to string.
  50. const char* getName(TextureFormat::Enum _format);
  51. } // namespace bgfx
  52. #endif // IMAGE_H_HEADER_GUARD