summaryrefslogtreecommitdiffstats
path: root/examples/example-base/example-base.h
diff options
context:
space:
mode:
authorvenkataram-nv <vedavamadath@nvidia.com>2024-07-01 10:08:04 -0700
committerGitHub <noreply@github.com>2024-07-01 10:08:04 -0700
commit0e71a6d40d2ccdc9e6bb861e7bbdb9479dbec636 (patch)
tree4d43b38d7c1de52caba5e48e118021dced1ac7a8 /examples/example-base/example-base.h
parentd276ea3558e2ac0672a3340301d2dec6d5cf321b (diff)
Resource searching for examples (#4518)
Diffstat (limited to 'examples/example-base/example-base.h')
-rw-r--r--examples/example-base/example-base.h26
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();