yum-mirror/slang

Making it easier to work with shaders

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

Simon KallweitAdd API for getting last internal error message (#5772)d4136c934

master
1.0 KiB42 linesraw
1#ifndef SLANG_CORE_SIGNAL_H
2#define SLANG_CORE_SIGNAL_H
3
4#include "slang-common.h"
5
6namespace Slang
7{
8
9enum class SignalType
10{
11    Unexpected,
12    Unimplemented,
13    AssertFailure,
14    Unreachable,
15    InvalidOperation,
16    AbortCompilation,
17};
18
19
20// Note that message can be passed as nullptr for no message.
21[[noreturn]] void handleSignal(SignalType type, char const* message);
22
23#define SLANG_UNEXPECTED(reason) ::Slang::handleSignal(::Slang::SignalType::Unexpected, reason)
24
25#define SLANG_UNIMPLEMENTED_X(what) ::Slang::handleSignal(::Slang::SignalType::Unimplemented, what)
26
27#define SLANG_UNREACHABLE(msg) ::Slang::handleSignal(::Slang::SignalType::Unreachable, msg)
28
29#define SLANG_ASSERT_FAILURE(msg) ::Slang::handleSignal(::Slang::SignalType::AssertFailure, msg)
30
31#define SLANG_INVALID_OPERATION(msg) \
32    ::Slang::handleSignal(::Slang::SignalType::InvalidOperation, msg)
33
34#define SLANG_ABORT_COMPILATION(msg) \
35    ::Slang::handleSignal(::Slang::SignalType::AbortCompilation, msg)
36
37
38const char* getLastSignalMessage();
39
40} // namespace Slang
41
42#endif