summaryrefslogtreecommitdiffstats
path: root/examples/example-base/example-base.h
diff options
context:
space:
mode:
authorGangzheng Tong <tonggangzheng@gmail.com>2025-07-08 23:44:56 -0700
committerGitHub <noreply@github.com>2025-07-09 06:44:56 +0000
commit43d0c2100ef1a5df4b54525e50eb29fe7c39ec16 (patch)
tree25ec4fb9c726115f90bdaa9878f2f4ca372ad0a6 /examples/example-base/example-base.h
parent00746bf09047cdf01c19dac513a532bcf3ed3ea3 (diff)
Convert gfx unit tests and examples to use slang-rhi (#7577)
* Port first gfx unit test to slang-rhi * port triangle example to use slang-rhi * port platform-test to slang-rhi * Update platform-test to throttle mouse move events * port gpu-printing example to use slang-rhi * port model-viewer example to use slang-rhi * port ray-tracing example to use slang-rhi * port ray-tracing pipeline example to use slang-rhi * port reflection parameter blocks example to use slang-rhi * port shader-object example to use slang-rhi * port shader-toy example to use slang-rhi * Port most of tests to slang-rhi * port link-time-constant-array-size to use slang-rhi * Fix tests and find matching tests in slang-rhi * port autodiff-texture * remove gfx target; port nv-aftermath-example * update include path for shader-cursor.h * Disabled 2 more ported tests * fix build error * remove gfx test * put slang-rhi (static-lib) before slang (shared) * format code (#7621) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> * add debug callback * format code (#7649) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> * Address review comments; revert back to use SLANG_CHECK_MSG --------- Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'examples/example-base/example-base.h')
-rw-r--r--examples/example-base/example-base.h36
1 files changed, 13 insertions, 23 deletions
diff --git a/examples/example-base/example-base.h b/examples/example-base/example-base.h
index 9aabac8d4..06970aaba 100644
--- a/examples/example-base/example-base.h
+++ b/examples/example-base/example-base.h
@@ -3,7 +3,7 @@
#include "core/slang-basic.h"
#include "core/slang-io.h"
#include "platform/window.h"
-#include "slang-gfx.h"
+#include "slang-rhi.h"
#include "test-base.h"
#ifdef _WIN32
@@ -23,6 +23,8 @@ void _Win32OutputDebugString(const char* str);
#define EXAMPLE_MAIN(innerMain) PLATFORM_UI_MAIN(innerMain)
#endif // _WIN32
+static const float kIdentity[] = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1};
+
struct WindowedAppBase : public TestBase
{
protected:
@@ -32,39 +34,31 @@ protected:
uint32_t windowWidth;
uint32_t windowHeight;
- Slang::ComPtr<gfx::IDevice> gDevice;
+ Slang::ComPtr<rhi::IDevice> gDevice;
+ Slang::ComPtr<rhi::ICommandQueue> gQueue;
+ Slang::ComPtr<rhi::ISurface> gSurface;
- Slang::ComPtr<gfx::ISwapchain> gSwapchain;
- Slang::ComPtr<gfx::IFramebufferLayout> gFramebufferLayout;
- Slang::List<Slang::ComPtr<gfx::IFramebuffer>> gFramebuffers;
- Slang::List<Slang::ComPtr<gfx::ITransientResourceHeap>> gTransientHeaps;
- Slang::ComPtr<gfx::IRenderPassLayout> gRenderPass;
- Slang::ComPtr<gfx::ICommandQueue> gQueue;
+ Slang::List<Slang::ComPtr<rhi::ITexture>> gOfflineTextures;
Slang::Result initializeBase(
const char* title,
int width,
int height,
- gfx::DeviceType deviceType = gfx::DeviceType::Default);
-
- void createFramebuffers(
- uint32_t width,
- uint32_t height,
- gfx::Format colorFormat,
- uint32_t frameBufferCount);
- void createSwapchainFramebuffers();
- void createOfflineFramebuffers();
+ rhi::DeviceType deviceType = rhi::DeviceType::Default);
void mainLoop();
- Slang::ComPtr<gfx::IResourceView> createTextureFromFile(
+ Slang::ComPtr<rhi::ITextureView> createTextureFromFile(
Slang::String fileName,
int& textureWidth,
int& textureHeight);
+
+ void createOfflineTextures();
+
virtual void windowSizeChanged();
protected:
- virtual void renderFrame(int framebufferIndex) = 0;
+ virtual void renderFrame(rhi::ITexture* texture) = 0;
public:
platform::Window* getWindow() { return gWindow.Ptr(); }
@@ -136,13 +130,9 @@ inline void diagnoseIfNeeded(slang::IBlob* diagnosticsBlob)
}
}
-void initDebugCallback();
-
template<typename TApp>
int innerMain(int argc, char** argv)
{
- initDebugCallback();
-
TApp app;
app.parseOption(argc, argv);