游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 轩辕崇正

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

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-5-25 20:05:00 | 显示全部楼层

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

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

.......楼主不禁让我想起一些执著的"黑客",他们从来不屑于学习已有的东西,而是热衷于自己去探索,...


1:首先开始我不知道stl有智能指针这一说
2:我并不熟悉哪些库有智能指针,智能指针这一概念仅仅是与一个朋友交流时得知的,竟不知有现成库
3:我这是借鉴了风魂++的设计方法。云风很在乎底层实现的透明化,高效率,以及调试方便。
我也如此,我只是没有太多的精力将stl源码从头分析个透,否则对于底层实现,我自己能控制的,包括效率有保证的又不复杂的,我尽量自己写。况且自己写的也都是有针对性的,比如我需要一个可以支持下标访问的映射表,我就不能用map,我得自己写……
其实也像某些人玩仿真直升机,甚至想自己制造一个,然后根据自己的需求,自己造。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2011-5-25 20:19:00 | 显示全部楼层

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

祝你成功~~

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-5-25 20:28:00 | 显示全部楼层

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

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

祝你成功~~


谢谢前辈,以后我会更加注意这类问题,自己实现的东西多了,除了有安全隐患外,扩展性,移值性也将缩水,尽可能的不去自己写。

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2011-6-4 10:35:00 | 显示全部楼层

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

void operator = (T* ptr)
{       
         if (ptr == NULL)       
             return;               

?有?????
?你? texturePtr =NULL;
他?]?法把?前Object count--;

而且他?作有??? 只?一??Auto Release

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

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

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

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

void operator = (T* ptr)
{       
         if (ptr == NULL)       
             return;               

?有?????
?你? text...


暂时不支持这个功能,
因为我暂时无法处理这么一种情况:
int* pSrc = ...;
CZSharePtr<int> p1;
CZSharePtr<int> p2;
p1 = pSrc;
p2 = p1;
p1 = NULL;
p1 = NULL;    // 引用计数为0,且引用计数本身的内存也随之被销毁

p2 = NULL;    // 崩溃了,为什么?因为p2的引用计数指针已经成为了野指针!!

对于这种情况,引用计数本身的指针是否能够设计成共享指针?这个有待研究..

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2011-6-5 10:41:00 | 显示全部楼层

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

楼主,我不是告诉了你,BOOST里有智能指针吗?你居然直接给54了?这么牛居然自己写一个?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2011-6-6 00:57:00 | 显示全部楼层

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

智能指针很容易写,但没有gc根本不行。

尤其是,如果不支持不从某个根类继承下来的对象的话,那简直太好写了。

而且,用smartptr的话,最终需要区分value class, ref class. .NET就是区分这两个。

不论是gc还是smartptr,都无法解决第三方句柄的自动销毁管理。例如数组的 index 也可以表现地像一个指针。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-6-6 07:51:00 | 显示全部楼层

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

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

智能指针很容易写,但没有gc根本不行。

尤其是,如果不支持不从某个根类继承下来的对象的话,那简直太好...


恩,我知道,我写的这个东西相当简陋,我甚至并没有把他当成一个智能指针,而是仅提供给我我内部一个动画类使用,其他地方就再没使用了.的确如3楼所说,不得不小心.

10

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2011-6-7 11:57:00 | 显示全部楼层

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

唉,楼主啊,服了你了,别搞游戏了,放弃吧,搞搞网站吧!你放不下这个面子,就永远也学不到东西.想当年我们初学的时候,为了问问题,做人都做得像孙子一样了,见了人就喊爷啊.现在看看,别人都很礼貌的指出你的错误了,你尽然还为自己找借口.唉,还是那句老话,无知并不可怕,强不知以为知才可怕啊!

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

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

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

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

唉,楼主啊,服了你了,别搞游戏了,放弃吧,搞搞网站吧!你放不下这个面子,就永远也学不到东西.想当年我们初学的...


前辈教训的是。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 18:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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