游戏开发论坛

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

突破WINDOWS限制直接读写显存

[复制链接]

6

主题

64

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
发表于 2006-7-3 23:49:00 | 显示全部楼层 |阅读模式
大家知道在WINDOWS的保护模式下不能直接操作显存的只能通过API(如DIRECTX9。0)
但在游戏中很多时后要对一些显存进行改写,像Directx9.0它只提供对后缓存,离屏的草作,
而游戏中常涉及到图形的拖动,这时我们就只有直接写主显存了。而在DX9中没有能对Frontbuffer读写的。
我们这样:
mov eax 0033h;
push esp;
ll:mov esp 0013h;
mov esi  handle;//handle为窗口句柄
mov ebx [esi];
mov eax esp;
test eax ebx;
jz ll;
mov pdisplay ebx;
pdisplay就是住Buffer的指针了,再用Stretch(0就可以读写了

6

主题

64

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
 楼主| 发表于 2006-7-3 23:49:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

如果谁有更好的方法不防发出来

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-7-4 02:47:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

不会造成闪烁吗?

6

主题

64

帖子

334

积分

中级会员

Rank: 3Rank: 3

积分
334
 楼主| 发表于 2006-7-4 13:55:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

我是说你获得了指针后就不再用Present()了,因为用Present(0就要用Backbuffer,又要涉及到线程同步问题,少一个同步就多一点速度

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2006-7-5 13:59:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

关注一下

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2006-7-5 18:48:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

没发现有什么实用价值

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2006-7-5 22:50:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

像PS那种图形软件是不是也要读写显存呢

2

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2006-7-7 16:07:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

ms这样获得不了硬件加速能力,工作都转到CPU上去了,总线到显卡的数据传输也会受影响吧

1

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2006-7-8 10:33:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

用新技术,不如用经典技术实在!

3

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2008-10-2 19:25:00 | 显示全部楼层

Re:突破WINDOWS限制直接读写显存

能说的详细一些吗 包括原理 和细节 你这样说没多少人看得懂 这样就失去了帖子的意义
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 05:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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