1 #ifndef _EGLUUNIQUE_HPP
2 #define _EGLUUNIQUE_HPP
3 /*-------------------------------------------------------------------------
4 * drawElements Quality Program Tester Core
5 * ----------------------------------------
7 * Copyright 2014 The Android Open Source Project
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
23 * \brief EGL unique resources
24 *//*--------------------------------------------------------------------*/
26 #include "egluDefs.hpp"
27 #include "egluHeaderWrapper.hpp"
28 #include "egluExtensions.hpp"
36 UniqueSurface (EGLDisplay display, EGLSurface surface);
37 ~UniqueSurface (void);
39 EGLSurface operator* (void) { return m_surface; }
40 operator bool (void) const { return m_surface != EGL_NO_SURFACE; }
47 UniqueSurface& operator= (const UniqueSurface&);
48 UniqueSurface (const UniqueSurface&);
54 UniqueContext (EGLDisplay display, EGLContext context);
55 ~UniqueContext (void);
57 EGLContext operator* (void) { return m_context; }
58 operator bool (void) const { return m_context != EGL_NO_CONTEXT; }
65 UniqueContext operator= (const UniqueContext&);
66 UniqueContext (const UniqueContext&);
69 class ScopedCurrentContext
72 ScopedCurrentContext (EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context);
73 ~ScopedCurrentContext (void);
82 UniqueImage (EGLDisplay display, EGLImageKHR image, const ImageFunctions& funcs);
85 EGLImageKHR operator* (void) { return m_image; }
86 operator bool (void) const { return m_image != EGL_NO_IMAGE_KHR; }
91 const ImageFunctions& m_funcs;
94 UniqueImage operator= (const UniqueImage&);
95 UniqueImage (const UniqueImage&);
100 #endif // _EGLUUNIQUE_HPP