diff options
Diffstat (limited to 'examples/example-base')
| -rw-r--r-- | examples/example-base/example-base.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/examples/example-base/example-base.h b/examples/example-base/example-base.h index 56eb46909..8943323da 100644 --- a/examples/example-base/example-base.h +++ b/examples/example-base/example-base.h @@ -3,6 +3,7 @@ #include "slang-gfx.h" #include "tools/platform/window.h" #include "source/core/slang-basic.h" +#include "source/core/slang-io.h" #ifdef _WIN32 void _Win32OutputDebugString(const char* str); @@ -27,7 +28,7 @@ protected: Slang::ComPtr<gfx::ICommandQueue> gQueue; Slang::Result initializeBase( - const char* titile, + const char* title, int width, int height, gfx::DeviceType deviceType = gfx::DeviceType::Default); @@ -43,6 +44,29 @@ public: virtual void finalize() { gQueue->waitOnHost(); } }; +struct ExampleResources { + Slang::String baseDir; + + ExampleResources(const Slang::String &dir) : baseDir(dir) {} + + Slang::String resolveResource(const char* fileName) const { + static const Slang::List<Slang::String> directories { + "examples", + "../examples", + "../../examples", + }; + + for (const Slang::String& dir : directories) { + Slang::StringBuilder pathSb; + pathSb << dir << "/" << baseDir << "/" << fileName; + if (Slang::File::exists(pathSb.getBuffer())) + return pathSb.toString(); + } + + return fileName; + } +}; + int64_t getCurrentTime(); int64_t getTimerFrequency(); |
