]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/glsl_error.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / glsl / glsl_error.h
index 63c49bbd9112d95f521369d43577603958e17589..0a271994299f22db6dacd16ea25f350db695cd49 100644 (file)
@@ -13,6 +13,7 @@ struct Location;
 class invalid_shader_source: public std::runtime_error
 {
 public:
+       invalid_shader_source(const std::string &w): runtime_error(w) { }
        invalid_shader_source(const Location &, const std::string &);
 #if __cplusplus>=201103L
        template<typename... Args>
@@ -23,6 +24,13 @@ public:
        virtual ~invalid_shader_source() throw() { }
 };
 
+class syntax_error: public invalid_shader_source
+{
+public:
+       syntax_error(const Location &, const std::string &, const std::string &);
+       virtual ~syntax_error() throw() { }
+};
+
 class parse_error: public invalid_shader_source
 {
 public:
@@ -30,6 +38,33 @@ public:
        virtual ~parse_error() throw() { }
 };
 
+class internal_error: public std::logic_error
+{
+public:
+       internal_error(const std::string &w): logic_error(w) { }
+       virtual ~internal_error() throw() { }
+};
+
+struct Diagnostic
+{
+       enum Severity
+       {
+               INFO,
+               WARN,
+               ERR
+       };
+
+       Severity severity = INFO;
+       int source = 0;
+       unsigned line = 0;
+       int provoking_source = 0;
+       unsigned provoking_line = 0;
+       std::string message;
+
+       Diagnostic() = default;
+       Diagnostic(Severity, int, unsigned, const std::string &);
+};
+
 } // namespace SL
 } // namespace GL
 } // namespace Msp