游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 轩辕崇正

使用智能指针对纹理对象进行大规模包装,对于底层实现

[复制链接]

18

主题

116

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2011-6-7 15:21:00 | 显示全部楼层

Re:使用智能指针对纹理对象进行大规模包装,对于底层实现

轩辕兄别灰心~
这样讨论一番,可以让自己程序里的一些问题暴露出来,对自身应该是一种很大的提升吧~
老兄自行设计这样一个机制,根本目的是为了解决纹理共享时销毁的冲突问题。
想请教下,轩辕兄把纹理销毁的时机选定在什么时刻?这个是引擎内部资源管理的一部分吗?

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-6-7 16:01:00 | 显示全部楼层

Re: Re:使用智能指针对纹理对象进行大规模包装,对于底层

思月行云: Re:使用智能指针对纹理对象进行大规模包装,对于底层实现是否合适??

轩辕兄别灰心~
这样讨论一番,可以让自己程序里的一些问题暴露出来,对自身应该是一种很大的提升吧~
老兄...


应用端所得到的纹理指针是一个抽象接口,其释放由应用端手动执行Release(),但释放的是这个封装类对象,真正的D3D纹理的释放则先是放到纹理池,如果纹理池满了才会真正加入到纹理销毁队队列,然后主线程会在一个时机内将其释放掉。
暂时是这样。

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-6-8 08:42:00 | 显示全部楼层

Re: 使用智能指针对纹理对象进行大规模包装,对于底层实

嘿嘿,俺也混了一把前辈了啊!用一件东西之前,得先看清楚说明书啊,东西看起来简单吧,有很多陷阱啊!这是一个陷阱,看看吧
http://www.cnblogs.com/QGraphic/archive/2010/10/16/1853106.html

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-6-8 09:12:00 | 显示全部楼层

Re: Re: 使用智能指针对纹理对象进行大规模包装,对于底层

笨笨雁: Re: 使用智能指针对纹理对象进行大规模包装,对于底层实现是否合适??

嘿嘿,俺也混了一把前辈了啊!用一件东西之前,得先看清楚说明书啊,东西看起来简单吧,有很多陷阱啊!这是一个陷...


恩,是。

智能指针的四宗罪:
http://blog.liancheng.info/?p=85

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-6-8 09:58:00 | 显示全部楼层

Re: Re: Re: 使用智能指针对纹理对象进行大规模包装,对于

轩辕崇正: Re: Re: 使用智能指针对纹理对象进行大规模包装,对于底层实现是否合适??



恩,是。

智能指针的四宗罪:
http://blog.liancheng.info/?p=85


无语了啊,智能指针有好几种,shared_ptr其中一种啊

9

主题

132

帖子

145

积分

注册会员

Rank: 2

积分
145
QQ
发表于 2011-6-8 15:57:00 | 显示全部楼层

Re:使用智能指针对纹理对象进行大规模包装,对于底层实现

  class RefObj
  {
     void AddRef();
     void Release();

     int reference;
  }

  class A : public RefObj
  {
     ...
  }

  哎呀, 代码不敲了.

  如果不想继承, 用define就可以的. 要注意在是, ptr = a时候, ptr里面的就是a.
  这样挺好的, 不然有些对象在生命周期不好管理.
  
  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 14:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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