用过DirectDraw的高手请进(急)送1000分

kathywp 2002-09-26 11:52:29
我初学DirectDraw,听说性能还好,绘制图形很快,但我测试结果是在1024*768的16bit下,api函数BitBlt和directdraw的blt速度差不多,都是4000多,这个数字是用QueryPerformanceCounter函数测试出来的,如果要真正提高绘图性能应该怎么做呢?
我是用窗口模式的,一个主表面,一个off-line表面,然后两个blt了一下,
绘制大小都是1024*768
而且版本是8.1的release版,显卡是64M的流行显卡
听说DirectDraw可以提高最少几十倍的速度,到底怎么做呢?请高手指点一二,谢谢
我送大家1000分,谢谢!很急
...全文
75 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
timeguest 2002-09-26
  • 打赏
  • 举报
回复
多blt几次试试,一次的结果不具普遍性
easyrock 2002-09-26
  • 打赏
  • 举报
回复
但是窗口模式只能Blt,不能Flip
mengxihe 2002-09-26
  • 打赏
  • 举报
回复
你不要用blt用Flip
easyrock 2002-09-26
  • 打赏
  • 举报
回复
我觉得这样不妥,因为Blt一次的时间与Blt函数调用的时间的差别不太明显,所以得出的结果也不够准确。不如连续Blt1000次然后求平均值。
kathywp 2002-09-26
  • 打赏
  • 举报
回复
uup
kathywp 2002-09-26
  • 打赏
  • 举报
回复
楼上的,我是这样做的:

CString s;
QueryPerformanceCounter(&lgtime);
hRet = g_pDDSPrimary->Blt(NULL, g_pDDSBack, NULL, DDBLT_WAIT,NULL);
QueryPerformanceCounter(&oldtime);
s.Format("%d",oldtime.QuadPart-lgtime.QuadPart);
AfxMessageBox(s);
kathywp 2002-09-26
  • 打赏
  • 举报
回复
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_VIDEOMEMORY|DDSCAPS_3DDEVICE ;
这是我的创建表面时的参数
timeguest 2002-09-26
  • 打赏
  • 举报
回复
你肯定搞错了,你既然不知道怎么用DirectDraw你是怎么测出它的速度来的呢?
kathywp 2002-09-26
  • 打赏
  • 举报
回复
对不起,错了,是操作拷贝200次,不是刷新,屏幕刷新64次,呵呵不好意思
Alkaid 2002-09-26
  • 打赏
  • 举报
回复
200次/S????
你的彩显能上到200HZ么?上不到的话你岂不是在做无用功?!
kathywp 2002-09-26
  • 打赏
  • 举报
回复
那也不会相差这么小吧,我在全屏模式下的速度就很快,不知道窗口模式下有什么技巧能使它速度变快啊,我可是要64分之一秒绘制好多次呢啊,大概要刷新屏幕200次吧,很恐怖!

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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