blob: e79c17b8c3d8b7878b489f1fbfcda8b5951bfffc [file] [log] [blame]
//
// Copyright 2019 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.
//
// capture_gles31_params.cpp:
// Pointer parameter capture functions for the OpenGL ES 3.1 entry points.
#include "libANGLE/capture/capture_gles_3_1_autogen.h"
using namespace angle;
namespace gl
{
void CaptureCreateShaderProgramv_strings(const State &glState,
bool isCallValid,
ShaderType typePacked,
GLsizei count,
const GLchar *const *strings,
ParamCapture *paramCapture)
{
CaptureShaderStrings(count, strings, nullptr, paramCapture);
}
void CaptureDeleteProgramPipelines_pipelinesPacked(const State &glState,
bool isCallValid,
GLsizei n,
const ProgramPipelineID *pipelines,
ParamCapture *paramCapture)
{
CaptureArray(pipelines, n, paramCapture);
}
void CaptureDrawArraysIndirect_indirect(const State &glState,
bool isCallValid,
PrimitiveMode modePacked,
const void *indirect,
ParamCapture *paramCapture)
{
// DrawArraysIndirect requires that all data sourced for the command,
// including the DrawArraysIndirectCommand structure, be in buffer objects,
// and may not be called when the default vertex array object is bound.
// Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
}
void CaptureDrawElementsIndirect_indirect(const State &glState,
bool isCallValid,
PrimitiveMode modePacked,
DrawElementsType typePacked,
const void *indirect,
ParamCapture *paramCapture)
{
// DrawElementsIndirect requires that all data sourced for the command,
// including the DrawElementsIndirectCommand structure, be in buffer objects,
// and may not be called when the default vertex array object is bound
// Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
}
void CaptureGenProgramPipelines_pipelinesPacked(const State &glState,
bool isCallValid,
GLsizei n,
ProgramPipelineID *pipelines,
ParamCapture *paramCapture)
{
CaptureGenHandles(n, pipelines, paramCapture);
}
void CaptureGetBooleani_v_data(const State &glState,
bool isCallValid,
GLenum target,
GLuint index,
GLboolean *data,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetFramebufferParameteriv_params(const State &glState,
bool isCallValid,
GLenum target,
GLenum pname,
GLint *params,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetMultisamplefv_val(const State &glState,
bool isCallValid,
GLenum pname,
GLuint index,
GLfloat *val,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramInterfaceiv_params(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLenum pname,
GLint *params,
ParamCapture *paramCapture)
{
CaptureMemory(params, sizeof(GLint), paramCapture);
}
void CaptureGetProgramPipelineInfoLog_length(const State &glState,
bool isCallValid,
ProgramPipelineID pipeline,
GLsizei bufSize,
GLsizei *length,
GLchar *infoLog,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramPipelineInfoLog_infoLog(const State &glState,
bool isCallValid,
ProgramPipelineID pipeline,
GLsizei bufSize,
GLsizei *length,
GLchar *infoLog,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramPipelineiv_params(const State &glState,
bool isCallValid,
ProgramPipelineID pipeline,
GLenum pname,
GLint *params,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramResourceIndex_name(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
const GLchar *name,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramResourceLocation_name(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
const GLchar *name,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetProgramResourceName_length(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLchar *name,
ParamCapture *paramCapture)
{
paramCapture->readBufferSizeBytes = sizeof(GLsizei);
}
void CaptureGetProgramResourceName_name(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLuint index,
GLsizei bufSize,
GLsizei *length,
GLchar *name,
ParamCapture *paramCapture)
{
CaptureString(name, paramCapture);
}
void CaptureGetProgramResourceiv_props(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLuint index,
GLsizei propCount,
const GLenum *props,
GLsizei bufSize,
GLsizei *length,
GLint *params,
ParamCapture *paramCapture)
{
CaptureMemory(props, sizeof(GLenum) * propCount, paramCapture);
}
void CaptureGetProgramResourceiv_length(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLuint index,
GLsizei propCount,
const GLenum *props,
GLsizei bufSize,
GLsizei *length,
GLint *params,
ParamCapture *paramCapture)
{
paramCapture->readBufferSizeBytes = sizeof(GLsizei);
}
void CaptureGetProgramResourceiv_params(const State &glState,
bool isCallValid,
ShaderProgramID program,
GLenum programInterface,
GLuint index,
GLsizei propCount,
const GLenum *props,
GLsizei bufSize,
GLsizei *length,
GLint *params,
ParamCapture *paramCapture)
{
// See QueryProgramResourceiv for details on how these are handled
for (int i = 0; i < propCount; ++i)
{
if (props[i] == GL_ACTIVE_VARIABLES)
{
// This appears to be the only property that isn't a single integer
UNIMPLEMENTED();
return;
}
}
CaptureMemory(props, sizeof(GLint) * propCount, paramCapture);
}
void CaptureGetTexLevelParameterfv_params(const State &glState,
bool isCallValid,
TextureTarget targetPacked,
GLint level,
GLenum pname,
GLfloat *params,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureGetTexLevelParameteriv_params(const State &glState,
bool isCallValid,
TextureTarget targetPacked,
GLint level,
GLenum pname,
GLint *params,
ParamCapture *paramCapture)
{
UNIMPLEMENTED();
}
void CaptureProgramUniform1fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * count, paramCapture);
}
void CaptureProgramUniform1iv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLint) * count, paramCapture);
}
void CaptureProgramUniform1uiv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLuint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLuint) * count, paramCapture);
}
void CaptureProgramUniform2fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 2 * count, paramCapture);
}
void CaptureProgramUniform2iv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLint) * 2 * count, paramCapture);
}
void CaptureProgramUniform2uiv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLuint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLuint) * 2 * count, paramCapture);
}
void CaptureProgramUniform3fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 3 * count, paramCapture);
}
void CaptureProgramUniform3iv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLint) * 3 * count, paramCapture);
}
void CaptureProgramUniform3uiv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLuint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLuint) * 3 * count, paramCapture);
}
void CaptureProgramUniform4fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 4 * count, paramCapture);
}
void CaptureProgramUniform4iv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLint) * 4 * count, paramCapture);
}
void CaptureProgramUniform4uiv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
const GLuint *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLuint) * 4 * count, paramCapture);
}
void CaptureProgramUniformMatrix2fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 2 * 2 * count, paramCapture);
}
void CaptureProgramUniformMatrix2x3fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 2 * 3 * count, paramCapture);
}
void CaptureProgramUniformMatrix2x4fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 2 * 4 * count, paramCapture);
}
void CaptureProgramUniformMatrix3fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 3 * 3 * count, paramCapture);
}
void CaptureProgramUniformMatrix3x2fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 3 * 2 * count, paramCapture);
}
void CaptureProgramUniformMatrix3x4fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 3 * 4 * count, paramCapture);
}
void CaptureProgramUniformMatrix4fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 4 * 4 * count, paramCapture);
}
void CaptureProgramUniformMatrix4x2fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 4 * 2 * count, paramCapture);
}
void CaptureProgramUniformMatrix4x3fv_value(const State &glState,
bool isCallValid,
ShaderProgramID program,
UniformLocation location,
GLsizei count,
GLboolean transpose,
const GLfloat *value,
ParamCapture *paramCapture)
{
CaptureMemory(value, sizeof(GLfloat) * 4 * 3 * count, paramCapture);
}
} // namespace gl