blob: 85af46f6858a3050036d7225327184cb0b319c58 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/shell/platform/windows/egl/egl.h"
#include <EGL/egl.h>
#include "flutter/fml/logging.h"
namespace flutter {
namespace egl {
namespace {
const char* EGLErrorToString(EGLint error) {
switch (error) {
case EGL_SUCCESS:
return "Success";
case EGL_NOT_INITIALIZED:
return "Not Initialized";
case EGL_BAD_ACCESS:
return "Bad Access";
case EGL_BAD_ALLOC:
return "Bad Alloc";
case EGL_BAD_ATTRIBUTE:
return "Bad Attribute";
case EGL_BAD_CONTEXT:
return "Bad Context";
case EGL_BAD_CONFIG:
return "Bad Config";
case EGL_BAD_CURRENT_SURFACE:
return "Bad Current Surface";
case EGL_BAD_DISPLAY:
return "Bad Display";
case EGL_BAD_SURFACE:
return "Bad Surface";
case EGL_BAD_MATCH:
return "Bad Match";
case EGL_BAD_PARAMETER:
return "Bad Parameter";
case EGL_BAD_NATIVE_PIXMAP:
return "Bad Native Pixmap";
case EGL_BAD_NATIVE_WINDOW:
return "Bad Native Window";
case EGL_CONTEXT_LOST:
return "Context Lost";
}
FML_UNREACHABLE();
return "Unknown";
}
} // namespace
void LogEGLError(std::string_view message) {
const EGLint error = ::eglGetError();
return FML_LOG(ERROR) << "EGL Error: " << EGLErrorToString(error) << " ("
<< error << ") " << message;
}
void LogEGLError(std::string_view file, int line) {
std::stringstream stream;
stream << "in " << file << ":" << line;
LogEGLError(stream.str());
}
} // namespace egl
} // namespace flutter