diff options
Diffstat (limited to 'gfx/angle/checkout/src/libANGLE/Error.inc')
-rw-r--r-- | gfx/angle/checkout/src/libANGLE/Error.inc | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/gfx/angle/checkout/src/libANGLE/Error.inc b/gfx/angle/checkout/src/libANGLE/Error.inc new file mode 100644 index 0000000000..e6a8032895 --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/Error.inc @@ -0,0 +1,91 @@ +// +// Copyright 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.inc: Inline definitions of egl::Error and gl::Error classes which encapsulate API errors +// and optional error messages. + +#include "common/angleutils.h" + +#include <cstdarg> + +namespace egl +{ + +Error::Error(EGLint errorCode) + : mCode(errorCode), + mID(0) +{ +} + +Error::Error(const Error &other) + : mCode(other.mCode), + mID(other.mID) +{ + if (other.mMessage) + { + createMessageString(); + *mMessage = *(other.mMessage); + } +} + +Error::Error(Error &&other) + : mCode(other.mCode), + mID(other.mID), + mMessage(std::move(other.mMessage)) +{ +} + +Error &Error::operator=(const Error &other) +{ + mCode = other.mCode; + mID = other.mID; + + if (other.mMessage) + { + createMessageString(); + *mMessage = *(other.mMessage); + } + else + { + mMessage.reset(); + } + + return *this; +} + +Error &Error::operator=(Error &&other) +{ + if (this != &other) + { + mCode = other.mCode; + mID = other.mID; + mMessage = std::move(other.mMessage); + } + + return *this; +} + +EGLint Error::getCode() const +{ + return mCode; +} + +EGLint Error::getID() const +{ + return mID; +} + +bool Error::isError() const +{ + return (mCode != EGL_SUCCESS); +} + +// Static +Error Error::NoError() +{ + return Error(EGL_SUCCESS); +} + +} |