#include "libANGLE/GLES1Renderer.h"
#include <string.h>
#include <iterator>
#include <sstream>
#include <vector>
#include "common/hash_utils.h"
#include "libANGLE/Context.h"
#include "libANGLE/Context.inl.h"
#include "libANGLE/Program.h"
#include "libANGLE/ResourceManager.h"
#include "libANGLE/Shader.h"
#include "libANGLE/State.h"
#include "libANGLE/context_private_call_gles_autogen.h"
#include "libANGLE/renderer/ContextImpl.h"
namespace
{
#include "libANGLE/GLES1Shaders.inc"
uint32_t GetLogicOpUniform(const gl::FramebufferAttachment *color, gl::LogicalOperation logicOp)
{ … }
}
namespace gl
{
GLES1ShaderState::GLES1ShaderState() = default;
GLES1ShaderState::~GLES1ShaderState() = default;
GLES1ShaderState::GLES1ShaderState(const GLES1ShaderState &other)
{ … }
bool operator==(const GLES1ShaderState &a, const GLES1ShaderState &b)
{ … }
bool operator!=(const GLES1ShaderState &a, const GLES1ShaderState &b)
{ … }
size_t GLES1ShaderState::hash() const
{ … }
GLES1Renderer::GLES1Renderer() : … { … }
void GLES1Renderer::onDestroy(Context *context, State *state)
{ … }
GLES1Renderer::~GLES1Renderer() = default;
angle::Result GLES1Renderer::prepareForDraw(PrimitiveMode mode,
Context *context,
State *glState,
GLES1State *gles1State)
{ … }
int GLES1Renderer::VertexArrayIndex(ClientVertexArrayType type, const GLES1State &gles1)
{ … }
ClientVertexArrayType GLES1Renderer::VertexArrayType(int attribIndex)
{ … }
int GLES1Renderer::TexCoordArrayIndex(unsigned int unit)
{ … }
void GLES1Renderer::drawTexture(Context *context,
State *glState,
GLES1State *gles1State,
float x,
float y,
float z,
float width,
float height)
{ … }
Shader *GLES1Renderer::getShader(ShaderProgramID handle) const
{ … }
Program *GLES1Renderer::getProgram(ShaderProgramID handle) const
{ … }
angle::Result GLES1Renderer::compileShader(Context *context,
ShaderType shaderType,
const char *src,
ShaderProgramID *shaderOut)
{ … }
angle::Result GLES1Renderer::linkProgram(Context *context,
State *glState,
ShaderProgramID vertexShader,
ShaderProgramID fragmentShader,
const angle::HashMap<GLint, std::string> &attribLocs,
ShaderProgramID *programOut)
{ … }
const char *GLES1Renderer::getShaderBool(GLES1StateEnables state)
{ … }
void GLES1Renderer::addShaderDefine(std::stringstream &outStream,
GLES1StateEnables state,
const char *enableString)
{ … }
void GLES1Renderer::addShaderUint(std::stringstream &outStream, const char *name, uint16_t value)
{ … }
void GLES1Renderer::addShaderUintTexArray(std::stringstream &outStream,
const char *texString,
GLES1ShaderState::UintTexArray &texState)
{ … }
void GLES1Renderer::addShaderBoolTexArray(std::stringstream &outStream,
const char *name,
GLES1ShaderState::BoolTexArray &value)
{ … }
void GLES1Renderer::addShaderBoolLightArray(std::stringstream &outStream,
const char *name,
GLES1ShaderState::BoolLightArray &value)
{ … }
void GLES1Renderer::addShaderBoolClipPlaneArray(std::stringstream &outStream,
const char *name,
GLES1ShaderState::BoolClipPlaneArray &value)
{ … }
void GLES1Renderer::addVertexShaderDefs(std::stringstream &outStream)
{ … }
void GLES1Renderer::addFragmentShaderDefs(std::stringstream &outStream)
{ … }
angle::Result GLES1Renderer::initializeRendererProgram(Context *context,
State *glState,
GLES1State *gles1State)
{ … }
void GLES1Renderer::setUniform1i(Context *context,
ProgramExecutable *executable,
UniformLocation location,
GLint value)
{ … }
void GLES1Renderer::setUniform1ui(ProgramExecutable *executable,
UniformLocation location,
GLuint value)
{ … }
void GLES1Renderer::setUniform1iv(Context *context,
ProgramExecutable *executable,
UniformLocation location,
GLint count,
const GLint *value)
{ … }
void GLES1Renderer::setUniformMatrix4fv(ProgramExecutable *executable,
UniformLocation location,
GLint count,
GLboolean transpose,
const GLfloat *value)
{ … }
void GLES1Renderer::setUniform4fv(ProgramExecutable *executable,
UniformLocation location,
GLint count,
const GLfloat *value)
{ … }
void GLES1Renderer::setUniform3fv(ProgramExecutable *executable,
UniformLocation location,
GLint count,
const GLfloat *value)
{ … }
void GLES1Renderer::setUniform2fv(ProgramExecutable *executable,
UniformLocation location,
GLint count,
const GLfloat *value)
{ … }
void GLES1Renderer::setUniform1f(ProgramExecutable *executable,
UniformLocation location,
GLfloat value)
{ … }
void GLES1Renderer::setUniform1fv(ProgramExecutable *executable,
UniformLocation location,
GLint count,
const GLfloat *value)
{ … }
void GLES1Renderer::setAttributesEnabled(Context *context,
State *glState,
GLES1State *gles1State,
AttributesMask mask)
{ … }
}