Remaining object tracker platforms

This commit is contained in:
Jack Andersen 2017-11-05 20:56:17 -10:00
parent d2fda8a373
commit a3b9a32633
7 changed files with 22 additions and 16 deletions

View File

@ -2,7 +2,7 @@
#ifndef NOMINMAX #ifndef NOMINMAX
#define NOMINMAX #define NOMINMAX
#endif #endif
#define WIN_PAUSE 1 #define WIN_PAUSE 0
#include <objbase.h> #include <objbase.h>
#endif #endif

2
hecl/extern/boo vendored

@ -1 +1 @@
Subproject commit 3a7987bb21b0db3873948e82520fa88c6981f436 Subproject commit 6c3a35f15d06c84c7f7be9055993c14715323145

View File

@ -302,7 +302,7 @@ static inline int Rename(const SystemChar* oldpath, const SystemChar* newpath)
{ {
#if HECL_UCS2 #if HECL_UCS2
//return _wrename(oldpath, newpath); //return _wrename(oldpath, newpath);
return ReplaceFileW(newpath, oldpath, nullptr, 0, nullptr, nullptr) == 0; return MoveFileExW(oldpath, newpath, MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH) == 0;
#else #else
return rename(oldpath, newpath); return rename(oldpath, newpath);
#endif #endif

View File

@ -635,7 +635,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
const hecl::Frontend::IR& ir, const hecl::Frontend::IR& ir,
hecl::Frontend::Diagnostics& diag, hecl::Frontend::Diagnostics& diag,
boo::IGraphicsDataFactory::Context& ctx, boo::IGraphicsDataFactory::Context& ctx,
boo::IShaderPipeline*& objOut) boo::ObjToken<boo::IShaderPipeline>& objOut)
{ {
m_backend.reset(ir, diag); m_backend.reset(ir, diag);
@ -704,8 +704,9 @@ struct SPIRVBackendFactory : IShaderBackendFactory
return dataOut; return dataOut;
} }
boo::IShaderPipeline* buildShaderFromCache(const ShaderCachedData& data, boo::ObjToken<boo::IShaderPipeline>
boo::IGraphicsDataFactory::Context& ctx) buildShaderFromCache(const ShaderCachedData& data,
boo::IGraphicsDataFactory::Context& ctx)
{ {
const ShaderTag& tag = data.m_tag; const ShaderTag& tag = data.m_tag;
athena::io::MemoryReader r(data.m_data.get(), data.m_sz, false, false); athena::io::MemoryReader r(data.m_data.get(), data.m_sz, false, false);
@ -731,7 +732,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
if (r.hasError()) if (r.hasError())
return nullptr; return nullptr;
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::VulkanDataFactory::Context&>(ctx). static_cast<boo::VulkanDataFactory::Context&>(ctx).
newShaderPipeline(nullptr, nullptr, newShaderPipeline(nullptr, nullptr,
&vertBlob, &fragBlob, &pipelineBlob, &vertBlob, &fragBlob, &pipelineBlob,
@ -777,7 +778,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
tag.getReflectionType(), slot.lighting, slot.post, slot.texCount, slot.texs); tag.getReflectionType(), slot.lighting, slot.post, slot.texCount, slot.texs);
pipeBlobs.emplace_back(); pipeBlobs.emplace_back();
Blobs& pipeBlob = pipeBlobs.back(); Blobs& pipeBlob = pipeBlobs.back();
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::VulkanDataFactory::Context&>(ctx). static_cast<boo::VulkanDataFactory::Context&>(ctx).
newShaderPipeline(vertSource.c_str(), fragSource.c_str(), newShaderPipeline(vertSource.c_str(), fragSource.c_str(),
&pipeBlob.vert, &pipeBlob.frag, &pipeBlob.pipeline, &pipeBlob.vert, &pipeBlob.frag, &pipeBlob.pipeline,
@ -894,7 +895,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
break; break;
} }
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::VulkanDataFactory::Context&>(ctx). static_cast<boo::VulkanDataFactory::Context&>(ctx).
newShaderPipeline(nullptr, nullptr, newShaderPipeline(nullptr, nullptr,
&vertBlob, &fragBlob, &pipelineBlob, &vertBlob, &fragBlob, &pipelineBlob,

View File

@ -360,7 +360,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
const hecl::Frontend::IR& ir, const hecl::Frontend::IR& ir,
hecl::Frontend::Diagnostics& diag, hecl::Frontend::Diagnostics& diag,
boo::IGraphicsDataFactory::Context& ctx, boo::IGraphicsDataFactory::Context& ctx,
boo::IShaderPipeline*& objOut) boo::ObjToken<boo::IShaderPipeline>& objOut)
{ {
m_backend.reset(ir, diag); m_backend.reset(ir, diag);
@ -431,8 +431,9 @@ struct HLSLBackendFactory : IShaderBackendFactory
return dataOut; return dataOut;
} }
boo::IShaderPipeline* buildShaderFromCache(const ShaderCachedData& data, boo::ObjToken<boo::IShaderPipeline>
boo::IGraphicsDataFactory::Context& ctx) buildShaderFromCache(const ShaderCachedData& data,
boo::IGraphicsDataFactory::Context& ctx)
{ {
const ShaderTag& tag = data.m_tag; const ShaderTag& tag = data.m_tag;
athena::io::MemoryReader r(data.m_data.get(), data.m_sz, false, false); athena::io::MemoryReader r(data.m_data.get(), data.m_sz, false, false);
@ -469,7 +470,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
if (r.hasError()) if (r.hasError())
return nullptr; return nullptr;
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::ID3DDataFactory::Context&>(ctx). static_cast<boo::ID3DDataFactory::Context&>(ctx).
newShaderPipeline(nullptr, nullptr, newShaderPipeline(nullptr, nullptr,
ReferenceComPtr(vertBlob), ReferenceComPtr(fragBlob), ReferenceComPtr(pipelineBlob), ReferenceComPtr(vertBlob), ReferenceComPtr(fragBlob), ReferenceComPtr(pipelineBlob),
@ -534,7 +535,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
break; break;
} }
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::ID3DDataFactory::Context&>(ctx). static_cast<boo::ID3DDataFactory::Context&>(ctx).
newShaderPipeline(vertSource.c_str(), fragSource.c_str(), newShaderPipeline(vertSource.c_str(), fragSource.c_str(),
ReferenceComPtr(thisPipeBlobs.vert), ReferenceComPtr(thisPipeBlobs.frag), ReferenceComPtr(thisPipeBlobs.pipeline), ReferenceComPtr(thisPipeBlobs.vert), ReferenceComPtr(thisPipeBlobs.frag), ReferenceComPtr(thisPipeBlobs.pipeline),
@ -654,7 +655,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
break; break;
} }
boo::IShaderPipeline* ret = boo::ObjToken<boo::IShaderPipeline> ret =
static_cast<boo::ID3DDataFactory::Context&>(ctx). static_cast<boo::ID3DDataFactory::Context&>(ctx).
newShaderPipeline(nullptr, nullptr, newShaderPipeline(nullptr, nullptr,
ReferenceComPtr(vertBlob), ReferenceComPtr(fragBlob), ReferenceComPtr(pipelineBlob), ReferenceComPtr(vertBlob), ReferenceComPtr(fragBlob), ReferenceComPtr(pipelineBlob),

View File

@ -187,7 +187,7 @@ bool Project::ConfigFile::unlockAndCommit()
{ {
#if HECL_UCS2 #if HECL_UCS2
//_wrename(newPath.c_str(), m_filepath.c_str()); //_wrename(newPath.c_str(), m_filepath.c_str());
ReplaceFileW(m_filepath.c_str(), newPath.c_str(), nullptr, 0, nullptr, nullptr); MoveFileExW(newPath.c_str(), m_filepath.c_str(), MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH);
#else #else
rename(newPath.c_str(), m_filepath.c_str()); rename(newPath.c_str(), m_filepath.c_str());
#endif #endif

View File

@ -108,6 +108,8 @@ void SanitizePath(std::string& path)
} }
return a; return a;
}); });
while (path.back() == '/')
path.pop_back();
} }
static const std::wstring WIllegals {L"<>?\"|"}; static const std::wstring WIllegals {L"<>?\"|"};
@ -140,6 +142,8 @@ void SanitizePath(std::wstring& path)
} }
return a; return a;
}); });
while (path.back() == L'/')
path.pop_back();
} }
static std::mutex PathsMutex; static std::mutex PathsMutex;