blob: e2709e90e0e08eb5dceb4c002768aba57ee73dca [file] [log] [blame]
Geoff Langff5b2d52016-09-07 11:32:23 -04001//
2// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// queryutils.h: Utilities for querying values from GL objects
8
9#ifndef LIBANGLE_QUERYUTILS_H_
10#define LIBANGLE_QUERYUTILS_H_
11
12#include "angle_gl.h"
13#include "common/angleutils.h"
14
15namespace gl
16{
17class Buffer;
18class Framebuffer;
19class Program;
Geoff Lang740d9022016-10-07 11:20:52 -040020class Renderbuffer;
Geoff Langc1984ed2016-10-07 12:41:00 -040021class Sampler;
Geoff Langd7d0ed32016-10-07 11:33:51 -040022class Shader;
Geoff Langc1984ed2016-10-07 12:41:00 -040023class Texture;
Geoff Lang0b031062016-10-13 14:30:04 -040024struct VertexAttribute;
25struct VertexAttribCurrentValueData;
Geoff Langff5b2d52016-09-07 11:32:23 -040026
27void QueryFramebufferAttachmentParameteriv(const Framebuffer *framebuffer,
28 GLenum attachment,
29 GLenum pname,
30 GLint *params);
31void QueryBufferParameteriv(const Buffer *buffer, GLenum pname, GLint *params);
32void QueryProgramiv(const Program *program, GLenum pname, GLint *params);
Geoff Lang740d9022016-10-07 11:20:52 -040033void QueryRenderbufferiv(const Renderbuffer *renderbuffer, GLenum pname, GLint *params);
Geoff Langd7d0ed32016-10-07 11:33:51 -040034void QueryShaderiv(const Shader *shader, GLenum pname, GLint *params);
Geoff Langc1984ed2016-10-07 12:41:00 -040035void QueryTexParameterfv(const Texture *texture, GLenum pname, GLfloat *params);
36void QueryTexParameteriv(const Texture *texture, GLenum pname, GLint *params);
37void QuerySamplerParameterfv(const Sampler *sampler, GLenum pname, GLfloat *params);
38void QuerySamplerParameteriv(const Sampler *sampler, GLenum pname, GLint *params);
Geoff Lang0b031062016-10-13 14:30:04 -040039void QueryVertexAttribfv(const VertexAttribute &attrib,
40 const VertexAttribCurrentValueData &currentValueData,
41 GLenum pname,
42 GLfloat *params);
43void QueryVertexAttribiv(const VertexAttribute &attrib,
44 const VertexAttribCurrentValueData &currentValueData,
45 GLenum pname,
46 GLint *params);
47void QueryVertexAttribPointerv(const VertexAttribute &attrib, GLenum pname, GLvoid **pointer);
48void QueryVertexAttribIiv(const VertexAttribute &attrib,
49 const VertexAttribCurrentValueData &currentValueData,
50 GLenum pname,
51 GLint *params);
52void QueryVertexAttribIuiv(const VertexAttribute &attrib,
53 const VertexAttribCurrentValueData &currentValueData,
54 GLenum pname,
55 GLuint *params);
Geoff Langc1984ed2016-10-07 12:41:00 -040056
57void SetTexParameterf(Texture *texture, GLenum pname, GLfloat param);
58void SetTexParameterfv(Texture *texture, GLenum pname, const GLfloat *params);
59void SetTexParameteri(Texture *texture, GLenum pname, GLint param);
60void SetTexParameteriv(Texture *texture, GLenum pname, const GLint *params);
61
62void SetSamplerParameterf(Sampler *sampler, GLenum pname, GLfloat param);
63void SetSamplerParameterfv(Sampler *sampler, GLenum pname, const GLfloat *params);
64void SetSamplerParameteri(Sampler *sampler, GLenum pname, GLint param);
65void SetSamplerParameteriv(Sampler *sampler, GLenum pname, const GLint *params);
Geoff Langff5b2d52016-09-07 11:32:23 -040066}
67
68#endif // LIBANGLE_QUERYUTILS_H_