Commit b68a279c by Jamie Madill Committed by Commit Bot

Capture/Replay: Capture GetFloatv params.

Was used in the mip map ANGLE sample. Add a new helper function that we can use for multiple captures. Bug: angleproject:3611 Change-Id: I430ce0089df4ce81ba2ca2ad64c0c206b59397b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894144 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarTim Van Patten <timvp@google.com>
parent a576e0d4
...@@ -1215,6 +1215,21 @@ void CaptureString(const GLchar *str, ParamCapture *paramCapture) ...@@ -1215,6 +1215,21 @@ void CaptureString(const GLchar *str, ParamCapture *paramCapture)
CaptureMemory(str, strlen(str) + 1, paramCapture); CaptureMemory(str, strlen(str) + 1, paramCapture);
} }
void CaptureGetParameter(const gl::Context *context,
GLenum pname,
size_t typeSize,
ParamCapture *paramCapture)
{
GLenum nativeType;
unsigned int numParams;
if (!context->getQueryParameterInfo(pname, &nativeType, &numParams))
{
numParams = 1;
}
paramCapture->readBufferSizeBytes = typeSize * numParams;
}
void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture) void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture)
{ {
paramCapture->readBufferSizeBytes = sizeof(GLuint) * n; paramCapture->readBufferSizeBytes = sizeof(GLuint) * n;
......
...@@ -245,6 +245,13 @@ std::ostream &operator<<(std::ostream &os, const ParamCapture &capture); ...@@ -245,6 +245,13 @@ std::ostream &operator<<(std::ostream &os, const ParamCapture &capture);
// Pointer capture helpers. // Pointer capture helpers.
void CaptureMemory(const void *source, size_t size, ParamCapture *paramCapture); void CaptureMemory(const void *source, size_t size, ParamCapture *paramCapture);
void CaptureString(const GLchar *str, ParamCapture *paramCapture); void CaptureString(const GLchar *str, ParamCapture *paramCapture);
// For GetIntegerv, GetFloatv, etc.
void CaptureGetParameter(const gl::Context *context,
GLenum pname,
size_t typeSize,
ParamCapture *paramCapture);
void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture); void CaptureGenHandlesImpl(GLsizei n, GLuint *handles, ParamCapture *paramCapture);
template <typename T> template <typename T>
......
...@@ -335,10 +335,7 @@ void CaptureGetBooleanv_data(const Context *context, ...@@ -335,10 +335,7 @@ void CaptureGetBooleanv_data(const Context *context,
GLboolean *data, GLboolean *data,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
GLenum type; CaptureGetParameter(context, pname, sizeof(GLboolean), paramCapture);
unsigned int numParams;
context->getQueryParameterInfo(pname, &type, &numParams);
paramCapture->readBufferSizeBytes = sizeof(GLboolean) * numParams;
} }
void CaptureGetBufferParameteriv_params(const Context *context, void CaptureGetBufferParameteriv_params(const Context *context,
...@@ -357,7 +354,7 @@ void CaptureGetFloatv_data(const Context *context, ...@@ -357,7 +354,7 @@ void CaptureGetFloatv_data(const Context *context,
GLfloat *data, GLfloat *data,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
UNIMPLEMENTED(); CaptureGetParameter(context, pname, sizeof(GLfloat), paramCapture);
} }
void CaptureGetFramebufferAttachmentParameteriv_params(const Context *context, void CaptureGetFramebufferAttachmentParameteriv_params(const Context *context,
...@@ -378,10 +375,7 @@ void CaptureGetIntegerv_data(const Context *context, ...@@ -378,10 +375,7 @@ void CaptureGetIntegerv_data(const Context *context,
GLint *data, GLint *data,
ParamCapture *paramCapture) ParamCapture *paramCapture)
{ {
GLenum type; CaptureGetParameter(context, pname, sizeof(GLint), paramCapture);
unsigned int numParams;
context->getQueryParameterInfo(pname, &type, &numParams);
paramCapture->readBufferSizeBytes = sizeof(GLint) * numParams;
} }
void CaptureGetProgramInfoLog_length(const Context *context, void CaptureGetProgramInfoLog_length(const Context *context,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment