Fix negative CompressedTexImage2D tests am: 9de005f035 am: 958ab8f9cb am: b42217f8ce
[platform/upstream/VK-GL-CTS.git] / framework / platform / nullws / tcuNullWSPlatform.cpp
1 /*-------------------------------------------------------------------------
2  * OpenGL Conformance Test Suite
3  * -----------------------------
4  *
5  * Copyright (c) 2016 Google Inc.
6  * Copyright (c) 2016 The Khronos Group Inc.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  *//*!
21  * \file
22  * \brief
23  *//*--------------------------------------------------------------------*/
24
25 #include "tcuNullWSPlatform.hpp"
26 #include "eglwEnums.hpp"
27 #include "eglwLibrary.hpp"
28 #include "egluGLContextFactory.hpp"
29
30 namespace tcu
31 {
32 namespace nullws
33 {
34
35 class Window: public eglu::NativeWindow
36 {
37 public:
38         static const Capability CAPABILITIES = CAPABILITY_CREATE_SURFACE_LEGACY;
39
40         Window(eglu::NativeDisplay* nativeDisplay, const eglu::WindowParams& params)
41                 : NativeWindow(CAPABILITIES)
42         {
43         }
44
45         eglw::EGLNativeWindowType getLegacyNative ()
46         {
47                 return DE_NULL;
48         }
49 };
50
51 class WindowFactory: public eglu::NativeWindowFactory
52 {
53 public:
54         WindowFactory()
55                 : NativeWindowFactory("nullws", "NullWS Window", Window::CAPABILITIES)
56         {
57         }
58
59         eglu::NativeWindow* createWindow(eglu::NativeDisplay* nativeDisplay, const eglu::WindowParams& params) const
60         {
61                 return new Window(nativeDisplay, params);
62         }
63 };
64
65 class Pixmap: public eglu::NativePixmap
66 {
67 public:
68         static const Capability CAPABILITIES = CAPABILITY_CREATE_SURFACE_LEGACY;
69
70         Pixmap()
71                 : NativePixmap(CAPABILITIES)
72         {
73         }
74
75         eglw::EGLNativePixmapType getLegacyNative ()
76         {
77                 return DE_NULL;
78         }
79 };
80
81 class PixmapFactory: public eglu::NativePixmapFactory
82 {
83 public:
84         PixmapFactory()
85                 : NativePixmapFactory("nullws", "NullWS Pixmap", Pixmap::CAPABILITIES)
86         {
87         }
88
89         eglu::NativePixmap* createPixmap (eglu::NativeDisplay*, int, int) const
90         {
91                 return new Pixmap();
92         }
93 };
94
95 class Display: public eglu::NativeDisplay
96 {
97 public:
98         static const Capability CAPABILITIES = CAPABILITY_GET_DISPLAY_LEGACY;
99
100         Display()
101                 : eglu::NativeDisplay(CAPABILITIES)
102         {
103         }
104
105         eglw::EGLNativeDisplayType getLegacyNative()
106         {
107                 return EGL_DEFAULT_DISPLAY;
108         }
109
110         const eglw::Library& getLibrary() const
111         {
112                 return m_library;
113         }
114
115 private:
116         eglw::DefaultLibrary m_library;
117 };
118
119
120 class DisplayFactory: public eglu::NativeDisplayFactory
121 {
122 public:
123         DisplayFactory()
124                 : eglu::NativeDisplayFactory ("nullws", "NullWS Display", Display::CAPABILITIES)
125         {
126                 m_nativeWindowRegistry.registerFactory(new WindowFactory());
127                 m_nativePixmapRegistry.registerFactory(new PixmapFactory());
128         }
129
130         eglu::NativeDisplay* createDisplay (const eglw::EGLAttrib* attribList = DE_NULL) const
131         {
132                 return new Display();
133         }
134 };
135
136 Platform::Platform ()
137 {
138         m_nativeDisplayFactoryRegistry.registerFactory(new DisplayFactory());
139         m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry));
140 }
141
142 Platform::~Platform ()
143 {
144 }
145
146 } // nullws
147 } // tcu
148
149 tcu::Platform* createPlatform ()
150 {
151         return new tcu::nullws::Platform();
152 }