MCPcopy Create free account
hub / github.com/NazaraEngine/NazaraEngine / GetPixels

Method GetPixels

src/Nazara/Utility/Image.cpp:743–793  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

741 }
742
743 UInt8* Image::GetPixels(unsigned int x, unsigned int y, unsigned int z, UInt8 level)
744 {
745 #if NAZARA_UTILITY_SAFE
746 if (m_sharedImage == &emptyImage)
747 {
748 NazaraError("Image must be valid");
749 return nullptr;
750 }
751
752 if (level >= m_sharedImage->levels.size())
753 {
754 NazaraError("Level out of bounds (" + String::Number(level) + " >= " + String::Number(m_sharedImage->levels.size()) + ')');
755 return nullptr;
756 }
757 #endif
758
759 unsigned int width = GetLevelSize(m_sharedImage->width, level);
760 #if NAZARA_UTILITY_SAFE
761 if (x >= width)
762 {
763 NazaraError("X value exceeds width (" + String::Number(x) + " >= " + String::Number(width) + ')');
764 return nullptr;
765 }
766 #endif
767
768 unsigned int height = GetLevelSize(m_sharedImage->height, level);
769 #if NAZARA_UTILITY_SAFE
770 if (y >= height)
771 {
772 NazaraError("Y value exceeds height (" + String::Number(y) + " >= " + String::Number(height) + ')');
773 return nullptr;
774 }
775
776 unsigned int depth = (m_sharedImage->type == ImageType_Cubemap) ? 6 : GetLevelSize(m_sharedImage->depth, level);
777 if (z >= depth)
778 {
779 NazaraError("Z value exceeds depth (" + String::Number(z) + " >= " + String::Number(depth) + ')');
780 return nullptr;
781 }
782
783 if (level >= m_sharedImage->levels.size())
784 {
785 NazaraError("Level out of bounds (" + String::Number(level) + " >= " + String::Number(m_sharedImage->levels.size()) + ')');
786 return nullptr;
787 }
788 #endif
789
790 EnsureOwnership();
791
792 return GetPixelPtr(m_sharedImage->levels[level].get(), PixelFormat::GetBytesPerPixel(m_sharedImage->format), x, y, z, width, height);
793 }
794
795 Vector3ui Image::GetSize(UInt8 level) const
796 {

Callers 4

DownloadMethod · 0.80
LoadMethod · 0.80
ExtractGlyphMethod · 0.80
LoadFunction · 0.80

Calls 2

GetPixelPtrFunction · 0.85
GetLevelSizeFunction · 0.70

Tested by

no test coverage detected