MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / setColor

Method setColor

Engine/source/gfx/bitmap/gBitmap.cpp:817–865  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

815
816
817bool GBitmap::setColor(const U32 x, const U32 y, const ColorI& rColor)
818{
819 if (x >= mWidth || y >= mHeight)
820 return false;
821
822 U8* pLoc = getAddress(x, y);
823
824 switch (mInternalFormat) {
825 case GFXFormatA8:
826 case GFXFormatL8:
827 *pLoc = rColor.alpha;
828 break;
829
830 case GFXFormatL16:
831 dMemcpy(pLoc, &rColor, 2 * sizeof(U8));
832 break;
833
834 case GFXFormatR8G8B8:
835 dMemcpy( pLoc, &rColor, 3 * sizeof( U8 ) );
836 break;
837
838 case GFXFormatR8G8B8A8:
839 case GFXFormatR8G8B8X8:
840 dMemcpy( pLoc, &rColor, 4 * sizeof( U8 ) );
841 break;
842
843 case GFXFormatR5G6B5:
844 #ifdef TORQUE_OS_MAC
845 *((U16*)pLoc) = (rColor.red << 11) | (rColor.green << 5) | (rColor.blue << 0) ;
846 #else
847 *((U16*)pLoc) = (rColor.blue << 0) | (rColor.green << 5) | (rColor.red << 11);
848 #endif
849 break;
850
851 case GFXFormatR5G5B5A1:
852 #ifdef TORQUE_OS_MAC
853 *((U16*)pLoc) = (((rColor.alpha>0) ? 1 : 0)<<15) | (rColor.blue << 10) | (rColor.green << 5) | (rColor.red << 0);
854 #else
855 *((U16*)pLoc) = (rColor.blue << 1) | (rColor.green << 6) | (rColor.red << 11) | ((rColor.alpha>0) ? 1 : 0);
856 #endif
857 break;
858
859 default:
860 AssertFatal(false, "Bad internal format");
861 return false;
862 }
863
864 return true;
865}
866
867//--------------------------------------------------------------------------
868U8 GBitmap::getChanelValueAt(U32 x, U32 y, U32 chan)

Callers 2

_captureBackBufferMethod · 0.45

Calls 1

dMemcpyFunction · 0.50

Tested by

no test coverage detected