blob: cdfece94b32fe6fa06a8e61b790812db240cdd8e [file] [log] [blame]
//
// Copyright 2018 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.
//
#include "libANGLE/renderer/gl/egl/RendererEGL.h"
#include "libANGLE/renderer/gl/egl/DisplayEGL.h"
namespace rx
{
RendererEGL::RendererEGL(std::unique_ptr<FunctionsGL> functionsGL,
const egl::AttributeMap &attribMap,
DisplayEGL *display,
EGLContext context,
const native_egl::AttributeVector attribs,
bool isExternalContext)
: RendererGL(std::move(functionsGL), attribMap, display),
mDisplay(display),
mContext(context),
mAttribs(attribs),
mIsExternalContext(isExternalContext)
{}
RendererEGL::~RendererEGL()
{
if (!mIsExternalContext)
{
mDisplay->destroyNativeContext(mContext);
mContext = nullptr;
}
}
EGLContext RendererEGL::getContext() const
{
return mContext;
}
WorkerContext *RendererEGL::createWorkerContext(std::string *infoLog)
{
return mDisplay->createWorkerContext(infoLog, mContext, mAttribs);
}
} // namespace rx