From 0e71a6d40d2ccdc9e6bb861e7bbdb9479dbec636 Mon Sep 17 00:00:00 2001 From: venkataram-nv Date: Mon, 1 Jul 2024 10:08:04 -0700 Subject: Resource searching for examples (#4518) --- examples/example-base/example-base.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'examples/example-base/example-base.h') 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 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 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(); -- cgit v1.2.3