// MobileGL - MobileGL/MG_State/GLState/ErrorState/Error.h // Copyright (c) 2025-2026 MobileGL-Dev // Licensed under the GNU Lesser General Public License v3.0: // https://www.gnu.org/licenses/gpl-3.0.txt // https://www.gnu.org/licenses/lgpl-3.0.txt // SPDX-License-Identifier: LGPL-3.0-only // End of Source File Header #pragma once #include #include "ErrorCode.h" #include "ErrorInfo.h" namespace MobileGL { struct Error { ErrorCode code; UniquePtr info; }; namespace MG_State::GLState { class ErrorState { public: void RecordError(ErrorCode code, UniquePtr info); Bool HasNonGLError() const; Optional PeekNonGLError() const; Optional> PopNonGLError(); Bool HasGLError() const; Optional PeekGLError() const; Optional> PopGLError(); void Clear(); private: Vector> m_errors; Vector> m_nonGLErrors; }; } // namespace MG_State::GLState } // namespace MobileGL