中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 2687|回复: 1

关于资源加载

[复制链接]
发表于 2016-12-23 20:47:30 | 显示全部楼层 |阅读模式
klay在加载资源的时候如何处理加载失败?

我在sample里面改了下代码,故意把要加载的贴图文件名写错,我期望的是返回是个空对象,可是程序异常了,我跟了下代码,Texture.cpp的1565行,
[code=cpp]ResIdentifierPtr file = ResLoader::Instance().Open(tex_name);[/code]
打开失败,file为空,这里是正常的,可是在后面的read操作中就崩溃了。这个我该怎么处理呢?

还有一个问题,如果我使用异步加载一张贴图,从 ASyncLoadTexture 获得的对象如何知道它什么时候完全加载完毕的?资源本身没有有关加载状态的描述,看到一个相关的函数
[code=cpp]bool D3D12Texture::HWResourceReady() const{        return d3d_texture_.get() ? true : false;}[/code]
描述的是 D3D 的对象是否已经创建,可是创建完成并不是加载完成啊,后面还有很多加载步骤的啊
发表于 2016-12-29 14:07:57 | 显示全部楼层
应该ResLoader::Instance().Locate(tex_name)先获取一下文件是否存在。而且,应该是使用者保证要加载的文件格式正确。

创建完成一定是加载完成。因为用的是创建的时候放入数据的方式,而不是map/unmap放入数据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-2-25 09:23 , Processed in 0.286379 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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