#ifndef LIBANGLE_PROGRAMEXECUTABLE_H_
#define LIBANGLE_PROGRAMEXECUTABLE_H_
#include "common/BinaryStream.h"
#include "libANGLE/Caps.h"
#include "libANGLE/InfoLog.h"
#include "libANGLE/ProgramLinkedResources.h"
#include "libANGLE/Shader.h"
#include "libANGLE/Uniform.h"
#include "libANGLE/VaryingPacking.h"
#include "libANGLE/angletypes.h"
namespace rx
{
class GLImplFactory;
class LinkSubTask;
class ProgramExecutableImpl;
}
namespace gl
{
ANGLE_ENABLE_STRUCT_PADDING_WARNINGS
struct SamplerBinding
{ … };
ANGLE_DISABLE_STRUCT_PADDING_WARNINGS
struct ImageBinding
{ … };
ANGLE_ENABLE_STRUCT_PADDING_WARNINGS
struct ProgramInput
{ … };
ANGLE_DISABLE_STRUCT_PADDING_WARNINGS
ANGLE_ENABLE_STRUCT_PADDING_WARNINGS
struct ProgramOutput
{ … };
ANGLE_DISABLE_STRUCT_PADDING_WARNINGS
struct TransformFeedbackVarying : public sh::ShaderVariable
{ … };
class ProgramState;
class ProgramPipelineState;
class ProgramExecutable;
SharedProgramExecutable;
class ProgramExecutable final : public angle::Subject
{ … };
void InstallExecutable(const Context *context,
const SharedProgramExecutable &toInstall,
SharedProgramExecutable *executable);
void UninstallExecutable(const Context *context, SharedProgramExecutable *executable);
}
#endif