1 #ifndef _ESEXTCDISJOINTTIMERQUERYBASE_HPP
2 #define _ESEXTCDISJOINTTIMERQUERYBASE_HPP
3 /*-------------------------------------------------------------------------
4  * OpenGL Conformance Test Suite
5  * -----------------------------
6  *
7  * Copyright (c) 2021 The Khronos Group Inc.
8  * Copyright (c) 2021 Google LLC
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *      http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */ /*!
23  * \file
24  * \brief
25  */ /*-------------------------------------------------------------------*/
26 
27 /*!
28  * \file  esextcDisjointTimerQueryBase.hpp
29  * \brief Base class for timer query tests
30  */ /*-------------------------------------------------------------------*/
31 
32 #include "../esextcTestCaseBase.hpp"
33 #include "glw.h"
34 
35 namespace glcts
36 {
37 
38 class DisjointTimerQueryBase : public TestCaseBase
39 {
40 public:
41     DisjointTimerQueryBase(Context &context, const ExtParameters &extParams, const char *name, const char *description);
42 
~DisjointTimerQueryBase()43     virtual ~DisjointTimerQueryBase()
44     {
45     }
46 
47 protected:
48     typedef void (*glGenQueriesEXTFunc)(GLsizei n, GLuint *ids);
49     typedef void (*glDeleteQueriesEXTFunc)(GLsizei n, const GLuint *ids);
50     typedef GLboolean (*glIsQueryEXTFunc)(GLuint id);
51     typedef void (*glBeginQueryEXTFunc)(GLenum target, GLuint id);
52     typedef void (*glEndQueryEXTFunc)(GLenum target);
53     typedef void (*glQueryCounterEXTFunc)(GLuint id, GLenum target);
54     typedef void (*glGetQueryivEXTFunc)(GLenum target, GLenum pname, GLint *params);
55     typedef void (*glGetQueryObjectivEXTFunc)(GLuint id, GLenum pname, GLint *params);
56     typedef void (*glGetQueryObjectuivEXTFunc)(GLuint id, GLenum pname, GLuint *params);
57     typedef void (*glGetQueryObjecti64vEXTFunc)(GLuint id, GLenum pname, GLint64 *params);
58     typedef void (*glGetQueryObjectui64vEXTFunc)(GLuint id, GLenum pname, GLuint64 *params);
59     typedef void (*glGetInteger64vEXTFunc)(GLenum pname, GLint64 *data);
60 
61     glGenQueriesEXTFunc glGenQueriesEXT;
62     glDeleteQueriesEXTFunc glDeleteQueriesEXT;
63     glIsQueryEXTFunc glIsQueryEXT;
64     glBeginQueryEXTFunc glBeginQueryEXT;
65     glEndQueryEXTFunc glEndQueryEXT;
66     glQueryCounterEXTFunc glQueryCounterEXT;
67     glGetQueryivEXTFunc glGetQueryivEXT;
68     glGetQueryObjectivEXTFunc glGetQueryObjectivEXT;
69     glGetQueryObjectuivEXTFunc glGetQueryObjectuivEXT;
70     glGetQueryObjecti64vEXTFunc glGetQueryObjecti64vEXT;
71     glGetQueryObjectui64vEXTFunc glGetQueryObjectui64vEXT;
72     glGetInteger64vEXTFunc glGetInteger64vEXT;
73 };
74 
75 } // namespace glcts
76 
77 #endif // _ESEXTCDISJOINTTIMERQUERYBASE_HPP
78