yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Ellie Hermaszewskaformatf65d756bf

master
1.5 KiB70 linesraw
1// debug-base.h
2#pragma once
3
4#include "../command-encoder-com-forward.h"
5#include "../renderer-shared.h"
6#include "core/slang-com-object.h"
7#include "slang-com-ptr.h"
8#include "slang-gfx.h"
9
10namespace gfx
11{
12using namespace Slang;
13
14namespace debug
15{
16
17class DebugObjectBase : public Slang::ComObject
18{
19public:
20    uint64_t uid;
21    DebugObjectBase()
22    {
23        static uint64_t uidCounter = 0;
24        uid = ++uidCounter;
25    }
26};
27
28template<typename TInterface>
29class DebugObject : public TInterface, public DebugObjectBase
30{
31public:
32    Slang::ComPtr<TInterface> baseObject;
33};
34
35template<typename TInterface>
36class UnownedDebugObject : public TInterface, public DebugObjectBase
37{
38public:
39    TInterface* baseObject = nullptr;
40};
41
42class DebugDevice;
43class DebugShaderTable;
44class DebugQueryPool;
45class DebugBufferResource;
46class DebugTextureResource;
47class DebugResourceView;
48class DebugAccelerationStructure;
49class DebugSamplerState;
50class DebugShaderObject;
51class DebugRootShaderObject;
52class DebugCommandBuffer;
53class DebugResourceCommandEncoderImpl;
54class DebugComputeCommandEncoder;
55class DebugResourceCommandEncoder;
56class DebugRenderCommandEncoder;
57class DebugRayTracingCommandEncoder;
58class DebugFence;
59class DebugCommandQueue;
60class DebugFramebuffer;
61class DebugFramebufferLayout;
62class DebugInputLayout;
63class DebugPipelineState;
64class DebugRenderPassLayout;
65class DebugShaderProgram;
66class DebugTransientResourceHeap;
67class DebugSwapchain;
68
69} // namespace debug
70} // namespace gfx