• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef _TCUOHOSROSENNATIVECONTEXT_HPP
16 #define _TCUOHOSROSENNATIVECONTEXT_HPP
17 
18 #include "egluGLContextFactory.hpp"
19 #include "eglwLibrary.hpp"
20 #include "eglwFunctions.hpp"
21 #include "eglwEnums.hpp"
22 #include "deUniquePtr.hpp"
23 #include "glwFunctions.hpp"
24 #include "tcuRenderTarget.hpp"
25 
26 #include "display/tcuOhosNativeDisplay.hpp"
27 
28 namespace tcu
29 {
30 namespace OHOS_ROSEN
31 {
32 namespace egl
33 {
34 
35 using std::string;
36 using de::MovePtr;
37 using de::UniquePtr;
38 using glu::ContextFactory;
39 using glu::RenderContext;
40 using eglu::GLContextFactory;
41 using eglu::NativeDisplay;
42 using eglu::NativeDisplayFactory;
43 using eglu::NativeWindow;
44 using eglu::NativeWindowFactory;
45 using eglu::NativePixmap;
46 using eglu::NativePixmapFactory;
47 using eglu::WindowParams;
48 using tcu::TextureLevel;
49 
50 class OhosRendContext : public RenderContext
51 {
52 public:
53     OhosRendContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine);
54     virtual ~OhosRendContext(void);
55 
getType(void) const56     glu::ContextType getType(void) const    { return m_contextType; }
getFunctions(void) const57     const glw::Functions&        getFunctions    (void) const    { return m_glFunctions; }
getRenderTarget(void) const58     const tcu::RenderTarget&    getRenderTarget    (void) const { return m_renderTarget; }
59     void postIterate    (void);
60 
getProcAddress(const char * name) const61     virtual glw::GenericFuncType    getProcAddress    (const char* name) const { return m_egl.getProcAddress(name); }
62 private:
63     const eglw::DefaultLibrary      m_egl;
64     const glu::ContextType        m_contextType;
65     glw::Functions            m_glFunctions;
66     tcu::RenderTarget        m_renderTarget;
67 };
68 
69 } // egl
70 } // OHOS
71 } // tcu
72 #endif // _TCUOHOSROSENNATIVECONTEXT_HPP