获取设备Bitmap后,拷贝一份,将拷贝绘制到屏幕上,显示一片黑

donghan12yue 2010-02-04 10:11:11
代码如下:
IDisplay_GetDeviceBitmap(pMe->a.m_pIDisplay, &pMe->pSrcBmp);
IBITMAP_CreateCompatibleBitmap(pMe->pSrcBmp, &pMe->pDesBmp, pMe->screenWidth, pMe->screenHeight);
IDisplay_SetDestination(pMe->a.m_pIDisplay, pMe->pSrcBmp);
IDisplay_BitBlt(pMe->a.m_pIDisplay, 0, 0, pMe->screenWidth, pMe->screenHeight,
pMe->pDesBmp, 0, 0, AEE_RO_COPY);

将IDisplay_BitBlt中的位图参数改为pMe->pSrcBmp就能正常显示
流程是否有什么问题?希望高手帮帮忙,谢谢了。
...全文
1858 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
muwesky 2010-03-18
  • 打赏
  • 举报
回复
楼上说的正确。获取到那块内存后,是没有内容的。还需要把需要的东西画上去才行。
hui22021616 2010-03-13
  • 打赏
  • 举报
回复
pMe->pDesBmp你要绘制的这个位图,没有拷贝内容进去啊,只是兼容设备位图的一块内存。刷新的时候当然是黑屏了。
IBITMAP_CreateCompatibleBitmap之后,再调用一下IBitMap的那个拷贝位图的接口把要画的内容拷过去就可以了。。。。
mutouji 2010-02-05
  • 打赏
  • 举报
回复
pMe->pDesBmp只是一个兼容pMe->pSrcBmp的一块嘿嘿的内存,没被初始化贴图,你把一块嘿嘿的内存往
pMe->pSrcBmp上画,pSrcBmp也被你污染成了嘿嘿的一片,所以你看到嘿嘿的一片,
你把他改成pMe->pSrcBmp,其实没有任何意义,他只是把pMe->pSrcBmp重新画到pMe->pSrcBmp上,当然不会有变化
sxcnfly 2010-02-05
  • 打赏
  • 举报
回复
device bitmap是比较特殊的,因为你的pMe->pDesBmp不是device bitmap因此不能进行IDisplay_BitBlt操作。
  • 打赏
  • 举报
回复
试一下IDisplay_SetDestination(pMe->a.m_pIDisplay, NULL)

4,654

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧