主题 : WinCE中的显示缓冲数据如何获取 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
楼主  发表于: 2010-06-02 16:57

 WinCE中的显示缓冲数据如何获取

请问WinCE中的显示缓冲数据如何获取?我想直接提取出Linux中buffer出来,送到另一个屏上,请问如何实现?就像用同一个数组发到不同的地方去。谢谢答复!
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
1楼  发表于: 2010-06-09 16:56
请问WinCE中的显示缓冲数据如何获取?我想直接提取出WinCE6.0的buffer,送到另一个屏上,请问如何实现?就像用同一个数组发到不同的地方去。谢谢答复!
            WORD * ptr;
            ptr = (WORD*)0x30080000;//物理显示地址
            RETAILMSG(1, (TEXT("ptr = %d\r\n"), ptr));
            for(long i =0; i <320*240*2;i+=2)
            {
                //ptr = (114*((ptr&0xf800)>>11)+587*((ptr&0x7e0)>>5)+299*(ptr&0x1f))/1000;
            /*    unsigned char tep;
                tep = (ptr&0x1f)*299;
                tep +=(((ptr&0xe0)>>5)|((ptr[i+1]&0x7)<<3))*587;
                tep +=((ptr[i+1]&0xf8)>>3)*114;
                tep = tep/1000;
                tep =tep*31/255;
                ptr = (tep|(tep<<5)&0xff);
                ptr[i+1] = ((tep>>3)|(tep<<3)&0xff);*/
                *(ptr+i+1) &= 0xf8;
                *(ptr+i) = 0;
            }