游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6623|回复: 9

[疑问]为什么ddraw的绘制速度远不如gdi?

[复制链接]

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2012-9-10 14:47:00 | 显示全部楼层 |阅读模式
从我接触ddraw的那天起,我就发现,他的绘制速度比gdi慢很多很多,gdi在不做alpha混合的情况下,也不做脏矩形处理的情况下,绘制速度接近dx9,但是ddraw则远远慢于他们.(当时gdi用的是传统的BitBlt方式)

最近用脏矩形实现的gdi和ddraw,同样遇到了这个问题:
同样的脏矩形代码,同样的图片绘制,gdi的fps在1900左右,而ddraw只有1400多,
(这里的gdi用的是SetDIBitsToDevice()函数)

总之,不管怎么样,gdi的绘制速度总是比ddraw快,(ddraw的大部分时间消耗都花在了后台表面blt到前台表面上)
不知道gdi比ddraw高明在什么地方[em24]

0

主题

243

帖子

357

积分

中级会员

Rank: 3Rank: 3

积分
357
发表于 2012-9-10 20:01:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

2012年都过去一大半了,你研究这些到底要干嘛。。。

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2012-9-12 23:12:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

建议换块好一点的显卡再测试..

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2012-9-13 13:30:00 | 显示全部楼层

Re: Re:[疑问]为什么ddraw的绘制速度远不如gdi?

DeALLBugs: Re:[疑问]为什么ddraw的绘制速度远不如gdi?

2012年都过去一大半了,你研究这些到底要干嘛。。。


我也这么觉得,马上就要1221了,楼主赶紧洗洗睡吧。。。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2012-9-13 19:26:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

楼上正解~~

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2012-9-16 23:59:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

因为DirectDraw是旧时代的技术,当时所有的程序都在一个共有表面上绘图,直接绘到显卡显然比绘到虚拟屏幕上快。

而新的系统为了充分使用多核心处理器,以及GPU加速,都是每个程序在自己的虚拟屏幕上绘图,然后由系统合成。

为了兼容DirectDraw就必须做一定特殊处理,所以反而不如GDI快。

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2012-9-17 12:41:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

hyzboy果然是高人

至于其他的回帖者们,你们回帖是不是只是为了露个脸而已?

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2012-9-17 14:05:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

GDI快是因为《该干什么干什么》,纯粹是传输。
GDI不做任何特效,所以只适合做原始尺寸的画面传输。
320x240原始画面想扩大到640x480的话,GDI的速度会降到1/4。

GDI只适合在1:1尺寸时适合使用。

0

主题

8

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2012-9-18 17:50:00 | 显示全部楼层

Re:[疑问]为什么ddraw的绘制速度远不如gdi?

楼上两位正解, 我还是想告诉轩辕那句话~物尽其能, 人尽其才

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2012-9-18 21:54:00 | 显示全部楼层

Re: Re:[疑问]为什么ddraw的绘制速度远不如gdi?

hyzboy: Re:[疑问]为什么ddraw的绘制速度远不如gdi?

因为DirectDraw是旧时代的技术,当时所有的程序都在一个共有表面上绘图,直接绘到显卡显然比绘到虚拟屏幕上...


多谢大侠指点!
我尝试用gdi渲染2D,ddraw能实现的东西,gdi也都能实现,看看最后会不会比ddraw更好.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-27 16:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表