1/*-------------------------------------------------------------------------
2 * drawElements Quality Program Tester Core
3 * ----------------------------------------
4 *
5 * Copyright 2014 The Android Open Source Project
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 *      http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 *//*!
20 * \file
21 * \brief EGL unique resources
22 *//*--------------------------------------------------------------------*/
23
24#include "egluUnique.hpp"
25
26#include "tcuEgl.hpp"
27
28namespace eglu
29{
30
31UniqueSurface::UniqueSurface (EGLDisplay display, EGLSurface surface)
32	: m_display	(display)
33	, m_surface	(surface)
34{
35}
36
37UniqueSurface::~UniqueSurface (void)
38{
39	if (m_surface != EGL_NO_SURFACE)
40		TCU_CHECK_EGL_CALL(eglDestroySurface(m_display, m_surface));
41}
42
43UniqueContext::UniqueContext (EGLDisplay display, EGLContext context)
44	: m_display	(display)
45	, m_context	(context)
46{
47}
48
49UniqueContext::~UniqueContext (void)
50{
51	if (m_context != EGL_NO_CONTEXT)
52		TCU_CHECK_EGL_CALL(eglDestroyContext(m_display, m_context));
53}
54
55ScopedCurrentContext::ScopedCurrentContext (EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context)
56	: m_display (display)
57{
58	EGLU_CHECK_CALL(eglMakeCurrent(display, draw, read, context));
59}
60
61ScopedCurrentContext::~ScopedCurrentContext (void)
62{
63	EGLU_CHECK_CALL(eglMakeCurrent(m_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT));
64}
65
66} // eglu
67