diff options
Diffstat (limited to 'source/core')
| -rw-r--r-- | source/core/slang-process-util.h | 2 | ||||
| -rw-r--r-- | source/core/slang-std-writers.h | 25 |
2 files changed, 27 insertions, 0 deletions
diff --git a/source/core/slang-process-util.h b/source/core/slang-process-util.h index 25cf0aca3..6c765b6cd 100644 --- a/source/core/slang-process-util.h +++ b/source/core/slang-process-util.h @@ -16,11 +16,13 @@ struct ExecuteResult resultCode = 0; standardOutput = String(); standardError = String(); + debugLayer = String(); } ResultCode resultCode; String standardOutput; String standardError; + String debugLayer; }; struct ProcessUtil diff --git a/source/core/slang-std-writers.h b/source/core/slang-std-writers.h index bb67d9d9c..bb38d12e0 100644 --- a/source/core/slang-std-writers.h +++ b/source/core/slang-std-writers.h @@ -7,6 +7,27 @@ namespace Slang { +enum class DebugMessageType +{ + Info, + Warning, + Error +}; + +enum class DebugMessageSource +{ + Layer, + Driver, + Slang +}; + +class IDebugCallback +{ +public: + virtual SLANG_NO_THROW void SLANG_MCALL + handleMessage(DebugMessageType type, DebugMessageSource source, const char* message) = 0; +}; + /* Holds standard writers for the channels */ class StdWriters : public RefObject { @@ -14,6 +35,9 @@ public: ISlangWriter* getWriter(SlangWriterChannel chan) const { return m_writers[chan]; } void setWriter(SlangWriterChannel chan, ISlangWriter* writer) { m_writers[chan] = writer; } + IDebugCallback* getDebugCallback() const { return m_debugCallback; } + void setDebugCallback(IDebugCallback* callback) { m_debugCallback = callback; } + /// Flush all the set writers void flushWriters(); @@ -42,6 +66,7 @@ public: protected: ComPtr<ISlangWriter> m_writers[SLANG_WRITER_CHANNEL_COUNT_OF]; + IDebugCallback* m_debugCallback = nullptr; static StdWriters* s_singleton; }; |
