| 835 | } |
| 836 | |
| 837 | static bool CopyImageBufferFlipped(uint32_t width, uint32_t height, const uint8_t* buffer, uint32_t buffer_size, dmImage::Type type, uint8_t* out_buffer) |
| 838 | { |
| 839 | uint32_t stride = width*sizeof(uint8_t); |
| 840 | if (type == dmImage::TYPE_RGB) { |
| 841 | stride *= 3; |
| 842 | } else if (type == dmImage::TYPE_RGBA) { |
| 843 | stride *= 4; |
| 844 | } |
| 845 | |
| 846 | if (stride*height != buffer_size) { |
| 847 | dmLogError("Invalid data size when flipping image buffer."); |
| 848 | return false; |
| 849 | } |
| 850 | |
| 851 | const uint8_t* read_buffer = buffer+buffer_size; |
| 852 | for (uint32_t y = 0; y < height; ++y) |
| 853 | { |
| 854 | read_buffer -= stride; |
| 855 | memcpy(out_buffer, read_buffer, stride); |
| 856 | out_buffer += stride; |
| 857 | } |
| 858 | |
| 859 | return true; |
| 860 | } |
| 861 | |
| 862 | static void* MakeDynamicTextureData(uint32_t width, uint32_t height, dmImage::Type type, bool flip, const void* buffer, uint32_t buffer_size) |
| 863 | { |
no outgoing calls
no test coverage detected