像素 至 缓冲表面

 

 

 

typedef struct RGB_VALUE
{
 int nRed;
 int nGreen;
 int nBule;
}RGBVALUE;
RGBVALUE GetRGBValue(COLORREF color)
{
 RGBVALUE stRGB;
 stRGB.nRed = color&RGB(255,0,0);
 stRGB.nGreen = (color&RGB(0,255,0)) >> 8;
 stRGB.nBule = (color&RGB(0,0,255)) >> 16;
 return stRGB;

 

else if (true == bPixel)
 {
  memset(&DDde,0,sizeof(DDde));
  DDde.dwSize = sizeof(DDde);
  
  lpOBuf[nNum]->Lock(NULL, &DDde,
   DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
  
  
  if (16 == PixelMode)
  {
   COLORREF color = RGB(255,0,255);
   RGBVALUE stRGB = GetRGBValue(color);
   color = _RGB16BIT565(stRGB.nRed,stRGB.nGreen,stRGB.nBule);   int mempitch  = DDde.lPitch/2;
   WORD * video_buffer = (WORD *)DDde.lpSurface;
   for (int nRow = 0; nRow < height; nRow++)
   {
    for ( int nCol = 0; nCol < width; nCol++)
    { 
     video_buffer[nCol+nRow*mempitch] = color;
    }
   }
  }
  else if (32 == PixelMode)
  {
   COLORREF color = RGB(128,128,128);
   RGBVALUE stRGB = GetRGBValue(color);
   color = _RGB32BIT(0, stRGB.nRed, stRGB.nGreen, stRGB.nBule);
   int mempitch = DDde.lPitch/4;
   DWORD * video_buffer = (DWORD *)DDde.lpSurface;
   for (int nRow = 0; nRow < height; nRow++)
   {
    for ( int nCol = 0; nCol < width; nCol++)
    { 
     video_buffer[nCol+nRow*mempitch] = color;
    }
   }
  }
  
  lpOBuf[nNum]->Unlock(NULL);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值