author | Pat Downey <patd@symbian.org> |
Wed, 02 Jun 2010 13:14:22 +0100 | |
changeset 89 | 509acdbd8bdd |
parent 43 | 7579f232bae7 |
child 104 | 2ae553ab1feb |
child 216 | b87045f2f5d7 |
permissions | -rw-r--r-- |
43
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1 |
/*------------------------------------------------------------------------ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
3 |
* EGL 1.3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
4 |
* ------- |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
5 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
6 |
* Copyright (c) 2007 The Khronos Group Inc. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
7 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
8 |
* Permission is hereby granted, free of charge, to any person obtaining a |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
9 |
* copy of this software and /or associated documentation files |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
10 |
* (the "Materials "), to deal in the Materials without restriction, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
11 |
* including without limitation the rights to use, copy, modify, merge, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
12 |
* publish, distribute, sublicense, and/or sell copies of the Materials, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
13 |
* and to permit persons to whom the Materials are furnished to do so, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
14 |
* subject to the following conditions: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
15 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
16 |
* The above copyright notice and this permission notice shall be included |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
17 |
* in all copies or substantial portions of the Materials. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
18 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
19 |
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
20 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
21 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
22 |
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
23 |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
24 |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
25 |
* THE USE OR OTHER DEALINGS IN THE MATERIALS. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
26 |
* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
27 |
*//** |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
28 |
* \file |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
29 |
* \brief Simple implementation of EGL 1.3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
30 |
* \note caveats: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
31 |
- always renders into the backbuffer and blits it to window (no single buffered rendering) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
32 |
- no native Windows or Mac OS X pixmap support |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
33 |
- no power management events |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
34 |
- no support for swap interval |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
35 |
* \todo what happens in egl functions when eglTerminate has been called but the context and surface are still in use? |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
36 |
* \todo OSDeinitMutex should be called in case getEGL fails. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
37 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
38 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
39 |
#include "egl.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
40 |
#include "openvg.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
41 |
#include "riArray.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
42 |
#include "riMath.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
43 |
#include "riContext.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
44 |
#include "riImage.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
45 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
46 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
47 |
#include "eglinternal.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
48 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
49 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
50 |
#ifdef BUILD_WITH_PRIVATE_OPENVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
51 |
#include "openvginternal.h" |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
52 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
53 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
54 |
//============================================================================================== |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
55 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
56 |
namespace OpenVGRI |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
57 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
58 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
59 |
void* OSGetCurrentThreadID(void); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
60 |
void OSAcquireMutex(void); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
61 |
void OSReleaseMutex(void); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
62 |
void OSDeinitMutex(void); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
63 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
64 |
EGLDisplay OSGetDisplay(EGLNativeDisplayType display_id); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
65 |
void* OSCreateWindowContext(EGLNativeWindowType window); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
66 |
void OSDestroyWindowContext(void* context); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
67 |
bool OSIsWindow(const void* context); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
68 |
void OSGetWindowSize(const void* context, int& width, int& height); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
69 |
void OSBlitToWindow(void* context, const Drawable* drawable); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
70 |
EGLBoolean OSGetNativePixmapInfo(NativePixmapType pixmap, int* width, int* height, int* stride, VGImageFormat* format, int** data); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
71 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
72 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
73 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
74 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
75 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
76 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
77 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
78 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
79 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
80 |
class RIEGLConfig |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
81 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
82 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
83 |
RIEGLConfig() : m_desc(Color::formatToDescriptor(VG_sRGBA_8888)), m_configID(0) {} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
84 |
~RIEGLConfig() {} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
85 |
void set(int r, int g, int b, int a, int l, int bpp, int samples, int maskBits, int ID) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
86 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
87 |
m_desc.redBits = r; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
88 |
m_desc.greenBits = g; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
89 |
m_desc.blueBits = b; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
90 |
m_desc.alphaBits = a; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
91 |
m_desc.luminanceBits = l; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
92 |
m_desc.alphaShift = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
93 |
m_desc.luminanceShift = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
94 |
m_desc.blueShift = b ? a : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
95 |
m_desc.greenShift = g ? a + b : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
96 |
m_desc.redShift = r ? a + b + g : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
97 |
m_desc.format = (VGImageFormat)-1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
98 |
m_desc.internalFormat = l ? Color::sLA : Color::sRGBA; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
99 |
m_desc.bitsPerPixel = bpp; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
100 |
RI_ASSERT(Color::isValidDescriptor(m_desc)); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
101 |
m_samples = samples; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
102 |
m_maskBits = maskBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
103 |
m_configID = ID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
104 |
m_config = (EGLConfig)ID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
105 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
106 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
107 |
Color::Descriptor configToDescriptor(bool sRGB, bool premultiplied) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
108 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
109 |
Color::Descriptor desc = m_desc; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
110 |
unsigned int f = m_desc.luminanceBits ? Color::LUMINANCE : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
111 |
f |= sRGB ? Color::NONLINEAR : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
112 |
f |= premultiplied ? Color::PREMULTIPLIED : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
113 |
desc.internalFormat = (Color::InternalFormat)f; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
114 |
return desc; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
115 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
116 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
117 |
//EGL RED SIZE bits of Red in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
118 |
//EGL GREEN SIZE bits of Green in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
119 |
//EGL BLUE SIZE bits of Blue in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
120 |
//EGL ALPHA SIZE bits of Alpha in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
121 |
//EGL LUMINANCE SIZE bits of Luminance in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
122 |
Color::Descriptor m_desc; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
123 |
int m_samples; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
124 |
int m_maskBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
125 |
EGLint m_configID; //EGL CONFIG ID unique EGLConfig identifier |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
126 |
EGLConfig m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
127 |
//EGL BUFFER SIZE depth of the color buffer (sum of channel bits) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
128 |
//EGL ALPHA MASK SIZE number alpha mask bits (always 8) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
129 |
//EGL BIND TO TEXTURE RGB boolean True if bindable to RGB textures. (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
130 |
//EGL BIND TO TEXTURE RGBA boolean True if bindable to RGBA textures. (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
131 |
//EGL COLOR BUFFER TYPE enum color buffer type (EGL_RGB_BUFFER, EGL_LUMINANCE_BUFFER) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
132 |
//EGL CONFIG CAVEAT enum any caveats for the configuration (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
133 |
//EGL DEPTH SIZE integer bits of Z in the depth buffer (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
134 |
//EGL LEVEL integer frame buffer level (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
135 |
//EGL MAX PBUFFER WIDTH integer maximum width of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
136 |
//EGL MAX PBUFFER HEIGHT integer maximum height of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
137 |
//EGL MAX PBUFFER PIXELS integer maximum size of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
138 |
//EGL MAX SWAP INTERVAL integer maximum swap interval (always 1) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
139 |
//EGL MIN SWAP INTERVAL integer minimum swap interval (always 1) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
140 |
//EGL NATIVE RENDERABLE boolean EGL TRUE if native rendering APIs can render to surface (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
141 |
//EGL NATIVE VISUAL ID integer handle of corresponding native visual (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
142 |
//EGL NATIVE VISUAL TYPE integer native visual type of the associated visual (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
143 |
//EGL RENDERABLE TYPE bitmask which client rendering APIs are supported. (always EGL_OPENVG_BIT) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
144 |
//EGL SAMPLE BUFFERS integer number of multisample buffers (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
145 |
//EGL SAMPLES integer number of samples per pixel (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
146 |
//EGL STENCIL SIZE integer bits of Stencil in the stencil buffer (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
147 |
//EGL SURFACE TYPE bitmask which types of EGL surfaces are supported. (always EGL WINDOW BIT | EGL PIXMAP BIT | EGL PBUFFER BIT) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
148 |
//EGL TRANSPARENT TYPE enum type of transparency supported (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
149 |
//EGL TRANSPARENT RED VALUE integer transparent red value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
150 |
//EGL TRANSPARENT GREEN VALUE integer transparent green value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
151 |
//EGL TRANSPARENT BLUE VALUE integer transparent blue value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
152 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
153 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
154 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
155 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
156 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
157 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
158 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
159 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
160 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
161 |
class RIEGLContext |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
162 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
163 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
164 |
RIEGLContext(OpenVGRI::VGContext* vgctx, const EGLConfig config); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
165 |
~RIEGLContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
166 |
void addReference() { m_referenceCount++; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
167 |
int removeReference() { m_referenceCount--; RI_ASSERT(m_referenceCount >= 0); return m_referenceCount; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
168 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
169 |
VGContext* getVGContext() const { return m_vgContext; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
170 |
EGLConfig getConfig() const { return m_config; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
171 |
private: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
172 |
RIEGLContext(const RIEGLContext&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
173 |
RIEGLContext& operator=(const RIEGLContext&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
174 |
VGContext* m_vgContext; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
175 |
const EGLConfig m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
176 |
int m_referenceCount; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
177 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
178 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
179 |
RIEGLContext* CastToRIEGLContext(EGLContext aCtxId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
180 |
EGLContext CastFromRIEGLContext(RIEGLContext* aCtx); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
181 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
182 |
RIEGLContext::RIEGLContext(OpenVGRI::VGContext* vgctx, const EGLConfig config) : |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
183 |
m_vgContext(vgctx), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
184 |
m_config(config), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
185 |
m_referenceCount(0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
186 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
187 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
188 |
RIEGLContext::~RIEGLContext() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
189 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
190 |
RI_ASSERT(m_referenceCount == 0); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
191 |
RI_DELETE(m_vgContext); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
192 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
193 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
194 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
195 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
196 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
197 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
198 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
199 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
200 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
201 |
class RIEGLSurface |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
202 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
203 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
204 |
RIEGLSurface(void* OSWindowContext, const EGLConfig config, Drawable* drawable, bool largestPbuffer, int renderBuffer); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
205 |
~RIEGLSurface(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
206 |
void addReference() { m_referenceCount++; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
207 |
int removeReference() { m_referenceCount--; RI_ASSERT(m_referenceCount >= 0); return m_referenceCount; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
208 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
209 |
void* getOSWindowContext() const { return m_OSWindowContext; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
210 |
EGLConfig getConfig() const { return m_config; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
211 |
Drawable* getDrawable() const { return m_drawable; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
212 |
bool isLargestPbuffer() const { return m_largestPbuffer; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
213 |
int getRenderBuffer() const { return m_renderBuffer; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
214 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
215 |
private: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
216 |
RIEGLSurface(const RIEGLSurface&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
217 |
RIEGLSurface& operator=(const RIEGLSurface&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
218 |
void* m_OSWindowContext; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
219 |
const EGLConfig m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
220 |
Drawable* m_drawable; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
221 |
bool m_largestPbuffer; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
222 |
int m_renderBuffer; //EGL_BACK_BUFFER or EGL_SINGLE_BUFFER |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
223 |
int m_referenceCount; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
224 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
225 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
226 |
RIEGLSurface* CastToRIEGLSurface(EGLSurface aSurfaceId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
227 |
EGLSurface CastFromRIEGLSurface(RIEGLSurface* aSurface); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
228 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
229 |
RIEGLSurface::RIEGLSurface(void* OSWindowContext, const EGLConfig config, Drawable* drawable, bool largestPbuffer, int renderBuffer) : |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
230 |
m_OSWindowContext(OSWindowContext), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
231 |
m_config(config), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
232 |
m_drawable(drawable), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
233 |
m_largestPbuffer(largestPbuffer), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
234 |
m_renderBuffer(renderBuffer), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
235 |
m_referenceCount(0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
236 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
237 |
RI_ASSERT(m_renderBuffer == EGL_BACK_BUFFER); //only back buffer rendering is supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
238 |
m_drawable->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
239 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
240 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
241 |
RIEGLSurface::~RIEGLSurface() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
242 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
243 |
RI_ASSERT(m_referenceCount == 0); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
244 |
OSDestroyWindowContext(m_OSWindowContext); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
245 |
if(m_drawable) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
246 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
247 |
if(!m_drawable->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
248 |
RI_DELETE(m_drawable); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
249 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
250 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
251 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
252 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
253 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
254 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
255 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
256 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
257 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
258 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
259 |
#define EGL_NUMCONFIGS 60 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
260 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
261 |
class RIEGLDisplay |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
262 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
263 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
264 |
RIEGLDisplay(EGLDisplay id); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
265 |
~RIEGLDisplay(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
266 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
267 |
int getNumConfigs() const { return EGL_NUMCONFIGS; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
268 |
const RIEGLConfig& getConfigByIdx(int i) const { RI_ASSERT(i >= 0 && i < EGL_NUMCONFIGS); return m_configs[i]; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
269 |
const RIEGLConfig& getConfig(const EGLConfig config) const { for(int i=0;i<EGL_NUMCONFIGS;i++) { if(m_configs[i].m_config == config) return m_configs[i]; } RI_ASSERT(0); return m_configs[0]; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
270 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
271 |
EGLDisplay getID() const { return m_id; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
272 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
273 |
void addContext(RIEGLContext* ctx) { RI_ASSERT(ctx); m_contexts.push_back(ctx); } //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
274 |
void removeContext(RIEGLContext* ctx) { RI_ASSERT(ctx); bool res = m_contexts.remove(ctx); RI_ASSERT(res); RI_UNREF(res); } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
275 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
276 |
void addSurface(RIEGLSurface* srf) { RI_ASSERT(srf); m_surfaces.push_back(srf); } //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
277 |
void removeSurface(RIEGLSurface* srf) { RI_ASSERT(srf); bool res = m_surfaces.remove(srf); RI_ASSERT(res); RI_UNREF(res); } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
278 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
279 |
EGLBoolean contextExists(const EGLContext ctx) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
280 |
EGLBoolean surfaceExists(const EGLSurface srf) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
281 |
EGLBoolean configExists(const EGLConfig cfg) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
282 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
283 |
private: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
284 |
RIEGLDisplay(const RIEGLDisplay& t); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
285 |
RIEGLDisplay& operator=(const RIEGLDisplay&t); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
286 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
287 |
EGLDisplay m_id; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
288 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
289 |
Array<RIEGLContext*> m_contexts; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
290 |
Array<RIEGLSurface*> m_surfaces; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
291 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
292 |
RIEGLConfig m_configs[EGL_NUMCONFIGS]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
293 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
294 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
295 |
RIEGLDisplay::RIEGLDisplay(EGLDisplay id) : |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
296 |
m_id(id), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
297 |
m_contexts(), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
298 |
m_surfaces() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
299 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
300 |
RI_ASSERT(EGL_NUMCONFIGS == 60); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
301 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
302 |
//sorted by RGB/LUMINANCE (exact), larger total number of color bits (at least), buffer size (at least), config ID (exact) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
303 |
//NOTE: 16 bit configs need to be sorted on the fly if the request ignores some channels |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
304 |
//NOTE: config IDs start from 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
305 |
// R B G A L bpp samples maskBits ID |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
306 |
m_configs[0].set(8, 8, 8, 8, 0, 32, 1, 8, 1); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
307 |
m_configs[1].set(8, 8, 8, 0, 0, 32, 1, 8, 2); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
308 |
m_configs[2].set(5, 5, 5, 1, 0, 16, 1, 4, 3); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
309 |
m_configs[3].set(5, 6, 5, 0, 0, 16, 1, 4, 4); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
310 |
m_configs[4].set(4, 4, 4, 4, 0, 16, 1, 4, 5); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
311 |
m_configs[5].set(0, 0, 0, 8, 0, 8, 1, 8, 6); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
312 |
m_configs[6].set(0, 0, 0, 4, 0, 4, 1, 4, 7); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
313 |
m_configs[7].set(0, 0, 0, 1, 0, 1, 1, 1, 8); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
314 |
m_configs[8].set(0, 0, 0, 0, 8, 8, 1, 8, 9); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
315 |
m_configs[9].set(0, 0, 0, 0, 1, 1, 1, 1, 10); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
316 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
317 |
m_configs[10].set(8, 8, 8, 8, 0, 32, 4, 1, 11); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
318 |
m_configs[11].set(8, 8, 8, 0, 0, 32, 4, 1, 12); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
319 |
m_configs[12].set(5, 5, 5, 1, 0, 16, 4, 1, 13); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
320 |
m_configs[13].set(5, 6, 5, 0, 0, 16, 4, 1, 14); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
321 |
m_configs[14].set(4, 4, 4, 4, 0, 16, 4, 1, 15); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
322 |
m_configs[15].set(0, 0, 0, 8, 0, 8, 4, 1, 16); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
323 |
m_configs[16].set(0, 0, 0, 4, 0, 4, 4, 1, 17); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
324 |
m_configs[17].set(0, 0, 0, 1, 0, 1, 4, 1, 18); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
325 |
m_configs[18].set(0, 0, 0, 0, 8, 8, 4, 1, 19); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
326 |
m_configs[19].set(0, 0, 0, 0, 1, 1, 4, 1, 20); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
327 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
328 |
m_configs[20].set(8, 8, 8, 8, 0, 32, 32, 1, 21); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
329 |
m_configs[21].set(8, 8, 8, 0, 0, 32, 32, 1, 22); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
330 |
m_configs[22].set(5, 5, 5, 1, 0, 16, 32, 1, 23); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
331 |
m_configs[23].set(5, 6, 5, 0, 0, 16, 32, 1, 24); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
332 |
m_configs[24].set(4, 4, 4, 4, 0, 16, 32, 1, 25); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
333 |
m_configs[25].set(0, 0, 0, 8, 0, 8, 32, 1, 26); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
334 |
m_configs[26].set(0, 0, 0, 4, 0, 4, 32, 1, 27); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
335 |
m_configs[27].set(0, 0, 0, 1, 0, 1, 32, 1, 28); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
336 |
m_configs[28].set(0, 0, 0, 0, 8, 8, 32, 1, 29); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
337 |
m_configs[29].set(0, 0, 0, 0, 1, 1, 32, 1, 30); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
338 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
339 |
//configs without mask |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
340 |
m_configs[30].set(8, 8, 8, 8, 0, 32, 1, 0, 31); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
341 |
m_configs[31].set(8, 8, 8, 0, 0, 32, 1, 0, 32); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
342 |
m_configs[32].set(5, 5, 5, 1, 0, 16, 1, 0, 33); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
343 |
m_configs[33].set(5, 6, 5, 0, 0, 16, 1, 0, 34); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
344 |
m_configs[34].set(4, 4, 4, 4, 0, 16, 1, 0, 35); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
345 |
m_configs[35].set(0, 0, 0, 8, 0, 8, 1, 0, 36); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
346 |
m_configs[36].set(0, 0, 0, 4, 0, 4, 1, 0, 37); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
347 |
m_configs[37].set(0, 0, 0, 1, 0, 1, 1, 0, 38); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
348 |
m_configs[38].set(0, 0, 0, 0, 8, 8, 1, 0, 39); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
349 |
m_configs[39].set(0, 0, 0, 0, 1, 1, 1, 0, 40); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
350 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
351 |
m_configs[40].set(8, 8, 8, 8, 0, 32, 4, 0, 41); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
352 |
m_configs[41].set(8, 8, 8, 0, 0, 32, 4, 0, 42); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
353 |
m_configs[42].set(5, 5, 5, 1, 0, 16, 4, 0, 43); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
354 |
m_configs[43].set(5, 6, 5, 0, 0, 16, 4, 0, 44); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
355 |
m_configs[44].set(4, 4, 4, 4, 0, 16, 4, 0, 45); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
356 |
m_configs[45].set(0, 0, 0, 8, 0, 8, 4, 0, 46); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
357 |
m_configs[46].set(0, 0, 0, 4, 0, 4, 4, 0, 47); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
358 |
m_configs[47].set(0, 0, 0, 1, 0, 1, 4, 0, 48); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
359 |
m_configs[48].set(0, 0, 0, 0, 8, 8, 4, 0, 49); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
360 |
m_configs[49].set(0, 0, 0, 0, 1, 1, 4, 0, 50); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
361 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
362 |
m_configs[50].set(8, 8, 8, 8, 0, 32, 32, 0, 51); //EGL_RGB_BUFFER, buffer size = 32 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
363 |
m_configs[51].set(8, 8, 8, 0, 0, 32, 32, 0, 52); //EGL_RGB_BUFFER, buffer size = 24 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
364 |
m_configs[52].set(5, 5, 5, 1, 0, 16, 32, 0, 53); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
365 |
m_configs[53].set(5, 6, 5, 0, 0, 16, 32, 0, 54); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
366 |
m_configs[54].set(4, 4, 4, 4, 0, 16, 32, 0, 55); //EGL_RGB_BUFFER, buffer size = 16 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
367 |
m_configs[55].set(0, 0, 0, 8, 0, 8, 32, 0, 56); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
368 |
m_configs[56].set(0, 0, 0, 4, 0, 4, 32, 0, 57); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
369 |
m_configs[57].set(0, 0, 0, 1, 0, 1, 32, 0, 58); //EGL_RGB_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
370 |
m_configs[58].set(0, 0, 0, 0, 8, 8, 32, 0, 59); //EGL_LUMINANCE_BUFFER, buffer size = 8 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
371 |
m_configs[59].set(0, 0, 0, 0, 1, 1, 32, 0, 60); //EGL_LUMINANCE_BUFFER, buffer size = 1 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
372 |
/* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
373 |
attrib default criteria order priority |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
374 |
-------------------------------------------------------------- |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
375 |
EGL_COLOR_BUFFER_TYPE EGL_RGB_BUFFER Exact None 2 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
376 |
EGL_RED_SIZE 0 AtLeast Special 3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
377 |
EGL_GREEN_SIZE 0 AtLeast Special 3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
378 |
EGL_BLUE_SIZE 0 AtLeast Special 3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
379 |
EGL_LUMINANCE_SIZE 0 AtLeast Special 3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
380 |
EGL_ALPHA_SIZE 0 AtLeast Special 3 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
381 |
EGL_BUFFER_SIZE 0 AtLeast Smaller 4 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
382 |
EGL_CONFIG_ID EGL_DONT_CARE Exact Smaller 11 |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
383 |
*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
384 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
385 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
386 |
RIEGLDisplay::~RIEGLDisplay() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
387 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
388 |
//mark everything for deletion, but don't delete the current context and surface |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
389 |
for(int i=0;i<m_contexts.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
390 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
391 |
if(!m_contexts[i]->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
392 |
RI_DELETE(m_contexts[i]); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
393 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
394 |
m_contexts.clear(); //remove all contexts from the list (makes further references to the current contexts invalid) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
395 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
396 |
for(int i=0;i<m_surfaces.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
397 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
398 |
if(!m_surfaces[i]->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
399 |
RI_DELETE(m_surfaces[i]); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
400 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
401 |
m_surfaces.clear(); //remove all surfaces from the list (makes further references to the current surfaces invalid) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
402 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
403 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
404 |
EGLBoolean RIEGLDisplay::contextExists(const EGLContext ctx) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
405 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
406 |
for(int i=0;i<m_contexts.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
407 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
408 |
if(m_contexts[i] == CastToRIEGLContext(ctx)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
409 |
return EGL_TRUE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
410 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
411 |
return EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
412 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
413 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
414 |
EGLBoolean RIEGLDisplay::surfaceExists(const EGLSurface surf) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
415 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
416 |
for(int i=0;i<m_surfaces.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
417 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
418 |
if(m_surfaces[i] == CastToRIEGLSurface(surf)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
419 |
return EGL_TRUE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
420 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
421 |
return EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
422 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
423 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
424 |
EGLBoolean RIEGLDisplay::configExists(const EGLConfig config) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
425 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
426 |
for(int i=0;i<EGL_NUMCONFIGS;i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
427 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
428 |
if(m_configs[i].m_config == config) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
429 |
return EGL_TRUE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
430 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
431 |
return EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
432 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
433 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
434 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
435 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
436 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
437 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
438 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
439 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
440 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
441 |
class RIEGLThread |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
442 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
443 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
444 |
RIEGLThread(void* currentThreadID); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
445 |
~RIEGLThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
446 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
447 |
void* getThreadID() const { return m_threadID; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
448 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
449 |
void makeCurrent(RIEGLContext* c, RIEGLSurface* s) { m_context = c; m_surface = s; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
450 |
RIEGLContext* getCurrentContext() const { return m_context; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
451 |
RIEGLSurface* getCurrentSurface() const { return m_surface; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
452 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
453 |
void setError(EGLint error) { m_error = error; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
454 |
EGLint getError() const { return m_error; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
455 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
456 |
void bindAPI(EGLint api) { m_boundAPI = api; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
457 |
EGLint getBoundAPI() const { return m_boundAPI; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
458 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
459 |
private: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
460 |
RIEGLThread(const RIEGLThread&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
461 |
RIEGLThread operator=(const RIEGLThread&); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
462 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
463 |
RIEGLContext* m_context; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
464 |
RIEGLSurface* m_surface; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
465 |
EGLint m_error; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
466 |
void* m_threadID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
467 |
EGLint m_boundAPI; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
468 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
469 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
470 |
RIEGLThread::RIEGLThread(void* currentThreadID) : |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
471 |
m_context(NULL), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
472 |
m_surface(NULL), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
473 |
m_error(EGL_SUCCESS), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
474 |
m_threadID(currentThreadID), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
475 |
m_boundAPI(EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
476 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
477 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
478 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
479 |
RIEGLThread::~RIEGLThread() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
480 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
481 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
482 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
483 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
484 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
485 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
486 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
487 |
Image* CastToImage(EGLClientBuffer aBufferId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
488 |
EGLClientBuffer CastFromImage(Image* aBUffer); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
489 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
490 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
491 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
492 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
493 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
494 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
495 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
496 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
497 |
class EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
498 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
499 |
public: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
500 |
EGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
501 |
~EGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
502 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
503 |
void addReference() { m_referenceCount++; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
504 |
int removeReference() { m_referenceCount--; RI_ASSERT(m_referenceCount >= 0); return m_referenceCount; } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
505 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
506 |
void addDisplay(RIEGLDisplay* display) { RI_ASSERT(display); m_displays.push_back(display); } //throws bad alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
507 |
void removeDisplay(RIEGLDisplay* display) { RI_ASSERT(display); bool res = m_displays.remove(display); RI_ASSERT(res); RI_UNREF(res); } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
508 |
RIEGLDisplay* getDisplay(const EGLDisplay displayID) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
509 |
EGLDisplay findDisplay(const EGLContext ctx) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
510 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
511 |
void addCurrentThread(RIEGLThread* thread) { RI_ASSERT(thread); m_currentThreads.push_back(thread); } //throws bad alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
512 |
void removeCurrentThread(RIEGLThread* thread) { RI_ASSERT(thread); bool res = m_currentThreads.remove(thread); RI_ASSERT(res); RI_UNREF(res); } |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
513 |
RIEGLThread* getCurrentThread() const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
514 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
515 |
RIEGLThread* getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
516 |
void destroyThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
517 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
518 |
bool isInUse(const void* image) const; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
519 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
520 |
private: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
521 |
EGL(const EGL&); // Not allowed. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
522 |
const EGL& operator=(const EGL&); // Not allowed. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
523 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
524 |
Array<RIEGLThread*> m_threads; //threads that have called EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
525 |
Array<RIEGLThread*> m_currentThreads; //threads that have a bound context |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
526 |
Array<RIEGLDisplay*> m_displays; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
527 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
528 |
int m_referenceCount; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
529 |
}; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
530 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
531 |
EGL::EGL() : |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
532 |
m_threads(), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
533 |
m_currentThreads(), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
534 |
m_displays(), |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
535 |
m_referenceCount(0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
536 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
537 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
538 |
EGL::~EGL() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
539 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
540 |
for(int i=0;i<m_displays.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
541 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
542 |
RI_DELETE(m_displays[i]); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
543 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
544 |
for(int i=0;i<m_threads.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
545 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
546 |
RI_DELETE(m_threads[i]); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
547 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
548 |
//currentThreads contain just pointers to threads we just deleted |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
549 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
550 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
551 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
552 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
553 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
554 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
555 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
556 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
557 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
558 |
//static EGL* g_egl = NULL; //never use this directly |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
559 |
EGL* getEGL() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
560 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
561 |
/*if(!g_egl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
562 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
563 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
564 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
565 |
g_egl = RI_NEW(EGL, ()); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
566 |
g_egl->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
567 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
568 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
569 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
570 |
g_egl = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
571 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
572 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
573 |
return g_egl; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
574 |
*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
575 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
576 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
577 |
//use TLS to store static global g_egl |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
578 |
EGL* pEgl=NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
579 |
if((pEgl = static_cast<EGL*>(Dll::Tls()))==NULL) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
580 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
581 |
//create TLS instance |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
582 |
pEgl = RI_NEW(EGL, ()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
583 |
Dll::SetTls(pEgl); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
584 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
585 |
return pEgl; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
586 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
587 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
588 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
589 |
static void releaseEGL() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
590 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
591 |
/* |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
592 |
if(g_egl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
593 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
594 |
if(!g_egl->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
595 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
596 |
RI_DELETE(g_egl); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
597 |
g_egl = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
598 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
599 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
600 |
*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
601 |
EGL* pEgl = static_cast<EGL*>(Dll::Tls()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
602 |
if (pEgl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
603 |
delete pEgl; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
604 |
Dll::SetTls(NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
605 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
606 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
607 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
608 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
609 |
* \brief Given a display ID, return the corresponding object, or NULL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
610 |
* if the ID hasn't been initialized. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
611 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
612 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
613 |
* \note if egl has been initialized for this display, the display ID can |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
614 |
* be found from egl->m_displays |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
615 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
616 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
617 |
RIEGLDisplay* EGL::getDisplay(EGLDisplay displayID) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
618 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
619 |
for(int i=0;i<m_displays.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
620 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
621 |
if(displayID == m_displays[i]->getID()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
622 |
return m_displays[i]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
623 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
624 |
return NULL; //error: the display hasn't been eglInitialized |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
625 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
626 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
627 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
628 |
* \brief return EGLDisplay for the current context |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
629 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
630 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
631 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
632 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
633 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
634 |
EGLDisplay EGL::findDisplay(EGLContext ctx) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
635 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
636 |
for(int i=0;i<m_displays.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
637 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
638 |
if(m_displays[i]->contextExists(ctx)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
639 |
return m_displays[i]->getID(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
640 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
641 |
return EGL_NO_DISPLAY; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
642 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
643 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
644 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
645 |
* \brief return an EGL thread struct for the thread made current, or |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
646 |
* NULL if there's no current context. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
647 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
648 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
649 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
650 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
651 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
652 |
RIEGLThread* EGL::getCurrentThread() const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
653 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
654 |
void* currentThreadID = OSGetCurrentThreadID(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
655 |
for(int i=0;i<m_currentThreads.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
656 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
657 |
if(currentThreadID == m_currentThreads[i]->getThreadID()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
658 |
return m_currentThreads[i]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
659 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
660 |
return NULL; //thread is not current |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
661 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
662 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
663 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
664 |
* \brief return an EGL thread struct corresponding to current OS thread. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
665 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
666 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
667 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
668 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
669 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
670 |
RIEGLThread* EGL::getThread() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
671 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
672 |
void* currentThreadID = OSGetCurrentThreadID(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
673 |
for(int i=0;i<m_threads.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
674 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
675 |
if(currentThreadID == m_threads[i]->getThreadID()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
676 |
return m_threads[i]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
677 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
678 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
679 |
//EGL doesn't have a struct for the thread yet, add it to EGL's list |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
680 |
RIEGLThread* newThread = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
681 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
682 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
683 |
newThread = RI_NEW(RIEGLThread, (OSGetCurrentThreadID())); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
684 |
m_threads.push_back(newThread); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
685 |
return newThread; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
686 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
687 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
688 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
689 |
RI_DELETE(newThread); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
690 |
return NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
691 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
692 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
693 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
694 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
695 |
* \brief destroy an EGL thread struct |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
696 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
697 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
698 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
699 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
700 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
701 |
void EGL::destroyThread() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
702 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
703 |
void* currentThreadID = OSGetCurrentThreadID(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
704 |
for(int i=0;i<m_threads.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
705 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
706 |
if(currentThreadID == m_threads[i]->getThreadID()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
707 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
708 |
RIEGLThread* thread = m_threads[i]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
709 |
bool res = m_threads.remove(thread); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
710 |
RI_ASSERT(res); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
711 |
RI_UNREF(res); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
712 |
RI_DELETE(thread); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
713 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
714 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
715 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
716 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
717 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
718 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
719 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
720 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
721 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
722 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
723 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
724 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
725 |
bool EGL::isInUse(const void* image) const |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
726 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
727 |
for(int i=0;i<m_currentThreads.size();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
728 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
729 |
RIEGLSurface* s = m_currentThreads[i]->getCurrentSurface(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
730 |
if(s && s->getDrawable() && s->getDrawable()->isInUse((Image*)image)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
731 |
return true; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
732 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
733 |
return false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
734 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
735 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
736 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
737 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
738 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
739 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
740 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
741 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
742 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
743 |
#define EGL_GET_DISPLAY(DISPLAY, RETVAL) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
744 |
OSAcquireMutex(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
745 |
EGL* egl = getEGL(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
746 |
if(!egl) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
747 |
{ \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
748 |
OSReleaseMutex(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
749 |
return RETVAL; \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
750 |
} \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
751 |
RIEGLDisplay* display = egl->getDisplay(DISPLAY); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
752 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
753 |
#define EGL_GET_EGL(RETVAL) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
754 |
OSAcquireMutex(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
755 |
EGL* egl = getEGL(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
756 |
if(!egl) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
757 |
{ \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
758 |
OSReleaseMutex(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
759 |
return RETVAL; \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
760 |
} \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
761 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
762 |
#define EGL_IF_ERROR(COND, ERRORCODE, RETVAL) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
763 |
if(COND) { eglSetError(egl, ERRORCODE); OSReleaseMutex(); return RETVAL; } \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
764 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
765 |
#define EGL_RETURN(ERRORCODE, RETVAL) \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
766 |
{ \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
767 |
eglSetError(egl, ERRORCODE); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
768 |
OSReleaseMutex(); \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
769 |
return RETVAL; \ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
770 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
771 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
772 |
// Note: egl error handling model differs from OpenVG. The latest error is stored instead of the oldest one. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
773 |
static void eglSetError(EGL* egl, EGLint error) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
774 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
775 |
RIEGLThread* thread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
776 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
777 |
thread->setError(error); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
778 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
779 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
780 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
781 |
* \brief Returns the OpenVG context current to the calling thread. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
782 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
783 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
784 |
* \note This function is always called from a mutexed API function |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
785 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
786 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
787 |
void* eglvgGetCurrentVGContext(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
788 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
789 |
EGL* egl = getEGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
790 |
if(egl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
791 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
792 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
793 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
794 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
795 |
RI_ASSERT(thread->getCurrentContext() && thread->getCurrentSurface()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
796 |
return thread->getCurrentContext()->getVGContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
797 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
798 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
799 |
return NULL; //not initialized or made current |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
800 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
801 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
802 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
803 |
* \brief Check if the image is current in any of the displays |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
804 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
805 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
806 |
* \note This function is always called from a mutexed API function |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
807 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
808 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
809 |
bool eglvgIsInUse(void* image) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
810 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
811 |
EGL* egl = getEGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
812 |
if(egl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
813 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
814 |
return egl->isInUse(image); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
815 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
816 |
return false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
817 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
818 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
819 |
//helper functions |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
820 |
RIEGLContext* CastToRIEGLContext(EGLContext aCtxId) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
821 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
822 |
return (RIEGLContext*)(aCtxId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
823 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
824 |
EGLContext CastFromRIEGLContext(RIEGLContext* aCtx) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
825 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
826 |
return (EGLContext)(aCtx); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
827 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
828 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
829 |
RIEGLSurface* CastToRIEGLSurface(EGLSurface aSurfaceId) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
830 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
831 |
return (RIEGLSurface*)(aSurfaceId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
832 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
833 |
EGLSurface CastFromRIEGLSurface(RIEGLSurface* aSurface) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
834 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
835 |
return (EGLSurface)(aSurface); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
836 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
837 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
838 |
Image* CastToImage(EGLClientBuffer aBufferId) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
839 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
840 |
return (Image*)(aBufferId); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
841 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
842 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
843 |
EGLClientBuffer CastFromImage(Image* aBUffer) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
844 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
845 |
return (EGLClientBuffer)(aBUffer); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
846 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
847 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
848 |
//============================================================================================== |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
849 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
850 |
} //namespace OpenVGRI |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
851 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
852 |
using namespace OpenVGRI; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
853 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
854 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
855 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
856 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
857 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
858 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
859 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
860 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
861 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
862 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
863 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
864 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
865 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
866 |
RI_APIENTRY EGLint do_eglGetError() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
867 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
868 |
EGLint eglGetError() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
869 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
870 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
871 |
OSAcquireMutex(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
872 |
EGLint ret = EGL_SUCCESS; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
873 |
EGL* egl = getEGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
874 |
if(egl) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
875 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
876 |
RIEGLThread* thread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
877 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
878 |
ret = thread->getError(); //initialized, return error code |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
879 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
880 |
else ret = EGL_NOT_INITIALIZED; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
881 |
OSReleaseMutex(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
882 |
return ret; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
883 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
884 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
885 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
886 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
887 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
888 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
889 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
890 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
891 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
892 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
893 |
RI_APIENTRY EGLDisplay do_eglGetDisplay(EGLNativeDisplayType display_id) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
894 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
895 |
EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
896 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
897 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
898 |
return OSGetDisplay(display_id); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
899 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
900 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
901 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
902 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
903 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
904 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
905 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
906 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
907 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
908 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
909 |
RI_APIENTRY EGLBoolean do_eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
910 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
911 |
EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
912 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
913 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
914 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
915 |
EGL_IF_ERROR(display, EGL_SUCCESS, EGL_TRUE); //already initialized |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
916 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
917 |
//create the current display |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
918 |
//if a context and a surface are bound by the time of eglTerminate, they remain bound until eglMakeCurrent is called |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
919 |
RIEGLDisplay* newDisplay = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
920 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
921 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
922 |
newDisplay = RI_NEW(RIEGLDisplay, (dpy)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
923 |
egl->addDisplay(newDisplay); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
924 |
display = newDisplay; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
925 |
RI_ASSERT(display); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
926 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
927 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
928 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
929 |
RI_DELETE(newDisplay); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
930 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
931 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
932 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
933 |
if(major) *major = 1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
934 |
if(minor) *minor = 2; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
935 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
936 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
937 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
938 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
939 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
940 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
941 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
942 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
943 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
944 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
945 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
946 |
RI_APIENTRY EGLBoolean do_eglTerminate(EGLDisplay dpy) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
947 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
948 |
EGLBoolean eglTerminate(EGLDisplay dpy) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
949 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
950 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
951 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
952 |
EGL_IF_ERROR(!display, EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
953 |
egl->removeDisplay(display); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
954 |
RI_DELETE(display); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
955 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
956 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
957 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
958 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
959 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
960 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
961 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
962 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
963 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
964 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
965 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
966 |
RI_APIENTRY const char *do_eglQueryString(EGLDisplay dpy, EGLint name) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
967 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
968 |
const char *eglQueryString(EGLDisplay dpy, EGLint name) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
969 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
970 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
971 |
EGL_GET_DISPLAY(dpy, NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
972 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
973 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
974 |
static const char apis[] = "OpenVG"; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
975 |
static const char extensions[] = ""; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
976 |
static const char vendor[] = "Khronos Group"; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
977 |
static const char version[] = "1.3"; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
978 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
979 |
const char* ret = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
980 |
switch(name) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
981 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
982 |
case EGL_CLIENT_APIS: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
983 |
ret = apis; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
984 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
985 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
986 |
case EGL_EXTENSIONS: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
987 |
ret = extensions; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
988 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
989 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
990 |
case EGL_VENDOR: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
991 |
ret = vendor; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
992 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
993 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
994 |
case EGL_VERSION: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
995 |
ret = version; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
996 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
997 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
998 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
999 |
EGL_RETURN(EGL_BAD_PARAMETER, NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1000 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1001 |
EGL_RETURN(EGL_SUCCESS, ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1002 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1003 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1004 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1005 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1006 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1007 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1008 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1009 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1010 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1011 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1012 |
RI_APIENTRY EGLBoolean do_eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1013 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1014 |
EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1015 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1016 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1017 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1018 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1019 |
EGL_IF_ERROR(!num_config, EGL_BAD_PARAMETER, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1020 |
if(!configs) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1021 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1022 |
*num_config = display->getNumConfigs(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1023 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1024 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1025 |
*num_config = RI_INT_MIN(config_size, display->getNumConfigs()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1026 |
for(int i=0;i<*num_config;i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1027 |
configs[i] = display->getConfigByIdx(i).m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1028 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1029 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1030 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1031 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1032 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1033 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1034 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1035 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1036 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1037 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1038 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1039 |
static bool smaller(EGLint c, EGLint filter) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1040 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1041 |
return (filter != EGL_DONT_CARE) && (c < filter); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1042 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1043 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1044 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1045 |
RI_APIENTRY EGLBoolean do_eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1046 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1047 |
EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1048 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1049 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1050 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1051 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1052 |
EGL_IF_ERROR(!num_config, EGL_BAD_PARAMETER, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1053 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1054 |
if(!configs) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1055 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1056 |
*num_config = display->getNumConfigs(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1057 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1058 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1059 |
*num_config = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1060 |
if(!config_size) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1061 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1062 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1063 |
int bufferSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1064 |
int redSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1065 |
int greenSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1066 |
int blueSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1067 |
int luminanceSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1068 |
int alphaSize = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1069 |
int colorBufferType = EGL_RGB_BUFFER; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1070 |
int configID = EGL_DONT_CARE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1071 |
int sampleBuffers = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1072 |
int samples = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1073 |
if(attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1074 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1075 |
for(int i=0;attrib_list[i] != EGL_NONE;i+=2) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1076 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1077 |
switch(attrib_list[i]) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1078 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1079 |
case EGL_BUFFER_SIZE: //depth of the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1080 |
bufferSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1081 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1082 |
case EGL_RED_SIZE: //bits of Red in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1083 |
redSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1084 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1085 |
case EGL_GREEN_SIZE: //bits of Green in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1086 |
greenSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1087 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1088 |
case EGL_BLUE_SIZE: //bits of Blue in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1089 |
blueSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1090 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1091 |
case EGL_LUMINANCE_SIZE: //bits of Luminance in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1092 |
luminanceSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1093 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1094 |
case EGL_ALPHA_SIZE: //bits of Alpha in the color buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1095 |
alphaSize = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1096 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1097 |
case EGL_ALPHA_MASK_SIZE: //bits of Alpha in the alpha mask buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1098 |
if(attrib_list[i+1] > 8) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1099 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); //not supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1100 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1101 |
case EGL_COLOR_BUFFER_TYPE: //enum color buffer type (EGL_RGB_BUFFER, EGL_LUMINANCE_BUFFER) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1102 |
EGL_IF_ERROR(attrib_list[i+1] != EGL_RGB_BUFFER && attrib_list[i+1] != EGL_LUMINANCE_BUFFER && attrib_list[i+1] != EGL_DONT_CARE, EGL_BAD_ATTRIBUTE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1103 |
colorBufferType = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1104 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1105 |
case EGL_CONFIG_ID: //unique EGLConfig identifier |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1106 |
configID = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1107 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1108 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1109 |
case EGL_SAMPLE_BUFFERS: //integer number of multisample buffers |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1110 |
sampleBuffers = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1111 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1112 |
case EGL_SAMPLES: //integer number of samples per pixel |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1113 |
samples = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1114 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1115 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1116 |
case EGL_BIND_TO_TEXTURE_RGB: //boolean True if bindable to RGB textures. (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1117 |
case EGL_BIND_TO_TEXTURE_RGBA: //boolean True if bindable to RGBA textures. (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1118 |
case EGL_DEPTH_SIZE: //integer bits of Z in the depth buffer (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1119 |
case EGL_LEVEL: //integer frame buffer level (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1120 |
case EGL_NATIVE_RENDERABLE: //boolean EGL TRUE if native rendering APIs can render to surface (always EGL_FALSE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1121 |
case EGL_STENCIL_SIZE: //integer bits of Stencil in the stencil buffer (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1122 |
if(attrib_list[i+1]) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1123 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); //not supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1124 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1125 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1126 |
case EGL_CONFIG_CAVEAT: //enum any caveats for the configuration (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1127 |
case EGL_NATIVE_VISUAL_TYPE: //integer native visual type of the associated visual (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1128 |
if(attrib_list[i+1] != EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1129 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); //not supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1130 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1131 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1132 |
case EGL_MAX_SWAP_INTERVAL: //integer maximum swap interval (always 1) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1133 |
case EGL_MIN_SWAP_INTERVAL: //integer minimum swap interval (always 1) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1134 |
if(attrib_list[i+1] != 1) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1135 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); //not supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1136 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1137 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1138 |
case EGL_RENDERABLE_TYPE: //bitmask which client rendering APIs are supported. (always EGL_OPENVG_BIT) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1139 |
if(!(attrib_list[i+1] & EGL_OPENVG_BIT)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1140 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); //not supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1141 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1142 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1143 |
case EGL_SURFACE_TYPE: //bitmask which types of EGL surfaces are supported. (always EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT | EGL_VG_COLORSPACE_LINEAR_BIT | EGL_VG_ALPHA_FORMAT_PRE_BIT) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1144 |
break; //all types are always supported |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1145 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1146 |
case EGL_TRANSPARENT_TYPE: //enum type of transparency supported (always EGL_NONE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1147 |
case EGL_NATIVE_VISUAL_ID: //integer handle of corresponding native visual (always 0) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1148 |
case EGL_MAX_PBUFFER_WIDTH: //integer maximum width of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1149 |
case EGL_MAX_PBUFFER_HEIGHT: //integer maximum height of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1150 |
case EGL_MAX_PBUFFER_PIXELS: //integer maximum size of pbuffer (always INT_MAX) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1151 |
case EGL_TRANSPARENT_RED_VALUE: //integer transparent red value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1152 |
case EGL_TRANSPARENT_GREEN_VALUE: //integer transparent green value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1153 |
case EGL_TRANSPARENT_BLUE_VALUE: //integer transparent blue value (undefined) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1154 |
break; //ignored |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1155 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1156 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1157 |
EGL_RETURN(EGL_BAD_ATTRIBUTE, EGL_FALSE); //unknown attribute |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1158 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1159 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1160 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1161 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1162 |
if(configID && configID != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1163 |
{ //if CONFIG_ID is defined, ignore the rest of the attribs |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1164 |
for(int i=0;i<EGL_NUMCONFIGS;i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1165 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1166 |
if(display->getConfigByIdx(i).m_configID == configID) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1167 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1168 |
*num_config = 1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1169 |
*configs = display->getConfigByIdx(i).m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1170 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1171 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1172 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1173 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1174 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1175 |
//go through all configs, add passed configs to return list |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1176 |
//TODO take alpha mask size into account |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1177 |
EGLConfig found[EGL_NUMCONFIGS]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1178 |
int keys[EGL_NUMCONFIGS]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1179 |
int numFound = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1180 |
for(int i=0;i<display->getNumConfigs();i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1181 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1182 |
const RIEGLConfig& c = display->getConfigByIdx(i); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1183 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1184 |
int colorBits = c.m_desc.redBits + c.m_desc.greenBits + c.m_desc.blueBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1185 |
int luminanceBits = c.m_desc.luminanceBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1186 |
int configBufferSize; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1187 |
if(colorBits) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1188 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1189 |
RI_ASSERT(!luminanceBits); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1190 |
colorBits += c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1191 |
configBufferSize = colorBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1192 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1193 |
else if(luminanceBits) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1194 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1195 |
luminanceBits += c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1196 |
configBufferSize = luminanceBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1197 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1198 |
else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1199 |
{ //alpha only surface |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1200 |
colorBits = c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1201 |
luminanceBits = c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1202 |
configBufferSize = colorBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1203 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1204 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1205 |
if (smaller(configBufferSize, bufferSize)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1206 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1207 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1208 |
int configSampleBuffers = c.m_samples == 1 ? 0 : 1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1209 |
if (smaller(configSampleBuffers, sampleBuffers)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1210 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1211 |
if (smaller(c.m_samples, samples)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1212 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1213 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1214 |
if (smaller(c.m_desc.redBits, redSize) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1215 |
|| smaller(c.m_desc.greenBits, greenSize) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1216 |
|| smaller(c.m_desc.blueBits, blueSize) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1217 |
|| smaller(c.m_desc.alphaBits, alphaSize) ) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1218 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1219 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1220 |
if (smaller(c.m_desc.luminanceBits, luminanceSize)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1221 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1222 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1223 |
if ((colorBufferType == EGL_RGB_BUFFER && !colorBits) || |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1224 |
(colorBufferType == EGL_LUMINANCE_BUFFER && !luminanceBits)) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1225 |
continue; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1226 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1227 |
int sortKey = c.m_configID; //sort from smaller to larger |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1228 |
int sortBits = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1229 |
if(redSize != 0 && redSize != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1230 |
sortBits += c.m_desc.redBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1231 |
if(greenSize != 0 && greenSize != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1232 |
sortBits += c.m_desc.greenBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1233 |
if(blueSize != 0 && blueSize != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1234 |
sortBits += c.m_desc.blueBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1235 |
if(alphaSize != 0 && alphaSize != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1236 |
sortBits += c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1237 |
if(luminanceSize != 0 && luminanceSize != EGL_DONT_CARE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1238 |
sortBits += c.m_desc.luminanceBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1239 |
RI_ASSERT(c.m_configID <= EGL_NUMCONFIGS); //if there are more configs, increase the shift value |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1240 |
RI_ASSERT(sortBits <= 32); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1241 |
sortKey += (32-sortBits) << 4; //sort from larger to smaller |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1242 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1243 |
found[numFound] = c.m_config; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1244 |
keys[numFound++] = sortKey; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1245 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1246 |
if(!numFound) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1247 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1248 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1249 |
//sort return list into increasing order |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1250 |
for(int e=0;e<numFound-1;e++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1251 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1252 |
for(int f=e+1;f<numFound;f++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1253 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1254 |
if(keys[e] > keys[f]) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1255 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1256 |
EGLConfig tmp = found[e]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1257 |
found[e] = found[f]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1258 |
found[f] = tmp; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1259 |
RI_INT_SWAP(keys[e], keys[f]); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1260 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1261 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1262 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1263 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1264 |
//write configs into return array |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1265 |
numFound = RI_INT_MIN(numFound, config_size); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1266 |
for(int i=0;i<numFound;i++) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1267 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1268 |
configs[i] = found[i]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1269 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1270 |
*num_config = numFound; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1271 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1272 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1273 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1274 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1275 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1276 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1277 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1278 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1279 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1280 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1281 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1282 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1283 |
RI_APIENTRY EGLBoolean do_eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1284 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1285 |
EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1286 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1287 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1288 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1289 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1290 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1291 |
const RIEGLConfig& c = display->getConfig(config); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1292 |
switch(attribute) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1293 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1294 |
case EGL_BUFFER_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1295 |
*value = RI_INT_MAX(c.m_desc.redBits + c.m_desc.greenBits + c.m_desc.blueBits + c.m_desc.alphaBits, c.m_desc.luminanceBits + c.m_desc.alphaBits); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1296 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1297 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1298 |
case EGL_RED_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1299 |
*value = c.m_desc.redBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1300 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1301 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1302 |
case EGL_GREEN_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1303 |
*value = c.m_desc.greenBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1304 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1305 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1306 |
case EGL_BLUE_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1307 |
*value = c.m_desc.blueBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1308 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1309 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1310 |
case EGL_LUMINANCE_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1311 |
*value = c.m_desc.luminanceBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1312 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1313 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1314 |
case EGL_ALPHA_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1315 |
*value = c.m_desc.alphaBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1316 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1317 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1318 |
case EGL_ALPHA_MASK_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1319 |
*value = c.m_maskBits; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1320 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1321 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1322 |
case EGL_BIND_TO_TEXTURE_RGB: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1323 |
case EGL_BIND_TO_TEXTURE_RGBA: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1324 |
*value = EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1325 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1326 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1327 |
case EGL_COLOR_BUFFER_TYPE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1328 |
if(c.m_desc.redBits) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1329 |
*value = EGL_RGB_BUFFER; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1330 |
else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1331 |
*value = EGL_LUMINANCE_BUFFER; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1332 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1333 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1334 |
case EGL_CONFIG_CAVEAT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1335 |
*value = EGL_NONE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1336 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1337 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1338 |
case EGL_CONFIG_ID: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1339 |
*value = c.m_configID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1340 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1341 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1342 |
case EGL_DEPTH_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1343 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1344 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1345 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1346 |
case EGL_LEVEL: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1347 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1348 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1349 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1350 |
case EGL_MAX_PBUFFER_WIDTH: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1351 |
case EGL_MAX_PBUFFER_HEIGHT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1352 |
*value = 16384; //NOTE arbitrary maximum |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1353 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1354 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1355 |
case EGL_MAX_PBUFFER_PIXELS: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1356 |
*value = 16384*16384; //NOTE arbitrary maximum |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1357 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1358 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1359 |
case EGL_MAX_SWAP_INTERVAL: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1360 |
case EGL_MIN_SWAP_INTERVAL: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1361 |
*value = 1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1362 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1363 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1364 |
case EGL_NATIVE_RENDERABLE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1365 |
*value = EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1366 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1367 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1368 |
case EGL_NATIVE_VISUAL_ID: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1369 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1370 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1371 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1372 |
case EGL_NATIVE_VISUAL_TYPE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1373 |
*value = EGL_NONE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1374 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1375 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1376 |
case EGL_RENDERABLE_TYPE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1377 |
*value = EGL_OPENVG_BIT; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1378 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1379 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1380 |
case EGL_SAMPLE_BUFFERS: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1381 |
*value = c.m_samples > 1 ? 1 : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1382 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1383 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1384 |
case EGL_SAMPLES: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1385 |
*value = c.m_samples > 1 ? c.m_samples : 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1386 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1387 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1388 |
case EGL_STENCIL_SIZE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1389 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1390 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1391 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1392 |
case EGL_SURFACE_TYPE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1393 |
*value = EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT | EGL_VG_COLORSPACE_LINEAR_BIT | EGL_VG_ALPHA_FORMAT_PRE_BIT; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1394 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1395 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1396 |
case EGL_TRANSPARENT_TYPE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1397 |
*value = EGL_NONE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1398 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1399 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1400 |
case EGL_TRANSPARENT_RED_VALUE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1401 |
case EGL_TRANSPARENT_GREEN_VALUE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1402 |
case EGL_TRANSPARENT_BLUE_VALUE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1403 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1404 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1405 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1406 |
case EGL_CONFORMANT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1407 |
*value = EGL_OPENVG_BIT; //TODO return proper value |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1408 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1409 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1410 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1411 |
EGL_RETURN(EGL_BAD_ATTRIBUTE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1412 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1413 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1414 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1415 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1416 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1417 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1418 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1419 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1420 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1421 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1422 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1423 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1424 |
RI_APIENTRY EGLSurface do_eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1425 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1426 |
EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1427 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1428 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1429 |
EGL_GET_DISPLAY(dpy, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1430 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1431 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1432 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1433 |
int renderBuffer = EGL_BACK_BUFFER; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1434 |
int colorSpace = EGL_VG_COLORSPACE_sRGB; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1435 |
int alphaFormat = EGL_VG_ALPHA_FORMAT_NONPRE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1436 |
if(attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1437 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1438 |
for(int i=0;attrib_list[i] != EGL_NONE;i+=2) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1439 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1440 |
switch(attrib_list[i]) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1441 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1442 |
case EGL_RENDER_BUFFER: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1443 |
renderBuffer = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1444 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1445 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1446 |
case EGL_VG_COLORSPACE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1447 |
colorSpace = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1448 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1449 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1450 |
case EGL_VG_ALPHA_FORMAT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1451 |
alphaFormat = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1452 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1453 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1454 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1455 |
EGL_RETURN(EGL_BAD_ATTRIBUTE, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1456 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1457 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1458 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1459 |
//we ignore the renderBuffer parameter since we can only render to double buffered surfaces |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1460 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1461 |
//TODO If the attributes of win do not correspond to config, then an EGL BAD MATCH error is generated. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1462 |
//TODO If there is already an EGLConfig associated with win (as a result of a previous eglCreateWindowSurface call), then an EGL BAD ALLOC error is generated |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1463 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1464 |
void* wc = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1465 |
Drawable* d = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1466 |
RIEGLSurface* s = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1467 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1468 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1469 |
wc = OSCreateWindowContext(win); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1470 |
RI_ASSERT(wc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1471 |
//TODO what should happen if window width or height is zero? |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1472 |
int windowWidth = 0, windowHeight = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1473 |
OSGetWindowSize(wc, windowWidth, windowHeight); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1474 |
bool isWindow = OSIsWindow(wc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1475 |
if(windowWidth <= 0 || windowHeight <= 0 || !isWindow) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1476 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1477 |
OSDestroyWindowContext(wc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1478 |
EGL_IF_ERROR(!isWindow, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1479 |
EGL_IF_ERROR(windowWidth <= 0 || windowHeight <= 0, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1480 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1481 |
d = RI_NEW(Drawable, (display->getConfig(config).configToDescriptor((colorSpace == EGL_VG_COLORSPACE_LINEAR) ? false : true, (alphaFormat == EGL_VG_ALPHA_FORMAT_PRE) ? true : false), windowWidth, windowHeight, display->getConfig(config).m_samples, display->getConfig(config).m_maskBits)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1482 |
RI_ASSERT(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1483 |
s = RI_NEW(RIEGLSurface,(wc, config, d, false, renderBuffer)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1484 |
RI_ASSERT(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1485 |
s->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1486 |
display->addSurface(s); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1487 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1488 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1489 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1490 |
OSDestroyWindowContext(wc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1491 |
RI_DELETE(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1492 |
RI_DELETE(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1493 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1494 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1495 |
EGL_RETURN(EGL_SUCCESS, (EGLSurface)s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1496 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1497 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1498 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1499 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1500 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1501 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1502 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1503 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1504 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1505 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1506 |
RI_APIENTRY EGLSurface do_eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1507 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1508 |
EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1509 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1510 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1511 |
EGL_GET_DISPLAY(dpy, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1512 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1513 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1514 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1515 |
int width = 0, height = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1516 |
bool largestPbuffer = false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1517 |
int colorSpace = EGL_VG_COLORSPACE_sRGB; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1518 |
int alphaFormat = EGL_VG_ALPHA_FORMAT_NONPRE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1519 |
if(attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1520 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1521 |
for(int i=0;attrib_list[i] != EGL_NONE;i+=2) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1522 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1523 |
switch(attrib_list[i]) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1524 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1525 |
case EGL_WIDTH: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1526 |
width = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1527 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1528 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1529 |
case EGL_HEIGHT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1530 |
height = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1531 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1532 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1533 |
case EGL_LARGEST_PBUFFER: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1534 |
largestPbuffer = attrib_list[i+1] ? true : false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1535 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1536 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1537 |
case EGL_VG_COLORSPACE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1538 |
colorSpace = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1539 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1540 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1541 |
case EGL_VG_ALPHA_FORMAT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1542 |
alphaFormat = attrib_list[i+1]; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1543 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1544 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1545 |
case EGL_TEXTURE_FORMAT: //config doesn't support OpenGL ES |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1546 |
case EGL_TEXTURE_TARGET: //config doesn't support OpenGL ES |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1547 |
case EGL_MIPMAP_TEXTURE: //config doesn't support OpenGL ES |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1548 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1549 |
EGL_RETURN(EGL_BAD_ATTRIBUTE, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1550 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1551 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1552 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1553 |
EGL_IF_ERROR(width <= 0 || height <= 0, EGL_BAD_ATTRIBUTE, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1554 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1555 |
Drawable* d = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1556 |
RIEGLSurface* s = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1557 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1558 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1559 |
d = RI_NEW(Drawable, (display->getConfig(config).configToDescriptor((colorSpace == EGL_VG_COLORSPACE_LINEAR) ? false : true, (alphaFormat == EGL_VG_ALPHA_FORMAT_PRE) ? true : false), width, height, display->getConfig(config).m_samples, display->getConfig(config).m_maskBits)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1560 |
RI_ASSERT(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1561 |
s = RI_NEW(RIEGLSurface,(NULL, config, d, largestPbuffer, EGL_BACK_BUFFER)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1562 |
RI_ASSERT(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1563 |
s->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1564 |
display->addSurface(s); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1565 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1566 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1567 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1568 |
RI_DELETE(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1569 |
RI_DELETE(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1570 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1571 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1572 |
EGL_RETURN(EGL_SUCCESS, (EGLSurface)s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1573 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1574 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1575 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1576 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1577 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1578 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1579 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1580 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1581 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1582 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1583 |
RI_APIENTRY EGLSurface do_eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1584 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1585 |
EGLSurface eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1586 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1587 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1588 |
EGL_GET_DISPLAY(dpy, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1589 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1590 |
EGL_IF_ERROR(buftype != EGL_OPENVG_IMAGE, EGL_BAD_PARAMETER, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1591 |
EGL_IF_ERROR(!buffer, EGL_BAD_PARAMETER, EGL_NO_SURFACE); //TODO should also check if buffer really is a valid VGImage object (needs VG context for that) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1592 |
Image* image = (Image*)buffer; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1593 |
EGL_IF_ERROR(image->isInUse(), EGL_BAD_ACCESS, EGL_NO_SURFACE); //buffer is in use by OpenVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1594 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1595 |
EGL_IF_ERROR(attrib_list && attrib_list[0] != EGL_NONE, EGL_BAD_ATTRIBUTE, EGL_NO_SURFACE); //there are no valid attribs for OpenVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1596 |
const Color::Descriptor& bc = ((Image*)buffer)->getDescriptor(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1597 |
const Color::Descriptor& cc = display->getConfig(config).m_desc; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1598 |
EGL_IF_ERROR(bc.redBits != cc.redBits || bc.greenBits != cc.greenBits || bc.blueBits != cc.blueBits || |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1599 |
bc.alphaBits != cc.alphaBits || bc.luminanceBits != cc.luminanceBits, EGL_BAD_MATCH, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1600 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1601 |
//TODO If buffer is already bound to another pbuffer, an EGL BAD ACCESS error is generated. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1602 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1603 |
Drawable* d = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1604 |
RIEGLSurface* s = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1605 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1606 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1607 |
d = RI_NEW(Drawable, (image, display->getConfig(config).m_maskBits)); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1608 |
RI_ASSERT(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1609 |
s = RI_NEW(RIEGLSurface,(NULL, config, d, false, EGL_BACK_BUFFER)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1610 |
RI_ASSERT(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1611 |
s->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1612 |
display->addSurface(s); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1613 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1614 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1615 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1616 |
RI_DELETE(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1617 |
RI_DELETE(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1618 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1619 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1620 |
EGL_RETURN(EGL_SUCCESS, (EGLSurface)s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1621 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1622 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1623 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1624 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1625 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1626 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1627 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1628 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1629 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1630 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1631 |
RI_APIENTRY EGLSurface do_eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1632 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1633 |
EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1634 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1635 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1636 |
EGL_GET_DISPLAY(dpy, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1637 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1638 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1639 |
//EGL_IF_ERROR(!pixmap || !isValidImageFormat(pixmap->format) || !pixmap->data || pixmap->width <= 0 || pixmap->height <= 0, EGL_BAD_NATIVE_PIXMAP, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1640 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1641 |
RI_UNREF(attrib_list); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1642 |
EGL_IF_ERROR(display->getConfig(config).m_samples != 1, EGL_BAD_MATCH, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1643 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1644 |
//TODO If there is already an EGLSurface associated with pixmap (as a result of a previous eglCreatePixmapSurface call), then a EGL BAD ALLOC error is generated. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1645 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1646 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1647 |
EGLint width = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1648 |
EGLint height = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1649 |
EGLint stride = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1650 |
VGImageFormat format; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1651 |
int* data = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1652 |
EGLBoolean err = OSGetNativePixmapInfo(pixmap, &width, &height, &stride,&format, &data); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1653 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1654 |
Drawable* d = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1655 |
RIEGLSurface* s = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1656 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1657 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1658 |
d = RI_NEW(Drawable, (Color::formatToDescriptor(format), width, height, stride, (RIuint8*)data, display->getConfig(config).m_maskBits)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1659 |
RI_ASSERT(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1660 |
s = RI_NEW(RIEGLSurface,(NULL, config, d, false, EGL_BACK_BUFFER)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1661 |
RI_ASSERT(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1662 |
s->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1663 |
display->addSurface(s); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1664 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1665 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1666 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1667 |
RI_DELETE(d); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1668 |
RI_DELETE(s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1669 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1670 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1671 |
EGL_RETURN(EGL_SUCCESS, (EGLSurface)s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1672 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1673 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1674 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1675 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1676 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1677 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1678 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1679 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1680 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1681 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1682 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1683 |
RI_APIENTRY EGLBoolean do_eglDestroySurface(EGLDisplay dpy, EGLSurface surface) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1684 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1685 |
EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1686 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1687 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1688 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1689 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1690 |
EGL_IF_ERROR(!display->surfaceExists(surface), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1691 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1692 |
display->removeSurface((RIEGLSurface*)surface); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1693 |
if(!((RIEGLSurface*)surface)->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1694 |
RI_DELETE((RIEGLSurface*)surface); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1695 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1696 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1697 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1698 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1699 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1700 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1701 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1702 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1703 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1704 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1705 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1706 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1707 |
RI_APIENTRY EGLBoolean do_eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1708 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1709 |
EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1710 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1711 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1712 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1713 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1714 |
EGL_IF_ERROR(!display->surfaceExists(surface), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1715 |
RI_UNREF(attribute); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1716 |
RI_UNREF(value); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1717 |
//do nothing |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1718 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1719 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1720 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1721 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1722 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1723 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1724 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1725 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1726 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1727 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1728 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1729 |
RI_APIENTRY EGLBoolean do_eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1730 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1731 |
EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1732 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1733 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1734 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1735 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1736 |
EGL_IF_ERROR(!display->surfaceExists(surface), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1737 |
//TODO give an error if value is NULL? |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1738 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1739 |
RIEGLSurface* s = (RIEGLSurface*)surface; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1740 |
switch(attribute) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1741 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1742 |
case EGL_VG_ALPHA_FORMAT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1743 |
*value = (s->getDrawable()->getDescriptor().isPremultiplied()) ? EGL_VG_ALPHA_FORMAT_PRE : EGL_VG_ALPHA_FORMAT_NONPRE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1744 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1745 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1746 |
case EGL_VG_COLORSPACE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1747 |
*value = (s->getDrawable()->getDescriptor().isNonlinear()) ? EGL_VG_COLORSPACE_sRGB : EGL_VG_COLORSPACE_LINEAR; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1748 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1749 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1750 |
case EGL_CONFIG_ID: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1751 |
*value = display->getConfig(s->getConfig()).m_configID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1752 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1753 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1754 |
case EGL_HEIGHT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1755 |
*value = s->getDrawable()->getHeight(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1756 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1757 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1758 |
case EGL_HORIZONTAL_RESOLUTION: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1759 |
*value = EGL_UNKNOWN; //TODO Horizontal dot pitch |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1760 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1761 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1762 |
case EGL_LARGEST_PBUFFER: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1763 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1764 |
*value = s->isLargestPbuffer() ? EGL_TRUE : EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1765 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1766 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1767 |
case EGL_MIPMAP_TEXTURE: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1768 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1769 |
*value = EGL_FALSE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1770 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1771 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1772 |
case EGL_MIPMAP_LEVEL: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1773 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1774 |
*value = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1775 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1776 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1777 |
case EGL_PIXEL_ASPECT_RATIO: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1778 |
*value = EGL_UNKNOWN; //TODO Display aspect ratio |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1779 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1780 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1781 |
case EGL_RENDER_BUFFER: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1782 |
*value = s->getRenderBuffer(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1783 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1784 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1785 |
case EGL_SWAP_BEHAVIOR: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1786 |
*value = EGL_BUFFER_PRESERVED; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1787 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1788 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1789 |
case EGL_TEXTURE_FORMAT: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1790 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1791 |
*value = EGL_NO_TEXTURE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1792 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1793 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1794 |
case EGL_TEXTURE_TARGET: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1795 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1796 |
*value = EGL_NO_TEXTURE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1797 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1798 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1799 |
case EGL_VERTICAL_RESOLUTION: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1800 |
*value = EGL_UNKNOWN; //TODO Vertical dot pitch |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1801 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1802 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1803 |
case EGL_WIDTH: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1804 |
*value = s->getDrawable()->getWidth(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1805 |
break; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1806 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1807 |
default: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1808 |
EGL_RETURN(EGL_BAD_ATTRIBUTE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1809 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1810 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1811 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1812 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1813 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1814 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1815 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1816 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1817 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1818 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1819 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1820 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1821 |
RI_APIENTRY EGLContext do_eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1822 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1823 |
EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1824 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1825 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1826 |
EGL_GET_DISPLAY(dpy, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1827 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1828 |
EGL_IF_ERROR(!display->configExists(config), EGL_BAD_CONFIG, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1829 |
RI_UNREF(attrib_list); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1830 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1831 |
RIEGLThread* thread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1832 |
if(!thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1833 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1834 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1835 |
//creation of OpenGL ES contexts is not allowed in this implementation |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1836 |
if(thread->getBoundAPI() != EGL_OPENVG_API) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1837 |
EGL_RETURN(EGL_BAD_MATCH, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1838 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1839 |
OpenVGRI::VGContext* vgctx = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1840 |
RIEGLContext* c = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1841 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1842 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1843 |
vgctx = RI_NEW(OpenVGRI::VGContext, (share_context ? ((RIEGLContext*)share_context)->getVGContext() : NULL)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1844 |
c = RI_NEW(RIEGLContext, (vgctx, config)); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1845 |
c->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1846 |
display->addContext(c); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1847 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1848 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1849 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1850 |
RI_DELETE(vgctx); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1851 |
RI_DELETE(c); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1852 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1853 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1854 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1855 |
EGL_RETURN(EGL_SUCCESS, (EGLContext)c); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1856 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1857 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1858 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1859 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1860 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1861 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1862 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1863 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1864 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1865 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1866 |
RI_APIENTRY EGLBoolean do_eglDestroyContext(EGLDisplay dpy, EGLContext ctx) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1867 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1868 |
EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1869 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1870 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1871 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1872 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1873 |
EGL_IF_ERROR(!display->contextExists(ctx), EGL_BAD_CONTEXT, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1874 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1875 |
RIEGLContext* context = (RIEGLContext*)ctx; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1876 |
display->removeContext(context); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1877 |
if(!context->removeReference() ) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1878 |
RI_DELETE(context); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1879 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1880 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1881 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1882 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1883 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1884 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1885 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1886 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1887 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1888 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1889 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1890 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1891 |
RI_APIENTRY EGLBoolean do_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1892 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1893 |
EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1894 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1895 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1896 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1897 |
EGL_IF_ERROR(ctx != EGL_NO_CONTEXT && !display->contextExists(ctx), EGL_BAD_CONTEXT, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1898 |
EGL_IF_ERROR(draw != EGL_NO_SURFACE && !display->surfaceExists(draw), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1899 |
EGL_IF_ERROR(read != EGL_NO_SURFACE && !display->surfaceExists(read), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1900 |
EGL_IF_ERROR(draw != read, EGL_BAD_MATCH, EGL_FALSE); //TODO what's the proper error code? |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1901 |
EGL_IF_ERROR((draw != EGL_NO_SURFACE && ctx == EGL_NO_CONTEXT) || (draw == EGL_NO_SURFACE && ctx != EGL_NO_CONTEXT), EGL_BAD_MATCH, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1902 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1903 |
RIEGLSurface* s = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1904 |
RIEGLContext* c = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1905 |
if(draw != EGL_NO_SURFACE && ctx != EGL_NO_CONTEXT) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1906 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1907 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1908 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1909 |
s = (RIEGLSurface*)draw; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1910 |
c = (RIEGLContext*)ctx; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1911 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1912 |
//If either draw or read are pbuffers created with eglCreatePbufferFromClientBuffer, and the underlying bound client API buffers |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1913 |
//are in use by the client API that created them, an EGL BAD ACCESS error is generated. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1914 |
EGL_IF_ERROR(s->getDrawable()->isInUse(), EGL_BAD_ACCESS, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1915 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1916 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1917 |
//TODO properly check compatibility of surface and context: |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1918 |
//-both have RGB or LUMINANCE configs |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1919 |
//-buffer bit depths match |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1920 |
//-configs support OpenVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1921 |
//-both have the same display |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1922 |
EGL_IF_ERROR(s->getConfig() != c->getConfig(), EGL_BAD_MATCH, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1923 |
//TODO check if context or surfaces are already bound to another thread |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1924 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1925 |
//If a native window underlying either draw or read is no longer valid, an EGL BAD NATIVE WINDOW error is generated. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1926 |
EGL_IF_ERROR(s->getOSWindowContext() && !OSIsWindow(s->getOSWindowContext()), EGL_BAD_NATIVE_WINDOW, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1927 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1928 |
//TODO If the previous context of the calling display has unflushed commands, and the previous surface is no longer valid, an EGL BAD CURRENT SURFACE error is generated. (can this happen?) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1929 |
//TODO If the ancillary buffers for draw and read cannot be allocated, an EGL BAD ALLOC error is generated. (mask buffer?) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1930 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1931 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1932 |
//check if the thread is current |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1933 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1934 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1935 |
{ //thread is current, release the old bindinds and remove the thread from the current thread list |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1936 |
RIEGLContext* pc = thread->getCurrentContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1937 |
RIEGLSurface* ps = thread->getCurrentSurface(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1938 |
if(pc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1939 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1940 |
#ifdef BUILD_WITH_PRIVATE_OPENVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1941 |
/*do_vg*/vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1942 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1943 |
vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1944 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1945 |
pc->getVGContext()->setDefaultDrawable(NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1946 |
if(!pc->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1947 |
RI_DELETE(pc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1948 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1949 |
if(ps) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1950 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1951 |
if(!ps->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1952 |
RI_DELETE(ps); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1953 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1954 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1955 |
egl->removeCurrentThread(thread); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1956 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1957 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1958 |
if( c && s ) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1959 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1960 |
//bind context and surface to the current display |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1961 |
RIEGLThread* newThread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1962 |
if(!newThread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1963 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1964 |
newThread->makeCurrent(c, s); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1965 |
c->getVGContext()->setDefaultDrawable(s->getDrawable()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1966 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1967 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1968 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1969 |
egl->addCurrentThread(newThread); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1970 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1971 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1972 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1973 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1974 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1975 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1976 |
c->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1977 |
s->addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1978 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1979 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1980 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1981 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1982 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1983 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1984 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1985 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1986 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1987 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1988 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1989 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1990 |
RI_APIENTRY EGLContext do_eglGetCurrentContext() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1991 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1992 |
EGLContext eglGetCurrentContext() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1993 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1994 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1995 |
EGL_GET_EGL(EGL_NO_CONTEXT); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1996 |
EGLContext ret = EGL_NO_CONTEXT; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1997 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1998 |
if(thread && thread->getBoundAPI() == EGL_OPENVG_API) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
1999 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2000 |
ret = CastFromRIEGLContext(thread->getCurrentContext()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2001 |
RI_ASSERT(ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2002 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2003 |
EGL_RETURN(EGL_SUCCESS, ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2004 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2005 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2006 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2007 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2008 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2009 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2010 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2011 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2012 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2013 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2014 |
RI_APIENTRY EGLSurface do_eglGetCurrentSurface(EGLint readdraw) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2015 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2016 |
EGLSurface eglGetCurrentSurface(EGLint readdraw) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2017 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2018 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2019 |
EGL_GET_EGL(EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2020 |
EGL_IF_ERROR(readdraw != EGL_READ && readdraw != EGL_DRAW, EGL_BAD_PARAMETER, EGL_NO_SURFACE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2021 |
EGLContext ret = EGL_NO_SURFACE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2022 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2023 |
if(thread && thread->getBoundAPI() == EGL_OPENVG_API) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2024 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2025 |
ret = CastFromRIEGLSurface(thread->getCurrentSurface()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2026 |
RI_ASSERT(ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2027 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2028 |
EGL_RETURN(EGL_SUCCESS, ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2029 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2030 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2031 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2032 |
* \brief Returns the current display |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2033 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2034 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2035 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2036 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2037 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2038 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2039 |
RI_APIENTRY EGLDisplay do_eglGetCurrentDisplay(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2040 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2041 |
EGLDisplay eglGetCurrentDisplay(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2042 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2043 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2044 |
EGL_GET_EGL(EGL_NO_DISPLAY); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2045 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2046 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2047 |
if(!thread || thread->getBoundAPI() != EGL_OPENVG_API) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2048 |
EGL_RETURN(EGL_SUCCESS, EGL_NO_DISPLAY); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2049 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2050 |
RIEGLContext* ctx = thread->getCurrentContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2051 |
RI_ASSERT(ctx); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2052 |
EGLDisplay ret = egl->findDisplay(CastFromRIEGLContext(ctx)); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2053 |
EGL_RETURN(EGL_SUCCESS, ret); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2054 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2055 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2056 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2057 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2058 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2059 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2060 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2061 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2062 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2063 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2064 |
RI_APIENTRY EGLBoolean do_eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint* value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2065 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2066 |
EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint* value) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2067 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2068 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2069 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2070 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2071 |
EGL_IF_ERROR(!display->contextExists(ctx), EGL_BAD_CONTEXT, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2072 |
EGL_IF_ERROR(attribute != EGL_CONFIG_ID && attribute != EGL_CONTEXT_CLIENT_TYPE, EGL_BAD_ATTRIBUTE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2073 |
if(attribute == EGL_CONFIG_ID) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2074 |
*value = display->getConfig(((RIEGLContext*)ctx)->getConfig()).m_configID; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2075 |
if(attribute == EGL_CONTEXT_CLIENT_TYPE) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2076 |
*value = EGL_OPENVG_API; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2077 |
// \todo [kalle 05/Jul/05] Handling of EGL_RENDER_BUFFER attribute is missing. |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2078 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2079 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2080 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2081 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2082 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2083 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2084 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2085 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2086 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2087 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2088 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2089 |
RI_APIENTRY EGLBoolean do_eglBindAPI(EGLenum api) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2090 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2091 |
EGLBoolean eglBindAPI(EGLenum api) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2092 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2093 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2094 |
EGL_GET_EGL(EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2095 |
EGL_IF_ERROR(api != EGL_OPENVG_API && api != EGL_OPENGL_ES_API, EGL_BAD_PARAMETER, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2096 |
RIEGLThread* thread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2097 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2098 |
thread->bindAPI(api); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2099 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2100 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2101 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2102 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2103 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2104 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2105 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2106 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2107 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2108 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2109 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2110 |
RI_APIENTRY EGLenum do_eglQueryAPI(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2111 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2112 |
EGLenum eglQueryAPI(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2113 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2114 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2115 |
EGL_GET_EGL(EGL_NONE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2116 |
RIEGLThread* thread = egl->getThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2117 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2118 |
EGL_RETURN(EGL_SUCCESS, thread->getBoundAPI()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2119 |
EGL_RETURN(EGL_SUCCESS, EGL_NONE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2120 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2121 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2122 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2123 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2124 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2125 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2126 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2127 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2128 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2129 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2130 |
RI_APIENTRY EGLBoolean do_eglWaitClient() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2131 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2132 |
EGLBoolean eglWaitClient() |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2133 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2134 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2135 |
EGL_GET_EGL(EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2136 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2137 |
if(thread && thread->getBoundAPI() == EGL_OPENVG_API) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2138 |
#ifdef BUILD_WITH_PRIVATE_OPENVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2139 |
/*do_vg*/vgFinish(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2140 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2141 |
vgFinish(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2142 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2143 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2144 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2145 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2146 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2147 |
* \brief Waits for OpenGL ES |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2148 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2149 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2150 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2151 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2152 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2153 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2154 |
RI_APIENTRY EGLBoolean do_eglWaitGL(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2155 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2156 |
EGLBoolean eglWaitGL(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2157 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2158 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2159 |
return EGL_TRUE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2160 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2161 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2162 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2163 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2164 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2165 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2166 |
* \note We don't support native rendering |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2167 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2168 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2169 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2170 |
RI_APIENTRY EGLBoolean do_eglWaitNative(EGLint engine) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2171 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2172 |
EGLBoolean eglWaitNative(EGLint engine) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2173 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2174 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2175 |
RI_UNREF(engine); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2176 |
return EGL_TRUE; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2177 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2178 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2179 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2180 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2181 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2182 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2183 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2184 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2185 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2186 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2187 |
RI_APIENTRY EGLBoolean do_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2188 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2189 |
EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2190 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2191 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2192 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2193 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2194 |
EGL_IF_ERROR(!display->surfaceExists(surface), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2195 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2196 |
RIEGLSurface* s = (RIEGLSurface*)surface; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2197 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2198 |
RIEGLThread* currentThread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2199 |
EGL_IF_ERROR(!currentThread || currentThread->getCurrentSurface() != s, EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2200 |
EGL_IF_ERROR(!OSIsWindow(s->getOSWindowContext()), EGL_BAD_NATIVE_WINDOW, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2201 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2202 |
#ifdef BUILD_WITH_PRIVATE_OPENVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2203 |
/*do_vg*/vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2204 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2205 |
vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2206 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2207 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2208 |
if(!s->getOSWindowContext()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2209 |
{ //do nothing for other than window surfaces (NOTE: single-buffered window surfaces should return immediately as well) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2210 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2211 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2212 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2213 |
int windowWidth = 0, windowHeight = 0; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2214 |
OSGetWindowSize(s->getOSWindowContext(), windowWidth, windowHeight); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2215 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2216 |
if(windowWidth != s->getDrawable()->getWidth() || windowHeight != s->getDrawable()->getHeight()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2217 |
{ //resize the back buffer |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2218 |
RIEGLContext* c = currentThread->getCurrentContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2219 |
RI_ASSERT(c); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2220 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2221 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2222 |
s->getDrawable()->resize(windowWidth, windowHeight); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2223 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2224 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2225 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2226 |
c->getVGContext()->setDefaultDrawable(NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2227 |
EGL_RETURN(EGL_BAD_ALLOC, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2228 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2229 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2230 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2231 |
OSBlitToWindow(s->getOSWindowContext(), s->getDrawable()); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2232 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2233 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2234 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2235 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2236 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2237 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2238 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2239 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2240 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2241 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2242 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2243 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2244 |
RI_APIENTRY EGLBoolean do_eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2245 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2246 |
EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2247 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2248 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2249 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2250 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2251 |
EGL_IF_ERROR(!display->surfaceExists(surface), EGL_BAD_SURFACE, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2252 |
//EGL_IF_ERROR(!target || !isValidImageFormat(target->format) || !target->data || target->width <= 0 || target->height <= 0, EGL_BAD_NATIVE_PIXMAP, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2253 |
EGLint width = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2254 |
EGLint height = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2255 |
EGLint stride = -1; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2256 |
VGImageFormat format; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2257 |
int* data = NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2258 |
EGLBoolean err = OSGetNativePixmapInfo(target, &width, &height, &stride,&format, &data); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2259 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2260 |
TUint* fdata = (TUint*)((TUint)data + ( stride * ( height - 1 ) ) ); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2261 |
try |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2262 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2263 |
Image output(Color::formatToDescriptor(format), width, height, -stride, (RIuint8*)fdata); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2264 |
output.addReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2265 |
output.blit(((RIEGLSurface*)surface)->getDrawable()->getColorBuffer(), 0, 0, 0, 0, width, height); //throws bad_alloc |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2266 |
output.removeReference(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2267 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2268 |
catch(std::bad_alloc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2269 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2270 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2271 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2272 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2273 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2274 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2275 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2276 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2277 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2278 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2279 |
* \note We support only swap interval one |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2280 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2281 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2282 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2283 |
RI_APIENTRY EGLBoolean do_eglSwapInterval(EGLDisplay dpy, EGLint interval) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2284 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2285 |
EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2286 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2287 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2288 |
EGL_GET_DISPLAY(dpy, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2289 |
EGL_IF_ERROR(!display, EGL_NOT_INITIALIZED, EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2290 |
RI_UNREF(interval); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2291 |
EGL_RETURN(EGL_SUCCESS, EGL_TRUE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2292 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2293 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2294 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2295 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2296 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2297 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2298 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2299 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2300 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2301 |
typedef void RI_Proc(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2302 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2303 |
//EGLAPI void (* EGLAPIENTRY eglGetProcAddress(const char *procname))(void); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2304 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2305 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2306 |
RI_APIENTRY void (*do_eglGetProcAddress(const char *procname))(...) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2307 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2308 |
void (*eglGetProcAddress(const char *procname))(...) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2309 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2310 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2311 |
if(!procname) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2312 |
return NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2313 |
return NULL; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2314 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2315 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2316 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2317 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2318 |
/*-------------------------------------------------------------------*//*! |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2319 |
* \brief |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2320 |
* \param |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2321 |
* \return |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2322 |
* \note |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2323 |
*//*-------------------------------------------------------------------*/ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2324 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2325 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2326 |
RI_APIENTRY EGLBoolean do_eglReleaseThread(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2327 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2328 |
EGLBoolean eglReleaseThread(void) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2329 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2330 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2331 |
EGL_GET_EGL(EGL_FALSE); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2332 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2333 |
//check if the thread is current |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2334 |
RIEGLThread* thread = egl->getCurrentThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2335 |
if(thread) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2336 |
{ //thread is current, release the old bindings and remove the thread from the current thread list |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2337 |
RIEGLContext* pc = thread->getCurrentContext(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2338 |
RIEGLSurface* ps = thread->getCurrentSurface(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2339 |
if(pc) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2340 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2341 |
#ifdef BUILD_WITH_PRIVATE_OPENVG |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2342 |
/*do_vg*/vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2343 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2344 |
vgFlush(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2345 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2346 |
pc->getVGContext()->setDefaultDrawable(NULL); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2347 |
if(!pc->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2348 |
RI_DELETE(pc); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2349 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2350 |
if(ps) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2351 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2352 |
if(!ps->removeReference()) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2353 |
RI_DELETE(ps); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2354 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2355 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2356 |
egl->removeCurrentThread(thread); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2357 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2358 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2359 |
//destroy EGL's thread struct |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2360 |
egl->destroyThread(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2361 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2362 |
//destroy the EGL instance |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2363 |
releaseEGL(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2364 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2365 |
OSReleaseMutex(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2366 |
OSDeinitMutex(); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2367 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2368 |
return EGL_SUCCESS; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2369 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2370 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2371 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2372 |
RI_APIENTRY EGLBoolean do_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2373 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2374 |
EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2375 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2376 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2377 |
//not implemented |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2378 |
RI_ASSERT(0); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2379 |
return false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2380 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2381 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2382 |
#ifdef BUILD_WITH_PRIVATE_EGL |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2383 |
RI_APIENTRY EGLBoolean do_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2384 |
#else |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2385 |
EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2386 |
#endif |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2387 |
{ |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2388 |
//not implemented |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2389 |
RI_ASSERT(0); |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2390 |
return false; |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2391 |
} |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2392 |
#undef EGL_NUMCONFIGS |
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2393 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2394 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2395 |
|
7579f232bae7
Transplant KhronosRI changeset 22d01ad3515c -
Shabe Razvi <shaber@symbian.org>
parents:
diff
changeset
|
2396 |