From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- gfx/angle/checkout/src/libANGLE/Error.cpp | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 gfx/angle/checkout/src/libANGLE/Error.cpp (limited to 'gfx/angle/checkout/src/libANGLE/Error.cpp') diff --git a/gfx/angle/checkout/src/libANGLE/Error.cpp b/gfx/angle/checkout/src/libANGLE/Error.cpp new file mode 100644 index 0000000000..dbd1464f32 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/Error.cpp @@ -0,0 +1,67 @@ +// +// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// Error.cpp: Implements the egl::Error and gl::Error classes which encapsulate API errors +// and optional error messages. + +#include "libANGLE/Error.h" + +#include "common/angleutils.h" +#include "common/debug.h" +#include "common/utilities.h" + +#include + +namespace +{ +std::unique_ptr EmplaceErrorString(std::string &&message) +{ + return message.empty() ? std::unique_ptr() + : std::unique_ptr(new std::string(std::move(message))); +} +} // anonymous namespace + +namespace egl +{ + +Error::Error(EGLint errorCode, std::string &&message) + : mCode(errorCode), mID(errorCode), mMessage(EmplaceErrorString(std::move(message))) +{} + +Error::Error(EGLint errorCode, EGLint id, std::string &&message) + : mCode(errorCode), mID(id), mMessage(EmplaceErrorString(std::move(message))) +{} + +void Error::createMessageString() const +{ + if (!mMessage) + { + mMessage.reset(new std::string(GetGenericErrorMessage(mCode))); + } +} + +const std::string &Error::getMessage() const +{ + createMessageString(); + return *mMessage; +} + +std::ostream &operator<<(std::ostream &os, const Error &err) +{ + return gl::FmtHex(os, err.getCode()); +} +} // namespace egl + +namespace angle +{ +egl::Error ResultToEGL(Result result) +{ + if (result == Result::Continue) + return egl::NoError(); + + return egl::Error(EGL_BAD_ACCESS); +} +} // namespace angle -- cgit v1.2.3