// // Copyright (c) 2017 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. // // ProgramPipeline.cpp: Implements the gl::ProgramPipeline class. // Implements GL program pipeline objects and related functionality. // [OpenGL ES 3.1] section 7.4 page 105. #include "libANGLE/ProgramPipeline.h" #include "libANGLE/angletypes.h" #include "libANGLE/renderer/GLImplFactory.h" #include "libANGLE/renderer/ProgramPipelineImpl.h" namespace gl { ProgramPipelineState::ProgramPipelineState() : mLabel() { } ProgramPipelineState::~ProgramPipelineState() { } const std::string &ProgramPipelineState::getLabel() const { return mLabel; } ProgramPipeline::ProgramPipeline(rx::GLImplFactory *factory, GLuint handle) : RefCountObject(handle), mProgramPipeline(factory->createProgramPipeline(mState)) { ASSERT(mProgramPipeline); } ProgramPipeline::~ProgramPipeline() { mProgramPipeline.release(); } Error ProgramPipeline::onDestroy(const Context *context) { return NoError(); } void ProgramPipeline::setLabel(const std::string &label) { mState.mLabel = label; } const std::string &ProgramPipeline::getLabel() const { return mState.mLabel; } rx::ProgramPipelineImpl *ProgramPipeline::getImplementation() const { return mProgramPipeline.get(); } } // namespace gl