游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9868|回复: 25

?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

[复制链接]

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2004-11-23 19:32:00 | 显示全部楼层 |阅读模式
1.先用MFC?一??CDialog衍生??e的?窗

2.使用IDirectDraw7建立
a. ?示用 IDirectDrawSurface7* (?????窗or全?幕模式切?Q?r, 重建)
b. 位於System ?????的??D工作?^用的  IDirectDrawSurface7* (不??示模式切?Q而改?, 用到?窗?束?r才?放)

3.建立一??IDirect3D9想要把3D的?出?接到2-b的那??IDirectDrawSurface7* ?
???IDirect3D9建立?r的相???翟?怎?下?

就是想要??窗的主要?示控制由2D?理
但是3D是背景?理(不想直接?示在?窗上), 但是要能?蜉?出到IDirectDrawSurface7* ?
(或是能?蜉?出到 HDC 或 GDI+的 Graphics* ?)

有?法做??

--------------------------------------------------
?充
我用的?D放在GDI+的class Bitmap?, 自己????class?承Bitmap
2D?示先用IDirectDrawSurface7:ock
先?住IDirectDrawSurface7
再IDirectDrawSurface7::GetDC
最後用HDC建GDI+的Graphics
?o?放?r, 把?DBitmap::LockBits
自己用MMX?算Blt/BltAlpha/BltAdd/BltSub/BltGlyph....等
可是原本?放?r是直接用Graphics:rawImage 去直接??D(?o任何?外的Blt效果)
所以必?要用3D的部份改??原本???娇s放的Blt/BltAlpha/BltAdd/BltSub/BltGlyph....等

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-11-23 23:29:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

http://www.codesampler.com/dx9src.htm
里面有一篇文章叫“Multiple Devices”的文章,可能对你有用!

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2004-11-24 13:27:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

看起?怼?ultiple Devices”
?]用...那是建???3D耶

而不是我想要的2D?3D的?出?接在一起

?然
在 http://bbs.gameres.com/showthread.asp?threadid=17222
找到一??2D?3D?接的code

可是
那是IDirectDraw4?IDirect3D3透?IDirectDrawSurface4 ??D?3D的?出接在一起

可是
我要的?s是 IDirectDraw7 (2D?出是 IDirectDrawSurface7)
?IDirect3D9 所建立的 IDirect3DDevice9 (3D?出是IDirect3DSurface9)
所以目前想不起?碓?怎?把IDirectDrawSurface7?IDirect3DSurface9 接起?
(而且更要命的是 IDirectDrawSurface7 是HiColor, ??? IDirect3DSurface9 也??成HiColor?? ?????D?出有什摩影??)

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2004-11-24 14:07:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

如果是这样子的话还是直接用D3D吧

里面的surface提供的功能可以做到ddraw的一些功能
而且不用考虑与3d的接口问题

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2004-11-24 14:23:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

DDraw7汗D3D9是不同的管线,,好像不能连

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2004-11-24 14:50:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

可是我都用MMX??一堆2D的code了耶
要我扔了花了好???月??的?|西
全部用重??3D的部份
?不到(而且2D的部份快跟GDI?GDI+?死了)


IDirectDraw7::CreateSurface ?r
DDSURFACEDESC2的
ddsCaps.dwCaps        = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE;

然後
IDirect3DDevice9::CreateRenderTarget

IDirect3DDevice9::SetRenderTarget
???可以改3D的?出目的吧

所以???就出在
IDirect3DDevice9::CreateOffscreenPlainSurface ?r
能否不另外建立IDirect3DSurface9 ?????D?r的????
而把它接到已用IDirectDraw7建立的IDirectDrawSurface7的?????

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2004-11-24 17:30:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

IDirectDrawSurface7* pSurfaceSystem;
IDirect3DSurface9* pDirect3DSurface9;

pSurfaceSystem->QueryInterface( IID_IDirect3DSurface9, (VOID**)&pDirect3DSurface9 );

失??...

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-11-24 20:38:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

使用3D一样可以提供一些你需要的功能呀!不知道你写的MMX的那些代码是些什么?
但是用3d可以做的更好!

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2004-11-25 00:28:00 | 显示全部楼层

Re: Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

IDirectDrawSurface7* pSurfaceSystem;
IDirect3DSurface9* pDirect3DSurface9;

pSurfaceSystem->Q...

?是??侵? 留?饬?WD3D好了.....

11

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2004-11-25 11:45:00 | 显示全部楼层

Re:?於IDirectDraw7能否?IDirect3D9在同一???窗?同?r使用

?D在GDI+的Bitmap?啊
所以2D的部份是IDirectDrawSurface7:ock後
自己搬?????MMX?理?算啊

3D的部份
除了目前?2D接不起?硪酝
以及

hr = pDirect3DDevice9->GetRenderTarget(  0, &pDirect3DSurface9);
//???ok
hr = pDirect3DSurface9->LockRect(&D3DLockedRect, &D3DRect, NULL);
//????s失?? hr = -2005530516 (?知道?是什????)

本?硎窍劝?D的建好, 再?住????後, 取得IDirect3DSurface9???放?D的位置
再以?????位置重建2D用的IDirectDrawSurface7 使其指向同一?K?????
可是3D的?]?住
D3DLockedRect 得到的值都是 0
               
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 16:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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