请教个d3d9显示2d图像的效率问题

rageliu 2015-09-28 10:53:04
加精
为了兼容xp,选择的d3d9。
5路视频RGB32格式的内存数据的实时叠加显示。每路都是25fps。
不熟d3d9,查阅到2d图像的显示,第一种就是把图片以纹理方式加载,然后以此为纹理绘制一个四边形即可;第二种就是使用2D点精灵。想请教熟悉的朋友,哪种方式效率更高。多谢。或是有其他方式,麻烦告诉我下,拜谢。
...全文
925 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32446325 2015-10-31
  • 打赏
  • 举报
回复
看不到的 呀烦烦烦
draculamx 2015-10-28
  • 打赏
  • 举报
回复
dx9的话,使用dxsprite会比较慢,因为它本身就经过了一次封装,效率不高,最好还是用二楼说的,直接渲染即可。
洗洗睡去 2015-10-25
  • 打赏
  • 举报
回复
不兼容xp的话 推荐Direct2D 我在win10上测试了GDI GDI+ Direct2D 绘制1000w个点的连线,不抗锯齿的话D2D时间是GDI的一半,抗锯齿的话和GDI差不多 GDI+ 渣渣就不说了
Poopaye 2015-10-25
  • 打赏
  • 举报
回复
哪种方式最终都是4边形+贴图,所以效率上应该看开发成本
injuer 2015-10-08
  • 打赏
  • 举报
回复
四边形绘制已经可以满足了,两者效率在于图像融合,不在于整张
IRQ_CRASH 2015-09-30
  • 打赏
  • 举报
回复
有一种更原始的方法。surface,效率什么没测试过,这种使用方式类似于DirectDraw。 使用离屏表面,需要把d3dpp.SwapEffect设置为 D3DSWAPEFFECT_COPY后背缓冲数量设置为1。直接使用把 d3dpp的 flag设置D3DPRESENTFLAG_LOCKABLE_BACKBUFFER。LockRect之后直接向VRAM写像素,之后直接 present 就能显示了,单纯显示画面的话,整个步骤就是写根据pitch写VRAM然后present 两个步骤。
worldy 2015-09-28
  • 打赏
  • 举报
回复
把图片以纹理方式加载,然后以此为纹理绘制一个四边形 这个应该是比较合适的方案,灵活可扩展
rageliu 2015-09-28
  • 打赏
  • 举报
回复
哦,好的,感谢大侠

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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