diff -r da7c1a80df0d -r d2d6724aef32 holdingarea/libEGL/inc/EGLConfig.h --- /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 +#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