X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=source%2Frice_gles%2Fsrc%2FOGLGraphicsContext.h;fp=source%2Frice_gles%2Fsrc%2FOGLGraphicsContext.h;h=ce05219862c8fdcfefc07aa323a848bae87b3ad2;hb=d07c171fa694cae985ad7045f9ce2b2f1a5699b4;hp=0000000000000000000000000000000000000000;hpb=ca22e7b76883b946060a6b40bb8709c1981e1cf6;p=mupen64plus-pandora.git diff --git a/source/rice_gles/src/OGLGraphicsContext.h b/source/rice_gles/src/OGLGraphicsContext.h new file mode 100644 index 0000000..ce05219 --- /dev/null +++ b/source/rice_gles/src/OGLGraphicsContext.h @@ -0,0 +1,92 @@ +/* +Copyright (C) 2003 Rice1964 + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef _OGL_CONTEXT_H_ +#define _OGL_CONTEXT_H_ + +#include "typedefs.h" +#include "GraphicsContext.h" + +class COGLGraphicsContext : public CGraphicsContext +{ + friend class OGLRender; + friend class COGLRenderTexture; +public: + virtual ~COGLGraphicsContext(); + + bool Initialize(uint32 dwWidth, uint32 dwHeight, BOOL bWindowed ); + bool ResizeInitialize(uint32 dwWidth, uint32 dwHeight, BOOL bWindowed ); + void CleanUp(); + void Clear(ClearFlag dwFlags, uint32 color=0xFF000000, float depth=1.0f); + + void UpdateFrame(bool swaponly=false); + int ToggleFullscreen(); // return 0 as the result is windowed + + bool IsExtensionSupported(const char* pExtName); + bool IsWglExtensionSupported(const char* pExtName); + static void InitDeviceParameters(); + + //Get methods (TODO, remove all friend class and use get methods instead) + bool IsSupportAnisotropicFiltering(); + int getMaxAnisotropicFiltering(); + +protected: + friend class OGLDeviceBuilder; + COGLGraphicsContext(); + void InitState(void); + void InitOGLExtension(void); + bool SetFullscreenMode(); + bool SetWindowMode(); + + // Important OGL extension features + bool m_bSupportMultiTexture; + bool m_bSupportTextureEnvCombine; + bool m_bSupportSeparateSpecularColor; + bool m_bSupportSecondColor; + bool m_bSupportFogCoord; + bool m_bSupportTextureObject; + + // Optional OGL extension features; + bool m_bSupportRescaleNormal; + bool m_bSupportLODBias; + bool m_bSupportAnisotropicFiltering; + int m_maxAnisotropicFiltering; + + // Nvidia OGL only features + bool m_bSupportTextureMirrorRepeat; + bool m_bSupportTextureLOD; + bool m_bSupportNVRegisterCombiner; + bool m_bSupportBlendColor; + bool m_bSupportBlendSubtract; + bool m_bSupportNVTextureEnvCombine4; + + // Minimal requirements, I will even not check them at runtime + //bool m_bSupportTextureEnvAdd; + //bool m_bSupportVertexArray; + + const unsigned char* m_pVendorStr; + const unsigned char* m_pRenderStr; + const unsigned char* m_pExtensionStr; + const char* m_pWglExtensionStr; + const unsigned char* m_pVersionStr; +}; + +#endif + + +