请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 1624|回复: 1

关于资源加载 [复制链接]

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

注册时间
2009-3-27
积分
4055
发表于 2016-12-23 20:47:30 |显示全部楼层
klay在加载资源的时候如何处理加载失败?

我在sample里面改了下代码,故意把要加载的贴图文件名写错,我期望的是返回是个空对象,可是程序异常了,我跟了下代码,Texture.cpp的1565行,
  1. ResIdentifierPtr file = ResLoader::Instance().Open(tex_name);

打开失败,file为空,这里是正常的,可是在后面的read操作中就崩溃了。这个我该怎么处理呢?

还有一个问题,如果我使用异步加载一张贴图,从 ASyncLoadTexture 获得的对象如何知道它什么时候完全加载完毕的?资源本身没有有关加载状态的描述,看到一个相关的函数
  1. bool D3D12Texture::HWResourceReady() const{        return d3d_texture_.get() ? true : false;}

描述的是 D3D 的对象是否已经创建,可是创建完成并不是加载完成啊,后面还有很多加载步骤的啊

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2009-3-31
积分
14266
发表于 2016-12-29 14:07:57 |显示全部楼层
应该ResLoader::Instance().Locate(tex_name)先获取一下文件是否存在。而且,应该是使用者保证要加载的文件格式正确。

创建完成一定是加载完成。因为用的是创建的时候放入数据的方式,而不是map/unmap放入数据。

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-3-28 21:55 , Processed in 0.044998 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部