| 5866 | } |
| 5867 | |
| 5868 | int32_t imageWriteDds(bx::WriterI* _writer, ImageContainer& _imageContainer, const void* _data, uint32_t _size, bx::Error* _err) |
| 5869 | { |
| 5870 | BX_ERROR_SCOPE(_err); |
| 5871 | |
| 5872 | int32_t total = 0; |
| 5873 | total += imageWriteDdsHeader(_writer |
| 5874 | , TextureFormat::Enum(_imageContainer.m_format) |
| 5875 | , _imageContainer.m_cubeMap |
| 5876 | , _imageContainer.m_width |
| 5877 | , _imageContainer.m_height |
| 5878 | , _imageContainer.m_depth |
| 5879 | , _imageContainer.m_numMips |
| 5880 | , _imageContainer.m_numLayers |
| 5881 | , _err |
| 5882 | ); |
| 5883 | |
| 5884 | if (!_err->isOk() ) |
| 5885 | { |
| 5886 | return total; |
| 5887 | } |
| 5888 | |
| 5889 | for (uint8_t side = 0, numSides = uint8_t(_imageContainer.m_numLayers * (_imageContainer.m_cubeMap ? 6 : 1) ); side < numSides && _err->isOk(); ++side) |
| 5890 | { |
| 5891 | for (uint8_t lod = 0, num = _imageContainer.m_numMips; lod < num && _err->isOk(); ++lod) |
| 5892 | { |
| 5893 | ImageMip mip; |
| 5894 | if (imageGetRawData(_imageContainer, side, lod, _data, _size, mip) ) |
| 5895 | { |
| 5896 | total += bx::write(_writer, mip.m_data, mip.m_size, _err); |
| 5897 | } |
| 5898 | } |
| 5899 | } |
| 5900 | |
| 5901 | return total; |
| 5902 | } |
| 5903 | |
| 5904 | static int32_t imageWriteKtxHeader(bx::WriterI* _writer, TextureFormat::Enum _format, bool _cubeMap, uint32_t _width, uint32_t _height, uint32_t _depth, uint8_t _numMips, uint32_t _numLayers, bool _srgb, bx::Error* _err) |
| 5905 | { |
no test coverage detected