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

DirextX编程

开发平台:

Visual C++

  1. //
  2. // CPixelRGB565.cpp
  3. //
  4. #include "CBasePixel.h"
  5. #include "CPixelRGB565.h"
  6. //////////////////////////////////////////////////////////////////////
  7. CPixelRGB565::CPixelRGB565()
  8. {
  9. }
  10. CPixelRGB565::~CPixelRGB565()
  11. {
  12. }
  13. void CPixelRGB565::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 CPixelRGB565::SideEffectColorChanged(void)
  23. {
  24. CBasePixel::SideEffectColorChanged();
  25. const unsigned int bits565[] = {0xF800, 0x07E0, 0x001F}; // RGB
  26. // Caculate the mask bits
  27. unsigned int  wMask, wTemp;
  28. wTemp  = unsigned int (m_TargetB / 256. * 32);
  29. wMask  = wTemp & bits565[2];
  30. wTemp  = unsigned int (m_TargetG / 256. * 64);
  31. wTemp  = wTemp << 5;
  32. wMask += wTemp & bits565[1];
  33. wTemp  = unsigned int (m_TargetR / 256. * 32);
  34. wTemp  = wTemp << 11;
  35. wMask += wTemp & bits565[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. }