gfx/angle/src/libEGL/main.h

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:30ce80ce1f02
1 //
2 // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6
7 // main.h: Management of thread-local data.
8
9 #ifndef LIBEGL_MAIN_H_
10 #define LIBEGL_MAIN_H_
11
12 #define EGLAPI
13 #include <EGL/egl.h>
14 #include <EGL/eglext.h>
15
16 namespace egl
17 {
18 struct Current
19 {
20 EGLint error;
21 EGLenum API;
22 EGLDisplay display;
23 EGLSurface drawSurface;
24 EGLSurface readSurface;
25 };
26
27 void setCurrentError(EGLint error);
28 EGLint getCurrentError();
29
30 void setCurrentAPI(EGLenum API);
31 EGLenum getCurrentAPI();
32
33 void setCurrentDisplay(EGLDisplay dpy);
34 EGLDisplay getCurrentDisplay();
35
36 void setCurrentDrawSurface(EGLSurface surface);
37 EGLSurface getCurrentDrawSurface();
38
39 void setCurrentReadSurface(EGLSurface surface);
40 EGLSurface getCurrentReadSurface();
41
42 void error(EGLint errorCode);
43
44 template<class T>
45 const T &error(EGLint errorCode, const T &returnValue)
46 {
47 error(errorCode);
48
49 return returnValue;
50 }
51
52 template<class T>
53 const T &success(const T &returnValue)
54 {
55 egl::setCurrentError(EGL_SUCCESS);
56
57 return returnValue;
58 }
59
60 }
61
62 #endif // LIBEGL_MAIN_H_

mercurial