#include "libANGLE/ProgramPipeline.h"
#include <algorithm>
#include "libANGLE/Context.h"
#include "libANGLE/Program.h"
#include "libANGLE/angletypes.h"
#include "libANGLE/renderer/ContextImpl.h"
#include "libANGLE/renderer/ProgramPipelineImpl.h"
namespace gl
{
ProgramPipelineState::ProgramPipelineState(rx::GLImplFactory *factory)
: … { … }
ProgramPipelineState::~ProgramPipelineState() { … }
const std::string &ProgramPipelineState::getLabel() const
{ … }
void ProgramPipelineState::activeShaderProgram(Program *shaderProgram)
{ … }
SharedProgramExecutable ProgramPipelineState::makeNewExecutable(
rx::GLImplFactory *factory,
ShaderMap<SharedProgramExecutable> &&ppoProgramExecutables)
{ … }
void ProgramPipelineState::useProgramStage(const Context *context,
const ShaderType shaderType,
Program *shaderProgram,
angle::ObserverBinding *programObserverBinding,
angle::ObserverBinding *programExecutableObserverBinding)
{ … }
void ProgramPipelineState::useProgramStages(
const Context *context,
const ShaderBitSet &shaderTypes,
Program *shaderProgram,
std::vector<angle::ObserverBinding> *programObserverBindings,
std::vector<angle::ObserverBinding> *programExecutableObserverBindings)
{ … }
bool ProgramPipelineState::usesShaderProgram(ShaderProgramID programId) const
{ … }
void ProgramPipelineState::updateExecutableTextures()
{ … }
void ProgramPipelineState::updateExecutableSpecConstUsageBits()
{ … }
ProgramPipeline::ProgramPipeline(rx::GLImplFactory *factory, ProgramPipelineID handle)
: … { … }
ProgramPipeline::~ProgramPipeline()
{ … }
void ProgramPipeline::onDestroy(const Context *context)
{ … }
void ProgramPipelineState::destroyDiscardedExecutables(const Context *context)
{ … }
angle::Result ProgramPipeline::setLabel(const Context *context, const std::string &label)
{ … }
const std::string &ProgramPipeline::getLabel() const
{ … }
rx::ProgramPipelineImpl *ProgramPipeline::getImplementation() const
{ … }
void ProgramPipeline::activeShaderProgram(Program *shaderProgram)
{ … }
angle::Result ProgramPipeline::useProgramStages(const Context *context,
GLbitfield stages,
Program *shaderProgram)
{ … }
void ProgramPipeline::updateLinkedShaderStages()
{ … }
void ProgramPipeline::updateExecutableAttributes()
{ … }
void ProgramPipeline::updateTransformFeedbackMembers()
{ … }
void ProgramPipeline::updateShaderStorageBlocks()
{ … }
void ProgramPipeline::updateImageBindings()
{ … }
void ProgramPipeline::updateExecutableGeometryProperties()
{ … }
void ProgramPipeline::updateExecutableTessellationProperties()
{ … }
void ProgramPipeline::updateFragmentInoutRangeAndEnablesPerSampleShading()
{ … }
void ProgramPipeline::updateLinkedVaryings()
{ … }
void ProgramPipeline::updateExecutable()
{ … }
void ProgramPipeline::resolveAttachedPrograms(const Context *context)
{ … }
angle::Result ProgramPipeline::link(const Context *context)
{ … }
int ProgramPipeline::getInfoLogLength() const
{ … }
void ProgramPipeline::getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog) const
{ … }
bool ProgramPipeline::linkVaryings()
{ … }
void ProgramPipeline::validate(const Context *context)
{ … }
void ProgramPipeline::onSubjectStateChange(angle::SubjectIndex index, angle::SubjectMessage message)
{ … }
}