本文整理汇总了C++中SPtr::close方法的典型用法代码示例。如果您正苦于以下问题:C++ SPtr::close方法的具体用法?C++ SPtr::close怎么用?C++ SPtr::close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SPtr
的用法示例。
在下文中一共展示了SPtr::close方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: preprocess
void BuiltinResources::preprocess(bool forceImport, time_t lastUpdateTime)
{
// Hidden dependency: Textures need to be generated before shaders as they may use the default textures
generateTextures();
Path dataListsFilePath = mBuiltinRawDataFolder + DATA_LIST_JSON;
SPtr<DataStream> dataListStream = FileSystem::openFile(dataListsFilePath);
json dataListJSON = json::parse(dataListStream->getAsString().c_str());
json skinJSON = dataListJSON["Skin"];
json cursorsJSON = dataListJSON["Cursors"];
json iconsJSON = dataListJSON["Icons"];
json includesJSON = dataListJSON["Includes"];
json shadersJSON = dataListJSON["Shaders"];
Path rawSkinFolder = mBuiltinRawDataFolder + SKIN_FOLDER;
Path rawCursorFolder = mBuiltinRawDataFolder + CURSOR_FOLDER;
Path rawIconFolder = mBuiltinRawDataFolder + ICON_FOLDER;
Path rawShaderFolder = mBuiltinRawDataFolder + SHADER_FOLDER;
Path rawShaderIncludeFolder = mBuiltinRawDataFolder + SHADER_INCLUDE_FOLDER;
// Update DataList.json if needed
bool updatedDataLists = false;
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
rawCursorFolder,
BuiltinResourcesHelper::AssetType::Normal,
cursorsJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
rawIconFolder,
BuiltinResourcesHelper::AssetType::Normal,
iconsJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
rawShaderIncludeFolder,
BuiltinResourcesHelper::AssetType::Normal,
includesJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
rawShaderFolder,
BuiltinResourcesHelper::AssetType::Normal,
shadersJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
rawSkinFolder,
BuiltinResourcesHelper::AssetType::Sprite,
skinJSON);
dataListStream->close();
if(updatedDataLists)
{
FileSystem::remove(dataListsFilePath);
dataListJSON["Skin"] = skinJSON;
dataListJSON["Cursors"] = cursorsJSON;
dataListJSON["Icons"] = iconsJSON;
dataListJSON["Includes"] = includesJSON;
dataListJSON["Shaders"] = shadersJSON;
String jsonString = dataListJSON.dump(4).c_str();
dataListStream = FileSystem::createAndOpenFile(dataListsFilePath);
dataListStream->writeString(jsonString);
dataListStream->close();
}
Path skinFolder = mBuiltinDataFolder + SKIN_FOLDER;
Path iconFolder = mBuiltinDataFolder + ICON_FOLDER;
Path shaderIncludeFolder = mBuiltinDataFolder + SHADER_INCLUDE_FOLDER;
Path shaderDependenciesFile = mBuiltinDataFolder + "ShaderDependencies.json";
// If forcing import, clear all data folders since everything will be recreated anyway
if(forceImport)
{
FileSystem::remove(mEngineCursorFolder);
FileSystem::remove(iconFolder);
FileSystem::remove(shaderIncludeFolder);
FileSystem::remove(mEngineShaderFolder);
FileSystem::remove(skinFolder);
FileSystem::remove(shaderDependenciesFile);
}
// Read shader dependencies JSON
json shaderDependenciesJSON;
if(FileSystem::exists(shaderDependenciesFile))
{
SPtr<DataStream> stream = FileSystem::openFile(shaderDependenciesFile);
shaderDependenciesJSON = json::parse(stream->getAsString().c_str());
stream->close();
}
// Import cursors
{
BuiltinResourcesHelper::updateManifest(
mEngineCursorFolder,
cursorsJSON,
mResourceManifest,
BuiltinResourcesHelper::AssetType::Normal);
//.........这里部分代码省略.........
示例2: preprocess
void BuiltinEditorResources::preprocess(bool forceImport, time_t lastUpdateTime)
{
Resources::instance().unloadAllUnused();
Path dataListsFilePath = BuiltinRawDataFolder + DATA_LIST_JSON;
SPtr<DataStream> dataListStream = FileSystem::openFile(dataListsFilePath);
json dataListJSON = json::parse(dataListStream->getAsString().c_str());
json skinJSON = dataListJSON["Skin"];
json iconsJSON = dataListJSON["Icons"];
json includesJSON = dataListJSON["Includes"];
json shadersJSON = dataListJSON["Shaders"];
// Update DataList.json if needed
bool updatedDataLists = false;
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
EditorRawIconsFolder,
BuiltinResourcesHelper::AssetType::Sprite,
iconsJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
EditorRawShaderIncludeFolder,
BuiltinResourcesHelper::AssetType::Normal,
includesJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
EditorRawShaderFolder,
BuiltinResourcesHelper::AssetType::Normal,
shadersJSON);
updatedDataLists |= BuiltinResourcesHelper::updateJSON(
EditorRawSkinFolder,
BuiltinResourcesHelper::AssetType::Sprite,
skinJSON);
dataListStream->close();
if (updatedDataLists)
{
FileSystem::remove(dataListsFilePath);
dataListJSON["Skin"] = skinJSON;
dataListJSON["Icons"] = iconsJSON;
dataListJSON["Includes"] = includesJSON;
dataListJSON["Shaders"] = shadersJSON;
String jsonString = dataListJSON.dump(4).c_str();
dataListStream = FileSystem::createAndOpenFile(dataListsFilePath);
dataListStream->writeString(jsonString);
dataListStream->close();
}
// If forcing import, clear all data folders since everything will be recreated anyway
Path shaderDependenciesFile = BuiltinDataFolder + "ShaderDependencies.json";
if(forceImport)
{
FileSystem::remove(EditorIconFolder);
FileSystem::remove(EditorShaderIncludeFolder);
FileSystem::remove(EditorShaderFolder);
FileSystem::remove(EditorSkinFolder);
FileSystem::remove(shaderDependenciesFile);
}
// Read shader dependencies JSON
json shaderDependenciesJSON;
if(FileSystem::exists(shaderDependenciesFile))
{
SPtr<DataStream> stream = FileSystem::openFile(shaderDependenciesFile);
shaderDependenciesJSON = json::parse(stream->getAsString().c_str());
stream->close();
}
// Import icons
{
BuiltinResourcesHelper::updateManifest(
EditorIconFolder,
iconsJSON,
mResourceManifest,
BuiltinResourcesHelper::AssetType::Sprite);
Vector<bool> importFlags = BuiltinResourcesHelper::generateImportFlags(
iconsJSON,
EditorRawIconsFolder,
lastUpdateTime,
forceImport);
BuiltinResourcesHelper::importAssets(
iconsJSON,
importFlags,
EditorRawIconsFolder,
EditorIconFolder,
mResourceManifest,
BuiltinResourcesHelper::AssetType::Sprite);
}
// Import shaders
{
BuiltinResourcesHelper::updateManifest(
//.........这里部分代码省略.........