游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3308|回复: 7

用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗?

[复制链接]

22

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-5-19 11:06:00 | 显示全部楼层 |阅读模式
没有用类似  D3DXCreate.... 的函数创建,但COM对象又是要被释放的。 类似  还有
IDirect3DTexture9::GetSurfaceLevel()  得到的表面指针。希望有兴趣的共同讨论!
谢谢

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2006-5-19 12:43:00 | 显示全部楼层

Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗

我的screenshot功能?]有释放那??表面指针...

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-5-19 12:49:00 | 显示全部楼层

Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗

如果没有其他东西访问它,一般不会有问题,但是这样会造成内存泄漏(虽然我也是很懒于释放),所以用完之后最好释放掉

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-5-19 16:34:00 | 显示全部楼层

Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗

根据COM的规则,你得到了一个接口,用完就要及时归还,不然会产生内存泄漏的。

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-5-19 20:35:00 | 显示全部楼层

Re: 用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放

Calling this method will increase the internal reference count on the IDirect3DSurface9 interface. Failure to call IUnknown when finished using this IDirect3DSurface9 interface results in a memory leak.
恩……记得release……不然会泄漏的……

54

主题

2916

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2006-5-20 19:14:00 | 显示全部楼层

Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗

“用完就要及时释放” 这是程序应该养成的良好的编程习惯。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-5-20 21:34:00 | 显示全部楼层

Re: Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释

griffin2006: Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗?

按函数名来看,Get*返回的指针一般不需要释放,Create*返回的指针一般需要释放。但这只是一般情况,为保险起...

不敢苟同。Texture->GetSurface()也要释放,诸于此类不少

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2006-5-21 01:34:00 | 显示全部楼层

Re:用 IDirect3DDevice9::GetBackBuffer()得到的表面指针需要释放吗

这种问题就不要拿来问了吧~~dx9的文档不是说得很清楚了吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 14:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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