CPixelRGB555.cpp
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. //
  2. // CPixelRGB555.cpp
  3. //
  4. #include "CBasePixel.h"
  5. #include "CPixelRGB555.h"
  6. //////////////////////////////////////////////////////////////////////
  7. CPixelRGB555::CPixelRGB555()
  8. {
  9. }
  10. CPixelRGB555::~CPixelRGB555()
  11. {
  12. }
  13. void CPixelRGB555::ConvertByCover(unsigned char * inPixel)
  14. {
  15. if (inPixel)
  16. {
  17. *inPixel = m_Mask[0];
  18. inPixel++;
  19. *inPixel = m_Mask[1];
  20. }
  21. }
  22. void CPixelRGB555::SideEffectColorChanged(void)
  23. {
  24. CBasePixel::SideEffectColorChanged();
  25. const unsigned int bits555[] = {0x7C00, 0x03E0, 0x001F}; // RGB
  26. // Caculate the mask bits
  27. unsigned int  wMask, wTemp;
  28. wTemp  = unsigned int (m_TargetB / 256. * 32);
  29. wMask  = wTemp & bits555[2];
  30. wTemp  = unsigned int (m_TargetG / 256. * 32);
  31. wTemp  = wTemp << 5;
  32. wMask += wTemp & bits555[1];
  33. wTemp  = unsigned int (m_TargetR / 256. * 32);
  34. wTemp  = wTemp << 10;
  35. wMask += wTemp & bits555[0];
  36. // Store the high byte and low byte seperately
  37. m_Mask[0] = wMask & 0xff;
  38. wMask     = wMask >> 8;
  39. m_Mask[1] = wMask & 0xff;
  40. }