--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/holdingarea/libEGL/inc/EGLConfig.h Thu Sep 16 09:43:14 2010 +0100
@@ -0,0 +1,120 @@
+/* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and /or associated documentation files
+ * (the "Materials "), to deal in the Materials without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Materials,
+ * and to permit persons to whom the Materials are furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Materials.
+ *
+ * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
+ * THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef _EGLCONFIG_H_
+#define _EGLCONFIG_H_
+
+#include <EGL/egl.h>
+#include "ColorDescriptor.h"
+#include "TransparentColor.h"
+
+class CEGLConfig
+{
+public:
+ CEGLConfig(void);
+ CEGLConfig( CColorDescriptor& colorDescriptor,
+ EGLBoolean bindToTexRGB, /* EGL_BIND_TO_TEXTURE_RGB*/
+ EGLBoolean bindToTexRGBA, /* EGL_BIND_TO_TEXTURE_RGBA */
+ EGLenum configCaveat, /* EGL_CONFIG_CAVEAT */
+ EGLint configId, /* EGL_CONFIG_ID */
+ EGLint conformant, /* EGL_CONFORMANT */
+ EGLint depthSize, /* EGL_DEPTH_SIZE */
+ EGLint level, /* EGL_LEVEL */
+ EGLint maxSwapInterval, /* EGL_MAX_SWAP_INTERVAL */
+ EGLint minSwapInterval, /* EGL_MIN_SWAP_INTERVAL */
+ EGLBoolean nativeRenderable, /* EGL_NATIVE_RENDERABLE */
+ EGLint nativeVisualType, /* EGL_NATIVE_VIDUAL_TYPE */
+ EGLint renderableType, /* EGL_RENDERABLE_TYPE */
+ EGLint sampleBuffers, /* EGL_SAMPLE_BUFFERS */
+ EGLint samples, /* EGL_SAMPLES */
+ EGLint stencilSize, /* EGL_STENCIL_SIZE */
+ EGLint surfaceType,
+ CTransparentColor* transparentColor );
+
+ ~CEGLConfig(void);
+
+ /*
+ Setting up config values.
+ Return EGL_NO_ERROR if all ok and
+ EGL_BAD_PARAMETER if some conflict with parameters
+ */
+ EGLint SetUpConfig( EGLint red, EGLint green, EGLint blue,
+ EGLint luminance, EGLint alpha,
+ EGLint alphaMask, EGLint samples, EGLint bpp,
+ EGLint id );
+
+public:
+ inline void SetId( int id ) { m_configId = id; }
+ inline EGLint Id() const { return m_configId; }
+ EGLBoolean SetAttribute( EGLint attribute, EGLint value );
+ EGLint GetAttribute( EGLint attribute ) const;
+ inline CColorDescriptor* GetDescriptor() { return &m_colorDescriptor; }
+
+ bool operator>( const CEGLConfig& rhs ) const;
+ bool operator<( const CEGLConfig& rhs ) const;
+ bool Match( const CEGLConfig& filter) const;
+ CEGLConfig& operator=( const CEGLConfig& rhs );
+ bool IsCompatible( const CEGLConfig& config, const EGLenum contextApi ) const;
+
+private:
+ EGLint m_bufferSize; /* EGL_BUFFER_SIZE */
+ CColorDescriptor m_colorDescriptor;
+ EGLBoolean m_bindToTexRGB; /* EGL_BIND_TO_TEXTURE_RGB*/
+ EGLBoolean m_bindToTexRGBA; /* EGL_BIND_TO_TEXTURE_RGBA */
+ EGLenum m_configCaveat; /* EGL_CONFIG_CAVEAT */
+ EGLint m_configId; /* EGL_CONFIG_ID */
+ EGLint m_conformant; /* EGL_CONFORMANT */
+ EGLint m_depthSize; /* EGL_DEPTH_SIZE */
+ EGLint m_level; /* EGL_LEVEL */
+ EGLint m_maxPbufferWidth; /* EGL_MAX_PBUFFER_WIDTH */
+ EGLint m_maxPbufferHeight; /* EGL_MAX_PBUFFER_HEIGHT */
+ EGLint m_maxPbufferPixels; /* EGL_MAX_PBUFFER_PIXELS */
+ EGLint m_maxSwapInterval; /* EGL_MAX_SWAP_INTERVAL */
+ EGLint m_minSwapInterval; /* EGL_MIN_SWAP_INTERVAL */
+ EGLBoolean m_nativeRenderable; /* EGL_NATIVE_RENDERABLE */
+ EGLint m_nativeVisualId; /* EGL_NATIVE_VISUAL_ID */
+ EGLint m_nativeVisualType; /* EGL_NATIVE_VISUAL_TYPE */
+ EGLint m_renderableType; /* EGL_RENDERABLE_TYPE */
+ EGLint m_sampleBuffers; /* EGL_SAMPLE_BUFFERS */
+ EGLint m_samples; /* EGL_SAMPLES */
+ EGLint m_stencilSize; /* EGL_STENCIL_SIZE */
+
+ EGLint m_surfaceType; /* EGL_SURFACE_TYPE =
+ EGL_PBUFFER_BIT,
+ EGL_PIXMAP_BIT,
+ EGL_WINDOW_BIT,
+ EGL_VG_COLORSPACE_LINEAR_BIT,
+ EGL_VG_ALPHA_FORMAT_PRE_BIT,
+ EGL_MULTISAMPLE_RESOLVE_BOX_BIT,
+ EGL_SWAP_BEHAVIOR_PRESERVED_BIT */
+
+ CTransparentColor m_transparentColor;
+};
+#endif //_EGLCONFIG_H_
\ No newline at end of file