xref: /aosp_15_r20/external/deqp/external/openglcts/modules/common/glcContext.hpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1 #ifndef _GLCCONTEXT_HPP
2 #define _GLCCONTEXT_HPP
3 /*-------------------------------------------------------------------------
4  * OpenGL Conformance Test Suite
5  * -----------------------------
6  *
7  * Copyright (c) 2016 Google Inc.
8  * Copyright (c) 2016 The Khronos Group Inc.
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 OpenGL context.
25  */ /*-------------------------------------------------------------------*/
26 
27 #include "gluRenderConfig.hpp"
28 #include "gluRenderContext.hpp"
29 #include "tcuDefs.hpp"
30 #include "tcuTestContext.hpp"
31 
32 namespace glu
33 {
34 class RenderContext;
35 class ContextInfo;
36 } // namespace glu
37 
38 namespace tcu
39 {
40 class RenderTarget;
41 }
42 
43 namespace deqp
44 {
45 
46 class Context
47 {
48 public:
49     Context(tcu::TestContext &testCtx, glu::ContextType contextType = glu::ContextType());
50     ~Context(void);
51 
getTestContext(void)52     tcu::TestContext &getTestContext(void)
53     {
54         return m_testCtx;
55     }
56 
getRenderContext(void)57     glu::RenderContext &getRenderContext(void)
58     {
59         return *m_renderCtx;
60     }
61 
setRenderContext(glu::RenderContext * renderCtx)62     void setRenderContext(glu::RenderContext *renderCtx)
63     {
64         m_renderCtx = renderCtx;
65     }
66 
getContextInfo(void) const67     const glu::ContextInfo &getContextInfo(void) const
68     {
69         return *m_contextInfo;
70     }
71 
72     const tcu::RenderTarget &getRenderTarget(void) const;
73 
74 private:
75     Context(const Context &other);
76     Context &operator=(const Context &other);
77 
78     void createRenderContext(glu::ContextType &contextType, glu::ContextFlags ctxFlags = (glu::ContextFlags)0);
79     void destroyRenderContext(void);
80 
81     tcu::TestContext &m_testCtx;
82     glu::RenderContext *m_renderCtx;
83     glu::ContextInfo *m_contextInfo;
84     glu::ContextType m_contextType;
85 };
86 
87 } // namespace deqp
88 
89 #endif // _GLCCONTEXT_HPP
90