#ifndef LIBANGLE_SHADER_H_
#define LIBANGLE_SHADER_H_
#include <list>
#include <memory>
#include <string>
#include <vector>
#include <GLSLANG/ShaderLang.h>
#include "angle_gl.h"
#include "common/BinaryStream.h"
#include "common/CompiledShaderState.h"
#include "common/MemoryBuffer.h"
#include "common/Optional.h"
#include "common/angleutils.h"
#include "libANGLE/BlobCache.h"
#include "libANGLE/Caps.h"
#include "libANGLE/Compiler.h"
#include "libANGLE/Debug.h"
#include "libANGLE/angletypes.h"
namespace rx
{
class GLImplFactory;
class ShaderImpl;
class ShaderSh;
class WaitableCompileEvent;
}
namespace angle
{
class WaitableEvent;
class WorkerThreadPool;
}
namespace gl
{
class Context;
class ShaderProgramManager;
class State;
class BinaryInputStream;
class BinaryOutputStream;
enum class CompileStatus
{ … };
struct CompileJob;
SharedCompileJob;
class ShaderState final : angle::NonCopyable
{ … };
class Shader final : angle::NonCopyable, public LabeledObject
{ … };
const char *GetShaderTypeString(ShaderType type);
std::string GetShaderDumpFileDirectory();
std::string GetShaderDumpFileName(size_t shaderHash);
bool WaitCompileJobUnlocked(const SharedCompileJob &compileJob);
}
#endif