Hash :
92e7bc89
Author :
Date :
2020-12-23T15:18:42
Remove ProgramLinkedResources from ProgramExecutable. Instead of storing the entire LinkedResources struct, we can keep it only for the duration of the linking calls. Refactoring change only. It sets the stage for more refactoring. This change also switches the link call to use LinkingState's ProgramLinkedResources directly to avoid the need to copy the varying packing or use a pointer. Bug: angleproject:4514 Bug: angleproject:5496 Change-Id: Iefea3c16a33213dc338cc54efaa7c3064ea6ae08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601403 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
//
// Copyright 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.
//
// ProgramPipelineImpl.h: Defines the abstract rx::ProgramPipelineImpl class.
#ifndef LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_
#define LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_
#include "common/angleutils.h"
#include "libANGLE/ProgramPipeline.h"
namespace rx
{
class ContextImpl;
class ProgramPipelineImpl : public angle::NonCopyable
{
public:
ProgramPipelineImpl(const gl::ProgramPipelineState &state) : mState(state) {}
virtual ~ProgramPipelineImpl() {}
virtual void destroy(const gl::Context *context) {}
virtual angle::Result link(const gl::Context *context,
const gl::ProgramMergedVaryings &mergedVaryings,
const gl::VaryingPacking &varyingPacking);
const gl::ProgramPipelineState &getState() const { return mState; }
protected:
const gl::ProgramPipelineState &mState;
};
} // namespace rx
#endif // LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_