游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2800|回复: 5

求助-DX怎么实现对显存的直接操作呢?

[复制链接]

33

主题

544

帖子

554

积分

高级会员

Rank: 4

积分
554
发表于 2007-5-15 21:27:00 | 显示全部楼层 |阅读模式
比如说,我想直接在屏幕上打点~
某书上说用IDirect3DSurface9通过lockrect可以达到这目的
lockrect写的很明白,也知道怎么操作
但是不知道这个IDirect3DSurface9怎么初始化,又怎么样指向当前屏幕~
SDK里光创建就三个函数
IDirect3DDevice9::CreateDepthStencilSurface
IDirect3DDevice9::CreateOffscreenPlainSurface
IDirect3DDevice9::CreateRenderTarget
然后得到这个surface又有好几个函数
IDirect3DCubeTexture9::GetCubeMapSurface
IDirect3DDevice9::GetBackBuffer
IDirect3DDevice9::GetDepthStencilSurface
IDirect3DDevice9::GetFrontBufferData
IDirect3DDevice9::GetRenderTarget
IDirect3DSwapChain9::GetBackBuffer
IDirect3DTexture9::GetSurfaceLevel

我不知道怎么做才能达到我的目的:得到一个指向屏幕的指针,然后可以操作屏幕上的点,从而可以在屏幕上打点操作
知道的告诉我吧,谢谢了;)

21

主题

120

帖子

129

积分

注册会员

Rank: 2

积分
129
发表于 2007-5-16 08:39:00 | 显示全部楼层

Re:求助-DX怎么实现对显存的直接操作呢?

应该是getbackbuffer,然后lock吧
不过没人这样操作backbuffer的吧

16

主题

114

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2007-5-16 09:27:00 | 显示全部楼层

Re:求助-DX怎么实现对显存的直接操作呢?

关注

33

主题

544

帖子

554

积分

高级会员

Rank: 4

积分
554
 楼主| 发表于 2007-5-16 20:33:00 | 显示全部楼层

Re:求助-DX怎么实现对显存的直接操作呢?

顶上去,继续等待回答;)

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2007-5-16 20:57:00 | 显示全部楼层

Re:求助-DX怎么实现对显存的直接操作呢?

传说中,D3D里,LOCK后由驱动把对应显存的数据复制到内存里,你UNLOCK后再由驱动把你写的数据由这块内存复制回去.
无责任发言.这个问题可以问问千里马肝版主,记得他是写驱动的,他应该会清楚一些.

9

主题

249

帖子

260

积分

中级会员

Rank: 3Rank: 3

积分
260
发表于 2007-5-16 22:45:00 | 显示全部楼层

Re:求助-DX怎么实现对显存的直接操作呢?

HRESULT GetRenderTarget(          DWORD RenderTargetIndex,
    IDirect3DSurface9 **ppRenderTarget
);


HRESULT GetRenderTargetData(          IDirect3DSurface9* pRenderTarget,
    IDirect3DSurface9* pDestSurface
);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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