diff options
author | Oliver Bolte <obo@openoffice.org> | 2008-10-17 08:40:10 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2008-10-17 08:40:10 +0000 |
commit | 98c9f4f4f2506db7385cc3f0fa7bb1b14930a417 (patch) | |
tree | e6881eda00d35e22f6ac51732df02db300814385 /vcl | |
parent | 52a7bbb9c5d88ee817b4e484696846adbc7b305e (diff) |
CWS-TOOLING: integrate CWS aw057
Diffstat (limited to 'vcl')
41 files changed, 28 insertions, 4613 deletions
diff --git a/vcl/aqua/inc/salinst.h b/vcl/aqua/inc/salinst.h index 61d2c5f40db3..703c3339ba37 100644 --- a/vcl/aqua/inc/salinst.h +++ b/vcl/aqua/inc/salinst.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.h,v $ - * $Revision: 1.20 $ + * $Revision: 1.20.30.1 $ * * This file is part of OpenOffice.org. * @@ -129,7 +129,6 @@ public: virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ); virtual String GetDefaultPrinter(); virtual SalTimer* CreateSalTimer(); - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ); virtual SalI18NImeStatus* CreateI18NImeStatus(); virtual SalSystem* CreateSalSystem(); virtual SalBitmap* CreateSalBitmap(); diff --git a/vcl/aqua/inc/salogl.h b/vcl/aqua/inc/salogl.h index 7e2d49165462..e69de29bb2d1 100644 --- a/vcl/aqua/inc/salogl.h +++ b/vcl/aqua/inc/salogl.h @@ -1,94 +0,0 @@ -/************************************************************************* -* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.h,v $ - * $Revision: 1.5 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * -************************************************************************/ - -#ifndef _SV_SALOGL_H -#define _SV_SALOGL_H - -#include "vcl/salogl.hxx" -#include "osl/module.h" - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; - -class AquaSalOpenGL : public SalOpenGL -{ -private: - static ULONG mnOGLState; - - // static oslModule mpGLLib; -// static GLXContext maGLXContext; -// static ULONG mnOGLState; -// static Display* mpDisplay; -// static XVisualInfo* mpVisualInfo; -// static BOOL mbHaveGLVisual; -// -// static BOOL ImplInit(); -// -// static GLXContext (*pCreateContext)( Display *, XVisualInfo *, GLXContext, Bool ); -// static void (*pDestroyContext)( Display *, GLXContext ); -// static GLXContext (*pGetCurrentContext)( ); -// static Bool (*pMakeCurrent)( Display *, GLXDrawable, GLXContext ); -// static void (*pSwapBuffers)( Display*, GLXDrawable ); -// static int (*pGetConfig)( Display*, XVisualInfo*, int, int* ); -// static void (*pFlush)(); -// -// Drawable maDrawable; -// -// static void* resolveSymbol( const char* pSym ); -public: - - AquaSalOpenGL( SalGraphics* pGraphics ); - ~AquaSalOpenGL(); - -// static void Release(); -// static void ReleaseLib(); -// static void MakeVisualWeights( -// Display *pDisplay, -// XVisualInfo* pInfos, -// int* pWeights, -// int nVisuals -// ); - - // overload all pure virtual methods - virtual bool IsValid(); - virtual oglFunction GetOGLFnc( const char * ); - virtual void OGLEntry( SalGraphics* pGraphics ); - virtual void OGLExit( SalGraphics* pGraphics ); - virtual void StartScene( SalGraphics* pGraphics ); - virtual void StopScene(); - virtual BOOL Create(); - virtual void Release(); - -}; - -#endif // _SV_SALOGL_H diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx index d1a8b27369fe..2ab60067bd6f 100644 --- a/vcl/aqua/source/app/salinst.cxx +++ b/vcl/aqua/source/app/salinst.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.cxx,v $ - * $Revision: 1.54 $ + * $Revision: 1.54.28.1 $ * * This file is part of OpenOffice.org. * @@ -52,7 +52,6 @@ #include "salvd.h" #include "salbmp.h" #include "salprn.h" -#include "salogl.h" #include "saltimer.h" #include "vclnsapp.h" @@ -944,13 +943,6 @@ SalTimer* AquaSalInstance::CreateSalTimer() // ----------------------------------------------------------------------- -SalOpenGL* AquaSalInstance::CreateSalOpenGL( SalGraphics* pGraphics ) -{ - return new AquaSalOpenGL( pGraphics ); -} - -// ----------------------------------------------------------------------- - SalSystem* AquaSalInstance::CreateSalSystem() { return new AquaSalSystem(); diff --git a/vcl/aqua/source/gdi/makefile.mk b/vcl/aqua/source/gdi/makefile.mk index cab8fd6247c6..deb6832a5525 100644 --- a/vcl/aqua/source/gdi/makefile.mk +++ b/vcl/aqua/source/gdi/makefile.mk @@ -8,7 +8,7 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.15 $ +# $Revision: 1.15.154.1 $ # # This file is part of OpenOffice.org. # @@ -62,8 +62,7 @@ SLOFILES= $(SLO)$/salmathutils.obj \ $(SLO)$/salvd.obj \ $(SLO)$/salprn.obj \ $(SLO)$/aquaprintview.obj \ - $(SLO)$/salbmp.obj \ - $(SLO)$/salogl.obj + $(SLO)$/salbmp.obj .IF "$(ENABLE_CAIRO)" == "TRUE" CDEFS+= -DCAIRO diff --git a/vcl/aqua/source/gdi/salogl.cxx b/vcl/aqua/source/gdi/salogl.cxx index 2ae1dbfa93fb..e69de29bb2d1 100644 --- a/vcl/aqua/source/gdi/salogl.cxx +++ b/vcl/aqua/source/gdi/salogl.cxx @@ -1,109 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.cxx,v $ - * $Revision: 1.10 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_vcl.hxx" - -#include "vcl/salgdi.hxx" -#include "salgdi.h" -#include "vcl/salogl.hxx" -#include "salogl.h" - - -// ======================================================================== - -// Initialize static data members -ULONG AquaSalOpenGL::mnOGLState = OGL_STATE_UNLOADED; - -// ======================================================================== - -AquaSalOpenGL::AquaSalOpenGL( SalGraphics* pGraphics ) -{ -} - -// ------------------------------------------------------------------------ - -AquaSalOpenGL::~AquaSalOpenGL() -{ -} - -// ------------------------------------------------------------------------ - -BOOL AquaSalOpenGL::Create() -{ - return FALSE; -} - -// ------------------------------------------------------------------------ - -void AquaSalOpenGL::Release() -{ -} - -// ------------------------------------------------------------------------ - -oglFunction AquaSalOpenGL::GetOGLFnc( const char* pFncName ) -{ - return NULL; -} - -// ------------------------------------------------------------------------ - -void AquaSalOpenGL::OGLEntry( SalGraphics* pGraphics ) -{ -} - -// ------------------------------------------------------------------------ - -void AquaSalOpenGL::OGLExit( SalGraphics* pGraphics ) -{ -} - - - - - - - - -void AquaSalOpenGL::StartScene( SalGraphics* pGraphics ) -{ - -} - -bool AquaSalOpenGL::IsValid() -{ - return FALSE; -} - -void AquaSalOpenGL::StopScene() -{ - -} diff --git a/vcl/inc/vcl/opengl.hxx b/vcl/inc/vcl/opengl.hxx index 7d106bc8a1c8..e69de29bb2d1 100644 --- a/vcl/inc/vcl/opengl.hxx +++ b/vcl/inc/vcl/opengl.hxx @@ -1,159 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: opengl.hxx,v $ - * $Revision: 1.3 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_OPENGL_HXX -#define _SV_OPENGL_HXX - -#include <tools/gen.hxx> -#include <vcl/salotype.hxx> -#include <vcl/dllapi.h> - -// ---------- -// - OpenGL - -// ---------- - -class OutputDevice; -class SalOpenGL; -class RmOpenGL; - -class VCL_DLLPUBLIC OpenGL -{ - static BOOL mbNoOGL; - -private: - OutputDevice* mpOutDev; - SalOpenGL* mpOGL; - - SAL_DLLPRIVATE void ImplInit(); - SAL_DLLPRIVATE BOOL ImplInitFncPointers(); - -public: - OpenGL( OutputDevice* pOutDev ); - ~OpenGL(); - - BOOL IsValid() const { return( mpOGL != NULL ); } - static void Invalidate( BOOL bInvalid = TRUE ) { mbNoOGL = bInvalid; } - - void SetConnectOutputDevice( OutputDevice* pOutDev ); - OutputDevice* GetConnectOutputDevice() const { return mpOutDev; } - - void ClearDepth( GLclampd fDepth ); - void DepthFunc( GLenum eFunc ); - void Enable( GLenum eCap ); - void Disable( GLenum eCap ); - void DepthMask( GLboolean bFlag ); - void ShadeModel( GLenum eMode ); - void EdgeFlag( GLboolean bFlag ); - void Clear( GLbitfield nMask ); - void Flush(); - void Finish(); - void Viewport( GLint nX, GLint nY, GLsizei nWidth, GLsizei nHeight ); - void Begin( GLenum eMode ); - void End(); - void Vertex3dv( const GLdouble *fVar ); - void Normal3dv( const GLdouble *fVar ); - void TexCoord3dv( const GLdouble *fVar ); - void Color4ub( GLubyte cRed, GLubyte cGreen, GLubyte cBlue, GLubyte cAlpha ); - void Materialfv( GLenum eFace, GLenum ePName, const GLfloat *fParams ); - void Materialf( GLenum eFace, GLenum ePName, GLfloat fParam ); - void LightModelfv( GLenum ePName, const GLfloat *fParams ); - void LightModelf( GLenum ePName, GLfloat fParam ); - void Lightfv( GLenum eLight, GLenum ePName, const GLfloat *fParams ); - void Lightf( GLenum eLight, GLenum ePName, GLfloat fParam ); - void PolygonMode( GLenum eFace, GLenum eMode ); - void CullFace( GLenum eMode ); - void PointSize( GLfloat fSize ); - void LineWidth( GLfloat fWidth ); - void MatrixMode( GLenum eMode ); - void LoadMatrixd( const GLdouble *fM ); - void TexImage1D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); - void TexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); - void CopyTexImage1D( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ); - void CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); - void CopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); - void CopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); - void PixelTransferf( GLenum pname, GLfloat param ); - void PixelTransferi( GLenum pname, GLint param ); - void GetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params ); - void GetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params ); - void GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ); - void GetTexParameteriv( GLenum target, GLenum pname, GLint *params ); - void TexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ); - void TexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); - void PixelStoref( GLenum pname, GLfloat param ); - void PixelStorei( GLenum pname, GLint param ); - void GenTextures( GLsizei n, GLuint *textures ); - GLboolean IsTexture( GLuint texture ); - void BindTexture( GLenum target, GLuint texture ); - void DeleteTextures( GLsizei n, const GLuint *textures ); - GLboolean AreTexturesResident( GLsizei n, const GLuint *textures, GLboolean *residences ); - void PrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ); - void TexEnvf( GLenum target, GLenum pname, GLfloat param ); - void TexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); - void TexEnvi( GLenum target, GLenum pname, GLint param ); - void TexEnviv( GLenum target, GLenum pname, const GLint *params ); - void TexParameterf( GLenum target, GLenum pname, GLfloat param ); - void TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ); - void TexParameteri( GLenum target, GLenum pname, GLint param ); - void TexParameteriv( GLenum target, GLenum pname, const GLint *params ); - void TexGend( GLenum coord, GLenum pname, GLdouble param ); - void TexGendv( GLenum coord, GLenum pname, const GLdouble *params ); - void TexGenf( GLenum coord, GLenum pname, GLfloat param ); - void TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); - void TexGeni( GLenum coord, GLenum pname, GLint param ); - void TexGeniv( GLenum coord, GLenum pname, const GLint *params ); - void TexCoord2dv( const GLdouble *pParams ); - void GetIntegerv( GLenum pname, GLint *params ); - void PolygonOffset( GLfloat factor, GLfloat units ); - void Scissor( GLint x, GLint y, GLsizei width, GLsizei height ); - - void EnableClientState( GLenum array ); - void DisableClientState( GLenum array ); - void VertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); - void ColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); - void IndexPointer( GLenum type, GLsizei stride, const GLvoid *pointer ); - void NormalPointer( GLenum type, GLsizei stride, const GLvoid *pointer ); - void TexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); - void EdgeFlagPointer( GLsizei stride, const GLvoid *pointer ); - void ArrayElement( GLint i ); - void DrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); - void DrawArrays( GLenum mode, GLint first, GLsizei count ); - void InterleavedArrays( GLenum format, GLsizei stride, const GLvoid *pointer ); - - void LoadIdentity(); - void BlendFunc( GLenum sfactor, GLenum dfactor ); - -private: - OpenGL(); - OpenGL( const OpenGL& ); - OpenGL& operator=( const OpenGL& ); -}; - -#endif // _SV_OPENGL_HXX diff --git a/vcl/inc/vcl/outdev.hxx b/vcl/inc/vcl/outdev.hxx index 6d8f9f70492d..7c33e21204c6 100644 --- a/vcl/inc/vcl/outdev.hxx +++ b/vcl/inc/vcl/outdev.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: outdev.hxx,v $ - * $Revision: 1.11 $ + * $Revision: 1.11.28.1 $ * * This file is part of OpenOffice.org. * @@ -69,8 +69,6 @@ class TextRectInfo; class FontInfo; class FontMetric; class GDIMetaFile; -class OutDev3D; -class OpenGL; class List; class GfxLink; class Line; @@ -304,7 +302,6 @@ class VCL_DLLPUBLIC OutputDevice : public Resource friend class Bitmap; friend class ImplImageBmp; friend class ImplQPrinter; - friend class OpenGL; friend class Printer; friend class SalGraphicsLayout; friend class System; @@ -328,7 +325,6 @@ private: ImplObjStack* mpObjStack; ImplOutDevData* mpOutDevData; List* mpUnoGraphicsList; - OutDev3D* mp3DContext; vcl::PDFWriterImpl* mpPDFWriter; vcl::ExtOutDevData* mpExtOutDevData; @@ -575,10 +571,6 @@ public: */ bool supportsOperation( OutDevSupportType ) const; - void Set3DContext( OutDev3D* p3DContext ) { mp3DContext = p3DContext; } - - OutDev3D* Get3DContext() const { return mp3DContext; } - OpenGL* GetOpenGL(); vcl::PDFWriterImpl* GetPDFWriter() const { return mpPDFWriter; } void SetExtOutDevData( vcl::ExtOutDevData* pExtOutDevData ) { mpExtOutDevData = pExtOutDevData; } diff --git a/vcl/inc/vcl/outdev3d.hxx b/vcl/inc/vcl/outdev3d.hxx index b519449a9769..e69de29bb2d1 100644 --- a/vcl/inc/vcl/outdev3d.hxx +++ b/vcl/inc/vcl/outdev3d.hxx @@ -1,49 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: outdev3d.hxx,v $ - * $Revision: 1.3 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_OUTDEV3D_HXX -#define _SV_OUTDEV3D_HXX - -#include <vcl/sv.h> -#include <vcl/dllapi.h> - -class OutputDevice; - -// ------------ -// - OutDev3D - -// ------------ - -class VCL_DLLPUBLIC OutDev3D -{ -public: - virtual void Destroy( OutputDevice* pOutDev ) = 0; -}; - -#endif // _SV_OUTDEV3D_HXX diff --git a/vcl/inc/vcl/salinst.hxx b/vcl/inc/vcl/salinst.hxx index f00505e8edbd..cf88b7813ec8 100644 --- a/vcl/inc/vcl/salinst.hxx +++ b/vcl/inc/vcl/salinst.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.hxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.154.1 $ * * This file is part of OpenOffice.org. * @@ -47,7 +47,6 @@ struct ImplJobSetup; class SalGraphics; class SalFrame; class SalObject; -class SalOpenGL; class SalMenu; class SalMenuItem; class SalVirtualDevice; @@ -124,8 +123,6 @@ public: // SalTimer virtual SalTimer* CreateSalTimer() = 0; - // SalOpenGL - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ) = 0; // SalI18NImeStatus virtual SalI18NImeStatus* CreateI18NImeStatus() = 0; // SalSystem diff --git a/vcl/inc/vcl/salogl.hxx b/vcl/inc/vcl/salogl.hxx index dbd791572bf6..e69de29bb2d1 100644 --- a/vcl/inc/vcl/salogl.hxx +++ b/vcl/inc/vcl/salogl.hxx @@ -1,83 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.hxx,v $ - * $Revision: 1.3 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOGL_HXX -#define _SV_SALOGL_HXX - -#define _OPENGL_EXT - -#include <tools/gen.hxx> - -#define _SVUNX_H -#include <vcl/sv.h> -#include <vcl/dllapi.h> -#include <vcl/salotype.hxx> - -// ----------------- -// - State defines - -// ----------------- - -#define OGL_STATE_UNLOADED (0x00000000) -#define OGL_STATE_INVALID (0x00000001) -#define OGL_STATE_VALID (0x00000002) - -#ifdef WNT -#define __OPENGL_CALL __stdcall -#else -#define __OPENGL_CALL -#endif - -extern "C" -{ -typedef void( __OPENGL_CALL *oglFunction )(void); -} - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; - -class VCL_DLLPUBLIC SalOpenGL -{ -public: - - SalOpenGL() {} - virtual ~SalOpenGL(); - - virtual bool IsValid() = 0; - virtual oglFunction GetOGLFnc( const char * ) = 0; - virtual void OGLEntry( SalGraphics* pGraphics ) = 0; - virtual void OGLExit( SalGraphics* pGraphics ) = 0; - virtual void StartScene( SalGraphics* pGraphics ) = 0; - virtual void StopScene() = 0; -}; - -#endif diff --git a/vcl/inc/vcl/salotype.hxx b/vcl/inc/vcl/salotype.hxx index ac804a511bd8..e69de29bb2d1 100644 --- a/vcl/inc/vcl/salotype.hxx +++ b/vcl/inc/vcl/salotype.hxx @@ -1,1133 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salotype.hxx,v $ - * $Revision: 1.3 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOTYPE_HXX -#define _SV_SALOTYPE_HXX - -#include <vcl/sv.h> - -// ------------ -// - typedefs - -// ------------ - -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - -// ----------- -// - Defines - -// ----------- - -/* Version */ -#define GL_VERSION_1_1 1 - -/* AccumOp */ -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 - -/* AlphaFunction */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* AttribMask */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff - -/* BeginMode */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* BlendingFactorDest */ -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 - -/* BlendingFactorSrc */ -/* GL_ZERO */ -/* GL_ONE */ -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -/* GL_SRC_ALPHA */ -/* GL_ONE_MINUS_SRC_ALPHA */ -/* GL_DST_ALPHA */ -/* GL_ONE_MINUS_DST_ALPHA */ - -/* Boolean */ -#define GL_TRUE 1 -#define GL_FALSE 0 - -/* ClearBufferMask */ -/* GL_COLOR_BUFFER_BIT */ -/* GL_ACCUM_BUFFER_BIT */ -/* GL_STENCIL_BUFFER_BIT */ -/* GL_DEPTH_BUFFER_BIT */ - -/* ClientArrayType */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ - -/* ClipPlaneName */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* ColorMaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* ColorMaterialParameter */ -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ -/* GL_EMISSION */ -/* GL_AMBIENT_AND_DIFFUSE */ - -/* ColorPointerType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* CullFaceMode */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* DataType */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* DepthFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* DrawBufferMode */ -#define GL_NONE 0 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C - -/* Enable */ -/* GL_FOG */ -/* GL_LIGHTING */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_LINE_STIPPLE */ -/* GL_POLYGON_STIPPLE */ -/* GL_CULL_FACE */ -/* GL_ALPHA_TEST */ -/* GL_BLEND */ -/* GL_INDEX_LOGIC_OP */ -/* GL_COLOR_LOGIC_OP */ -/* GL_DITHER */ -/* GL_STENCIL_TEST */ -/* GL_DEPTH_TEST */ -/* GL_CLIP_PLANE0 */ -/* GL_CLIP_PLANE1 */ -/* GL_CLIP_PLANE2 */ -/* GL_CLIP_PLANE3 */ -/* GL_CLIP_PLANE4 */ -/* GL_CLIP_PLANE5 */ -/* GL_LIGHT0 */ -/* GL_LIGHT1 */ -/* GL_LIGHT2 */ -/* GL_LIGHT3 */ -/* GL_LIGHT4 */ -/* GL_LIGHT5 */ -/* GL_LIGHT6 */ -/* GL_LIGHT7 */ -/* GL_TEXTURE_GEN_S */ -/* GL_TEXTURE_GEN_T */ -/* GL_TEXTURE_GEN_R */ -/* GL_TEXTURE_GEN_Q */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_POINT_SMOOTH */ -/* GL_LINE_SMOOTH */ -/* GL_POLYGON_SMOOTH */ -/* GL_SCISSOR_TEST */ -/* GL_COLOR_MATERIAL */ -/* GL_NORMALIZE */ -/* GL_AUTO_NORMAL */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_POLYGON_OFFSET_POINT */ -/* GL_POLYGON_OFFSET_LINE */ -/* GL_POLYGON_OFFSET_FILL */ - -/* ErrorCode */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* FeedBackMode */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 - -/* FeedBackToken */ -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 - -/* FogMode */ -/* GL_LINEAR */ -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* FogParameter */ -/* GL_FOG_COLOR */ -/* GL_FOG_DENSITY */ -/* GL_FOG_END */ -/* GL_FOG_INDEX */ -/* GL_FOG_MODE */ -/* GL_FOG_START */ - -/* FrontFaceDirection */ -#define GL_CW 0x0900 -#define GL_CCW 0x0901 - -/* GetMapTarget */ -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* GetPixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* GetPointerTarget */ -/* GL_VERTEX_ARRAY_POINTER */ -/* GL_NORMAL_ARRAY_POINTER */ -/* GL_COLOR_ARRAY_POINTER */ -/* GL_INDEX_ARRAY_POINTER */ -/* GL_TEXTURE_COORD_ARRAY_POINTER */ -/* GL_EDGE_FLAG_ARRAY_POINTER */ - -/* GetTarget */ -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -/* GL_TEXTURE_BINDING_1D */ -/* GL_TEXTURE_BINDING_2D */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_VERTEX_ARRAY_SIZE */ -/* GL_VERTEX_ARRAY_TYPE */ -/* GL_VERTEX_ARRAY_STRIDE */ -/* GL_NORMAL_ARRAY_TYPE */ -/* GL_NORMAL_ARRAY_STRIDE */ -/* GL_COLOR_ARRAY_SIZE */ -/* GL_COLOR_ARRAY_TYPE */ -/* GL_COLOR_ARRAY_STRIDE */ -/* GL_INDEX_ARRAY_TYPE */ -/* GL_INDEX_ARRAY_STRIDE */ -/* GL_TEXTURE_COORD_ARRAY_SIZE */ -/* GL_TEXTURE_COORD_ARRAY_TYPE */ -/* GL_TEXTURE_COORD_ARRAY_STRIDE */ -/* GL_EDGE_FLAG_ARRAY_STRIDE */ -/* GL_POLYGON_OFFSET_FACTOR */ -/* GL_POLYGON_OFFSET_UNITS */ - -/* GetTextureParameter */ -/* GL_TEXTURE_MAG_FILTER */ -/* GL_TEXTURE_MIN_FILTER */ -/* GL_TEXTURE_WRAP_S */ -/* GL_TEXTURE_WRAP_T */ -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -/* GL_TEXTURE_RED_SIZE */ -/* GL_TEXTURE_GREEN_SIZE */ -/* GL_TEXTURE_BLUE_SIZE */ -/* GL_TEXTURE_ALPHA_SIZE */ -/* GL_TEXTURE_LUMINANCE_SIZE */ -/* GL_TEXTURE_INTENSITY_SIZE */ -/* GL_TEXTURE_PRIORITY */ -/* GL_TEXTURE_RESIDENT */ - -/* HintMode */ -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* HintTarget */ -/* GL_PERSPECTIVE_CORRECTION_HINT */ -/* GL_POINT_SMOOTH_HINT */ -/* GL_LINE_SMOOTH_HINT */ -/* GL_POLYGON_SMOOTH_HINT */ -/* GL_FOG_HINT */ - -/* IndexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* LightModelParameter */ -/* GL_LIGHT_MODEL_AMBIENT */ -/* GL_LIGHT_MODEL_LOCAL_VIEWER */ -/* GL_LIGHT_MODEL_TWO_SIDE */ - -/* LightName */ -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 - -/* LightParameter */ -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 - -/* InterleavedArrays */ -/* GL_V2F */ -/* GL_V3F */ -/* GL_C4UB_V2F */ -/* GL_C4UB_V3F */ -/* GL_C3F_V3F */ -/* GL_N3F_V3F */ -/* GL_C4F_N3F_V3F */ -/* GL_T2F_V3F */ -/* GL_T4F_V4F */ -/* GL_T2F_C4UB_V3F */ -/* GL_T2F_C3F_V3F */ -/* GL_T2F_N3F_V3F */ -/* GL_T2F_C4F_N3F_V3F */ -/* GL_T4F_C4F_N3F_V4F */ - -/* ListMode */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 - -/* ListNameType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_2_BYTES */ -/* GL_3_BYTES */ -/* GL_4_BYTES */ - -/* LogicOp */ -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F - -/* MapTarget */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ - -/* MaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* MaterialParameter */ -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ - -/* MatrixMode */ -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* MeshMode1 */ -/* GL_POINT */ -/* GL_LINE */ - -/* MeshMode2 */ -/* GL_POINT */ -/* GL_LINE */ -/* GL_FILL */ - -/* NormalPointerType */ -/* GL_BYTE */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* PixelCopyType */ -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 - -/* PixelFormat */ -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A - -/* PixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* PixelStore */ -/* GL_UNPACK_SWAP_BYTES */ -/* GL_UNPACK_LSB_FIRST */ -/* GL_UNPACK_ROW_LENGTH */ -/* GL_UNPACK_SKIP_ROWS */ -/* GL_UNPACK_SKIP_PIXELS */ -/* GL_UNPACK_ALIGNMENT */ -/* GL_PACK_SWAP_BYTES */ -/* GL_PACK_LSB_FIRST */ -/* GL_PACK_ROW_LENGTH */ -/* GL_PACK_SKIP_ROWS */ -/* GL_PACK_SKIP_PIXELS */ -/* GL_PACK_ALIGNMENT */ - -/* PixelTransfer */ -/* GL_MAP_COLOR */ -/* GL_MAP_STENCIL */ -/* GL_INDEX_SHIFT */ -/* GL_INDEX_OFFSET */ -/* GL_RED_SCALE */ -/* GL_RED_BIAS */ -/* GL_GREEN_SCALE */ -/* GL_GREEN_BIAS */ -/* GL_BLUE_SCALE */ -/* GL_BLUE_BIAS */ -/* GL_ALPHA_SCALE */ -/* GL_ALPHA_BIAS */ -/* GL_DEPTH_SCALE */ -/* GL_DEPTH_BIAS */ - -/* PixelType */ -#define GL_BITMAP 0x1A00 -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ - -/* PolygonMode */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 - -/* ReadBufferMode */ -/* GL_FRONT_LEFT */ -/* GL_FRONT_RIGHT */ -/* GL_BACK_LEFT */ -/* GL_BACK_RIGHT */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_LEFT */ -/* GL_RIGHT */ -/* GL_AUX0 */ -/* GL_AUX1 */ -/* GL_AUX2 */ -/* GL_AUX3 */ - -/* RenderingMode */ -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 - -/* ShadingModel */ -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 - -/* StencilFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* StencilOp */ -/* GL_ZERO */ -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -/* GL_INVERT */ - -/* StringName */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* TextureCoordName */ -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* TexCoordPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* TextureEnvMode */ -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -/* GL_BLEND */ -/* GL_REPLACE */ - -/* TextureEnvParameter */ -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 - -/* TextureEnvTarget */ -#define GL_TEXTURE_ENV 0x2300 - -/* TextureGenMode */ -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 - -/* TextureGenParameter */ -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 - -/* TextureMagFilter */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 - -/* TextureMinFilter */ -/* GL_NEAREST */ -/* GL_LINEAR */ -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* TextureParameterName */ -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -/* GL_TEXTURE_BORDER_COLOR */ -/* GL_TEXTURE_PRIORITY */ - -/* TextureTarget */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_PROXY_TEXTURE_1D */ -/* GL_PROXY_TEXTURE_2D */ - -/* TextureWrapMode */ -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 - -/* VertexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* ClientAttribMask */ -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -/* polygon_offset */ -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* texture */ -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 - -/* texture_object */ -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 - -/* vertex_array */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Extensions */ -#define GL_EXT_vertex_array 1 -#define GL_WIN_swap_hint 1 -#define GL_EXT_bgra 1 -#define GL_EXT_paletted_texture 1 - -/* EXT_vertex_array */ -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#define GL_DOUBLE_EXT GL_DOUBLE - -/* EXT_bgra */ -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 - -/* EXT_paletted_texture */ - -/* These must match the GL_COLOR_TABLE_*_SGI enumerants */ -#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF - -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 - -/* For compatibility with OpenGL v1.0 */ -#define GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT - -#endif // _SV_SALOTYPE - diff --git a/vcl/os2/inc/salinst.h b/vcl/os2/inc/salinst.h index 1183b61f15a6..83d736592a93 100644 --- a/vcl/os2/inc/salinst.h +++ b/vcl/os2/inc/salinst.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.h,v $ - * $Revision: 1.7 $ + * $Revision: 1.7.74.1 $ * * This file is part of OpenOffice.org. * @@ -88,7 +88,6 @@ public: virtual String GetDefaultPrinter(); virtual SalSound* CreateSalSound(); virtual SalTimer* CreateSalTimer(); - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ); virtual SalI18NImeStatus* CreateI18NImeStatus(); virtual SalSystem* CreateSalSystem(); virtual SalBitmap* CreateSalBitmap(); diff --git a/vcl/os2/inc/salogl.h b/vcl/os2/inc/salogl.h index cee1d25ebe10..e69de29bb2d1 100644 --- a/vcl/os2/inc/salogl.h +++ b/vcl/os2/inc/salogl.h @@ -1,166 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.h,v $ - * $Revision: 1.5 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOGL_H -#define _SV_SALOGL_H - -#define _OPENGL_EXT - -#include <tools/gen.hxx> -#include <vcl/sv.h> -//#ifndef _SV_SALOTYPE_HXX -//#include <salotype.hxx> -//#endif -#include <vcl/salogl.hxx> - -// ------------------ -// - OpenGL defines - -// ------------------ - -#define PGL_USE_GL 1 -#define PGL_BUFFER_SIZE 2 -#define PGL_LEVEL 3 -#define PGL_RGBA 4 -#define PGL_DOUBLEBUFFER 5 -#define PGL_STEREO 6 -#define PGL_AUX_BUFFERS 7 -#define PGL_RED_SIZE 8 -#define PGL_GREEN_SIZE 9 -#define PGL_BLUE_SIZE 10 -#define PGL_ALPHA_SIZE 11 -#define PGL_DEPTH_SIZE 12 -#define PGL_STENCIL_SIZE 13 -#define PGL_ACCUM_RED_SIZE 14 -#define PGL_ACCUM_GREEN_SIZE 15 -#define PGL_ACCUM_BLUE_SIZE 16 -#define PGL_ACCUM_ALPHA_SIZE 17 -#define PGL_SINGLEBUFFER 18 - -// ----------------- -// - State defines - -// ----------------- - -#define OGL_STATE_UNLOADED (0x00000000) -#define OGL_STATE_INVALID (0x00000001) -#define OGL_STATE_VALID (0x00000002) - -// ---------- -// - Macros - -// ---------- - -#define DECL_OGLFNC( FncName ) static OGLFnc##FncName pFnc##FncName - -// ------------------------------- -// - Additional typedefs for init. -// ------------------------------- - -typedef struct visualconfig -{ - unsigned long vid; /*Visual ID*/ - BOOL rgba; - int redSize, greenSize, blueSize, alphaSize; - ULONG redMask, greenMask, blueMask; - int accumRedSize, accumGreenSize, accumBlueSize, accumAlphaSize; - BOOL doubleBuffer; - BOOL stereo; - int bufferSize; - int depthSize; - int stencilSize; - int auxBuffers; - int level; - PVOID reserved; - struct visualconfig *next; -} -VISUALCONFIG, *PVISUALCONFIG; - -extern "C" -{ - typedef LHANDLE HGC; - typedef PVISUALCONFIG* ( *APIENTRY OGLFncQueryConfigs )( HAB hab, ... ); - typedef PVISUALCONFIG ( *APIENTRY OGLFncChooseConfig )( HAB hab, int *attriblist, ... ); - typedef HGC ( *APIENTRY OGLFncCreateContext )( HAB hab, PVISUALCONFIG pVisualConfig, HGC Sharelist, BOOL IsDirect, ... ); - typedef BOOL ( *APIENTRY OGLFncDestroyContext )( HAB hab, HGC hgc, ... ); - typedef HGC ( *APIENTRY OGLFncGetCurrentContext )( HAB hab, ... ); - typedef BOOL ( *APIENTRY OGLFncMakeCurrent )( HAB hab, HGC hgc, HWND hwnd, ... ); - typedef LONG ( *APIENTRY OGLFncQueryCapability)( HAB hab, ... ); -} - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; -class String; - -//class SalOpenGL -class Os2SalOpenGL : public SalOpenGL -{ -private: - - static HMODULE mhOGLLib; - static HGC mhOGLContext; - static HDC mhOGLLastDC; - static ULONG mnOGLState; - -#if 0 -private: - - DECL_OGLFNC( QueryConfigs ); - DECL_OGLFNC( ChooseConfig ); - DECL_OGLFNC( CreateContext ); - DECL_OGLFNC( DestroyContext ); - DECL_OGLFNC( GetCurrentContext ); - DECL_OGLFNC( MakeCurrent ); - DECL_OGLFNC( QueryCapability ); -#endif - -private: - - static BOOL ImplInitLib(); - static BOOL ImplInit(); - static void ImplFreeLib(); - -public: - - Os2SalOpenGL( SalGraphics* ); - virtual ~Os2SalOpenGL(); - - virtual bool IsValid(); - virtual oglFunction GetOGLFnc( const char * ); - virtual void OGLEntry( SalGraphics* pGraphics ); - virtual void OGLExit( SalGraphics* pGraphics ); - virtual void StartScene( SalGraphics* pGraphics ); - virtual void StopScene(); - - static void Release(); - -}; - -#endif // _SV_SALOGL_H diff --git a/vcl/os2/source/app/salinst.cxx b/vcl/os2/source/app/salinst.cxx index 4d0c5168bef3..6632daff90ef 100644 --- a/vcl/os2/source/app/salinst.cxx +++ b/vcl/os2/source/app/salinst.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.cxx,v $ - * $Revision: 1.8 $ + * $Revision: 1.8.74.1 $ * * This file is part of OpenOffice.org. * @@ -53,7 +53,6 @@ #include <salobj.h> #include <saltimer.h> #include <salsound.h> -#include <salogl.h> #include <salbmp.h> #include <vcl/salimestatus.hxx> #include <vcl/timer.hxx> @@ -829,13 +828,6 @@ SalSound* Os2SalInstance::CreateSalSound() // ----------------------------------------------------------------------- -SalOpenGL* Os2SalInstance::CreateSalOpenGL( SalGraphics* pGraphics ) -{ - return new Os2SalOpenGL( pGraphics ); -} - -// ----------------------------------------------------------------------- - SalBitmap* Os2SalInstance::CreateSalBitmap() { return new Os2SalBitmap(); diff --git a/vcl/os2/source/gdi/makefile.mk b/vcl/os2/source/gdi/makefile.mk index 2efd330dd6f4..0f740490898f 100644 --- a/vcl/os2/source/gdi/makefile.mk +++ b/vcl/os2/source/gdi/makefile.mk @@ -8,7 +8,7 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.7 $ +# $Revision: 1.7.154.1 $ # # This file is part of OpenOffice.org. # @@ -45,16 +45,14 @@ YD00_CXXFILES= salgdi.cxx \ salgdi3.cxx \ salvd.cxx \ salprn.cxx \ - salbmp.cxx \ - salogl.cxx - + salbmp.cxx + SLOFILES= $(SLO)$/salgdi.obj \ $(SLO)$/salgdi2.obj \ $(SLO)$/salgdi3.obj \ $(SLO)$/salvd.obj \ $(SLO)$/salprn.obj \ $(SLO)$/salbmp.obj \ - $(SLO)$/salogl.obj \ $(SLO)$/os2layout.obj # --- Targets ------------------------------------------------------ diff --git a/vcl/os2/source/gdi/salogl.cxx b/vcl/os2/source/gdi/salogl.cxx index 351a3ccecae4..e69de29bb2d1 100644 --- a/vcl/os2/source/gdi/salogl.cxx +++ b/vcl/os2/source/gdi/salogl.cxx @@ -1,234 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.cxx,v $ - * $Revision: 1.5 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <malloc.h> -#define INCL_DOSMODULEMGR -#include <svpm.h> -#define _SV_SALOGL_CXX -#include <salogl.h> -#include <salgdi.h> -#include <saldata.hxx> - -// ------------ -// - Typedefs - -// ------------ - -typedef VISUALCONFIG* PCFG; - -// ------------ -// - Lib-Name - -// ------------ - -#define OGL_LIBNAME "OPENGL" - -// ---------- -// - Macros - -// ---------- - -#define GET_OGLFNC_PGL( FncName ) \ - nResult = DosQueryProcAddr( mhOGLLib, 0, (PSZ) "pgl" #FncName, (PFN*)&pFnc##FncName ); \ -if( nResult != 0 ) \ - bRet = FALSE; - -// ------------------------------------------------------------------------ - -#define GET_OGLFNC_GL( FncName ) \ - nResult = DosQueryProcAddr( mhOGLLib, 0, "gl" #FncName, (PFN*)&pFnc##FncName ); \ -if( nResult != 0 ) \ - bRet = FALSE; - -// ----------------- -// - Statics init. - -// ----------------- - -// Members -HMODULE Os2SalOpenGL::mhOGLLib = 0; -HGC Os2SalOpenGL::mhOGLContext = 0; -HDC Os2SalOpenGL::mhOGLLastDC = 0; -ULONG Os2SalOpenGL::mnOGLState = OGL_STATE_UNLOADED; - -// Internal use -#define INIT_OGLFNC( a, FncName ) static OGLFnc##FncName pFnc##FncName = NULL; - -INIT_OGLFNC( Os2SalOpenGL, ChooseConfig ); -INIT_OGLFNC( Os2SalOpenGL, QueryConfigs ); -INIT_OGLFNC( Os2SalOpenGL, CreateContext ); -INIT_OGLFNC( Os2SalOpenGL, DestroyContext ); -INIT_OGLFNC( Os2SalOpenGL, GetCurrentContext ); -INIT_OGLFNC( Os2SalOpenGL, MakeCurrent ); -INIT_OGLFNC( Os2SalOpenGL, QueryCapability ); - -// ------------- -// - Os2SalOpenGL - -// ------------- - -Os2SalOpenGL::Os2SalOpenGL( SalGraphics* pGraphics ) -{ - // Set mhOGLLastDC only the first time a - // Os2SalOpenGL object is created; we need - // this DC in Os2SalOpenGL::Create(); - if( OGL_STATE_UNLOADED == mnOGLState ) - mhOGLLastDC = static_cast<Os2SalGraphics*>(pGraphics)->mhDC; -} - -// ------------------------------------------------------------------------ - -Os2SalOpenGL::~Os2SalOpenGL() -{ -} - -// ------------------------------------------------------------------------ - -bool Os2SalOpenGL::IsValid() -{ - - if( OGL_STATE_UNLOADED == mnOGLState ) - { - if( ImplInitLib() ) - { - if( ImplInit() ) - { - HAB hAB = GetSalData()->mhAB; - VISUALCONFIG aCfg = { PGL_RGBA, PGL_RED_SIZE, 4, PGL_GREEN_SIZE, 4,PGL_BLUE_SIZE, 4, PGL_DOUBLEBUFFER, 0 }; - PCFG* ppCfgs = pFncQueryConfigs( hAB ); - - if( *ppCfgs ) - { - if( ( mhOGLContext = pFncCreateContext( hAB, *ppCfgs, NULL, FALSE ) ) != 0 ) - { - pFncMakeCurrent( hAB, mhOGLContext, WinWindowFromDC( mhOGLLastDC ) ); - mnOGLState = OGL_STATE_VALID; - } - } - } - else - { - ImplFreeLib(); - mnOGLState = OGL_STATE_INVALID; - } - } - else - mnOGLState = OGL_STATE_INVALID; - } - - return mnOGLState == OGL_STATE_VALID ? TRUE : FALSE; -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::Release() -{ - ImplFreeLib(); -} - -// ------------------------------------------------------------------------ - -oglFunction Os2SalOpenGL::GetOGLFnc( const char* rFncName ) -{ - void* pRet; - - if( mhOGLLib ) - { - APIRET rc; - PFN pFunction; - - rc = DosQueryProcAddr( mhOGLLib, 0, (PSZ)rFncName, &pFunction ); - pRet = rc == NULL ? (void*)pFunction : NULL; - } - else - pRet = NULL; - - return (oglFunction)pRet; -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::OGLEntry( SalGraphics* pSGraphics ) -{ - Os2SalGraphics* pGraphics = static_cast<Os2SalGraphics*>(pSGraphics); - if( pGraphics->mhDC != mhOGLLastDC ) - { - mhOGLLastDC = pGraphics->mhDC; - pFncMakeCurrent( GetSalData()->mhAB, mhOGLContext, WinWindowFromDC( mhOGLLastDC ) ); - } -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::OGLExit( SalGraphics* pGraphics ) -{ -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::StartScene( SalGraphics* pGraphics ) -{ -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::StopScene() -{ -} - -// ------------------------------------------------------------------------ - -BOOL Os2SalOpenGL::ImplInitLib() -{ - DosLoadModule ((PSZ)0, 0, (PSZ)OGL_LIBNAME, &mhOGLLib ); - return( mhOGLLib != NULL ); -} - -// ------------------------------------------------------------------------ - -void Os2SalOpenGL::ImplFreeLib() -{ - if( mhOGLLib ) - DosFreeModule( mhOGLLib ); -} - -// ------------------------------------------------------------------------ - -BOOL Os2SalOpenGL::ImplInit() -{ - ULONG nResult; - BOOL bRet = TRUE; - - // Internal use - GET_OGLFNC_PGL( ChooseConfig ); - GET_OGLFNC_PGL( QueryConfigs ); - GET_OGLFNC_PGL( CreateContext ); - GET_OGLFNC_PGL( DestroyContext ); - GET_OGLFNC_PGL( GetCurrentContext ); - GET_OGLFNC_PGL( MakeCurrent ); - GET_OGLFNC_PGL( QueryCapability ); - - return bRet; -} diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst index 919fdc5f944e..c7a5f7117642 100644 --- a/vcl/prj/d.lst +++ b/vcl/prj/d.lst @@ -82,9 +82,7 @@ mkdir: %_DEST%\inc%_EXT%\vcl\plug\vcl ..\inc\vcl\morebtn.hxx %_DEST%\inc%_EXT%\vcl\morebtn.hxx ..\inc\vcl\msgbox.hxx %_DEST%\inc%_EXT%\vcl\msgbox.hxx ..\inc\vcl\octree.hxx %_DEST%\inc%_EXT%\vcl\octree.hxx -..\inc\vcl\opengl.hxx %_DEST%\inc%_EXT%\vcl\opengl.hxx ..\inc\vcl\outdev.hxx %_DEST%\inc%_EXT%\vcl\outdev.hxx -..\inc\vcl\outdev3d.hxx %_DEST%\inc%_EXT%\vcl\outdev3d.hxx ..\inc\vcl\pointr.hxx %_DEST%\inc%_EXT%\vcl\pointr.hxx ..\inc\vcl\print.hxx %_DEST%\inc%_EXT%\vcl\print.hxx ..\inc\vcl\prndlg.hxx %_DEST%\inc%_EXT%\vcl\prndlg.hxx @@ -95,7 +93,6 @@ mkdir: %_DEST%\inc%_EXT%\vcl\plug\vcl ..\inc\vcl\salbtype.hxx %_DEST%\inc%_EXT%\vcl\salbtype.hxx ..\inc\vcl\salctype.hxx %_DEST%\inc%_EXT%\vcl\salctype.hxx ..\inc\vcl\salgtype.hxx %_DEST%\inc%_EXT%\vcl\salgtype.hxx -..\inc\vcl\salotype.hxx %_DEST%\inc%_EXT%\vcl\salotype.hxx ..\inc\vcl\salstype.hxx %_DEST%\inc%_EXT%\vcl\salstype.hxx ..\inc\vcl\salnativewidgets.hxx %_DEST%\inc%_EXT%\vcl\salnativewidgets.hxx ..\inc\vcl\scrbar.hxx %_DEST%\inc%_EXT%\vcl\scrbar.hxx diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 69868ed38e55..36b35ee25833 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salvtables.cxx,v $ - * $Revision: 1.14 $ + * $Revision: 1.14.30.1 $ * * This file is part of OpenOffice.org. * @@ -36,7 +36,6 @@ #include <vcl/salvd.hxx> #include <vcl/salprn.hxx> #include <vcl/saltimer.hxx> -#include <vcl/salogl.hxx> #include <vcl/salimestatus.hxx> #include <vcl/salsys.hxx> #include <vcl/salbmp.hxx> @@ -70,10 +69,6 @@ SalTimer::~SalTimer() { } -SalOpenGL::~SalOpenGL() -{ -} - SalBitmap::~SalBitmap() { } diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index a2f8c947c241..bc06fcb535d6 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svmain.cxx,v $ - * $Revision: 1.73 $ + * $Revision: 1.73.92.1 $ * * This file is part of OpenOffice.org. * @@ -50,7 +50,6 @@ #include <svsys.h> #endif #include <vcl/salinst.hxx> -#include <vcl/salogl.hxx> #include <vcl/salwtype.hxx> #ifndef _VOS_SIGNAL_HXX #include <vos/signal.hxx> diff --git a/vcl/source/gdi/makefile.mk b/vcl/source/gdi/makefile.mk index 7d68fbe40d3f..977e5386fe97 100644 --- a/vcl/source/gdi/makefile.mk +++ b/vcl/source/gdi/makefile.mk @@ -8,7 +8,7 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.33 $ +# $Revision: 1.33.132.1 $ # # This file is part of OpenOffice.org. # @@ -99,7 +99,6 @@ SLOFILES= $(SLO)$/salmisc.obj \ $(SLO)$/regband.obj \ $(SLO)$/region.obj \ $(SLO)$/wall.obj \ - $(SLO)$/opengl.obj \ $(SLO)$/fontcfg.obj \ $(SLO)$/base14.obj \ $(SLO)$/pdfwriter.obj \ diff --git a/vcl/source/gdi/opengl.cxx b/vcl/source/gdi/opengl.cxx deleted file mode 100644 index fa4ae693e2a1..000000000000 --- a/vcl/source/gdi/opengl.cxx +++ /dev/null @@ -1,1429 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: opengl.cxx,v $ - * $Revision: 1.16 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_vcl.hxx" - -#include <svsys.h> -#include <vcl/window.hxx> -#include <vcl/outdev.hxx> -#include <vcl/salogl.hxx> -#include <vcl/opengl.hxx> -#include <vcl/salgdi.hxx> -#include <vcl/svdata.hxx> -#include <vcl/salinst.hxx> -#include <vcl/window.h> - - -#include <vcl/svapp.hxx> -#include <vos/mutex.hxx> - -// ----------- -// - Defines - -// ----------- - -// ----------------------- -// - Fnc-Pointer-Typedef - -// ----------------------- - -typedef void ( __OPENGL_CALL *OGLFncClearDepth )( GLclampd fDepth ); -typedef void ( __OPENGL_CALL *OGLFncDepthFunc )( GLenum fFunc ); -typedef void ( __OPENGL_CALL *OGLFncEnable )( GLenum eCap ); -typedef void ( __OPENGL_CALL *OGLFncDisable )( GLenum eCap ); -typedef void ( __OPENGL_CALL *OGLFncDepthMask )( GLboolean bFlag ); -typedef void ( __OPENGL_CALL *OGLFncShadeModel )( GLenum eMode ); -typedef void ( __OPENGL_CALL *OGLFncEdgeFlag )( GLboolean bFlag ); -typedef void ( __OPENGL_CALL *OGLFncClear )( GLbitfield nMask ); -typedef void ( __OPENGL_CALL *OGLFncFlush )( void ); -typedef void ( __OPENGL_CALL *OGLFncFinish )( void ); -typedef void ( __OPENGL_CALL *OGLFncViewport )( GLint nX, GLint nY, GLsizei nWidth, GLsizei nHeight ); -typedef void ( __OPENGL_CALL *OGLFncBegin )( GLenum eMode ); -typedef void ( __OPENGL_CALL *OGLFncEnd )( void ); -typedef void ( __OPENGL_CALL *OGLFncVertex3dv )( const GLdouble *fV ); -typedef void ( __OPENGL_CALL *OGLFncNormal3dv )( const GLdouble *fV ); -typedef void ( __OPENGL_CALL *OGLFncColor4ub )( GLubyte cRed, GLubyte cGreen, GLubyte cBlue, GLubyte cAlpha ); -typedef void ( __OPENGL_CALL *OGLFncMaterialfv )( GLenum eFace, GLenum ePNname, const GLfloat *fParams ); -typedef void ( __OPENGL_CALL *OGLFncMaterialf )( GLenum eFace, GLenum ePName, GLfloat fParam ); -typedef void ( __OPENGL_CALL *OGLFncLightModelfv )( GLenum ePNname, const GLfloat *fParams ); -typedef void ( __OPENGL_CALL *OGLFncLightModelf )( GLenum ePname, GLfloat fParam ); -typedef void ( __OPENGL_CALL *OGLFncLightfv )( GLenum eLight, GLenum ePNname, const GLfloat *fParams ); -typedef void ( __OPENGL_CALL *OGLFncLightf )( GLenum eLight, GLenum ePname, GLfloat fParam ); -typedef void ( __OPENGL_CALL *OGLFncPolygonMode )( GLenum eFace, GLenum eMode ); -typedef void ( __OPENGL_CALL *OGLFncCullFace )( GLenum eMode ); -typedef void ( __OPENGL_CALL *OGLFncPointSize )( GLfloat fSize ); -typedef void ( __OPENGL_CALL *OGLFncLineWidth )( GLfloat fWidth ); -typedef void ( __OPENGL_CALL *OGLFncMatrixMode )( GLenum eMode ); -typedef void ( __OPENGL_CALL *OGLFncLoadMatrixd )( const GLdouble *fM ); -typedef void ( __OPENGL_CALL *OGLFncTexCoord2dv )( const GLdouble *pParams ); -typedef void ( __OPENGL_CALL *OGLFncTexCoord3dv )( const GLdouble *fV ); -typedef void ( __OPENGL_CALL *OGLFncTexImage1D )( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); -typedef void ( __OPENGL_CALL *OGLFncTexImage2D )( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); -typedef void ( __OPENGL_CALL *OGLFncCopyTexImage1D )( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ); -typedef void ( __OPENGL_CALL *OGLFncCopyTexImage2D )( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); -typedef void ( __OPENGL_CALL *OGLFncCopyTexSubImage1D )( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); -typedef void ( __OPENGL_CALL *OGLFncCopyTexSubImage2D )( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); -typedef void ( __OPENGL_CALL *OGLFncPixelTransferf )( GLenum pname, GLfloat param ); -typedef void ( __OPENGL_CALL *OGLFncPixelTransferi )( GLenum pname, GLint param ); -typedef void ( __OPENGL_CALL *OGLFncGetTexLevelParameterfv )( GLenum target, GLint level, GLenum pname, GLfloat *params ); -typedef void ( __OPENGL_CALL *OGLFncGetTexLevelParameteriv )( GLenum target, GLint level, GLenum pname, GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncGetTexParameterfv )( GLenum target, GLenum pname, GLfloat *params ); -typedef void ( __OPENGL_CALL *OGLFncGetTexParameteriv )( GLenum target, GLenum pname, GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncTexSubImage1D )( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ); -typedef void ( __OPENGL_CALL *OGLFncTexSubImage2D )( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); -typedef void ( __OPENGL_CALL *OGLFncPixelStoref )( GLenum pname, GLfloat param ); -typedef void ( __OPENGL_CALL *OGLFncPixelStorei )( GLenum pname, GLint param ); -typedef void ( __OPENGL_CALL *OGLFncGenTextures )( GLsizei n, GLuint *textures ); -typedef GLboolean ( __OPENGL_CALL *OGLFncIsTexture )( GLuint texture ); -typedef void ( __OPENGL_CALL *OGLFncBindTexture )( GLenum target, GLuint texture ); -typedef void ( __OPENGL_CALL *OGLFncDeleteTextures )( GLsizei n, const GLuint *textures ); -typedef GLboolean ( __OPENGL_CALL *OGLFncAreTexturesResident )( GLsizei n, const GLuint *textures, GLboolean *residences ); -typedef void ( __OPENGL_CALL *OGLFncPrioritizeTextures )( GLsizei n, const GLuint *textures, const GLclampf *priorities ); -typedef void ( __OPENGL_CALL *OGLFncTexEnvf )( GLenum target, GLenum pname, GLfloat param ); -typedef void ( __OPENGL_CALL *OGLFncTexEnvfv )( GLenum target, GLenum pname, const GLfloat *params ); -typedef void ( __OPENGL_CALL *OGLFncTexEnvi )( GLenum target, GLenum pname, GLint param ); -typedef void ( __OPENGL_CALL *OGLFncTexEnviv )( GLenum target, GLenum pname, const GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncTexParameterf )( GLenum target, GLenum pname, GLfloat param ); -typedef void ( __OPENGL_CALL *OGLFncTexParameterfv )( GLenum target, GLenum pname, const GLfloat *params ); -typedef void ( __OPENGL_CALL *OGLFncTexParameteri )( GLenum target, GLenum pname, GLint param ); -typedef void ( __OPENGL_CALL *OGLFncTexParameteriv )( GLenum target, GLenum pname, const GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncTexGend )( GLenum coord, GLenum pname, GLdouble param ); -typedef void ( __OPENGL_CALL *OGLFncTexGendv )( GLenum coord, GLenum pname, const GLdouble *params ); -typedef void ( __OPENGL_CALL *OGLFncTexGenf )( GLenum coord, GLenum pname, GLfloat param ); -typedef void ( __OPENGL_CALL *OGLFncTexGenfv )( GLenum coord, GLenum pname, const GLfloat *params ); -typedef void ( __OPENGL_CALL *OGLFncTexGeni )( GLenum coord, GLenum pname, GLint param ); -typedef void ( __OPENGL_CALL *OGLFncTexGeniv )( GLenum coord, GLenum pname, const GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncGetIntegerv )( GLenum pname, GLint *params ); -typedef void ( __OPENGL_CALL *OGLFncPolygonOffset ) ( GLfloat factor, GLfloat units ); -typedef void ( __OPENGL_CALL *OGLFncScissor ) ( GLint x, GLint y, GLsizei width, GLsizei height ); -typedef void ( __OPENGL_CALL *OGLFncEnableClientState ) ( GLenum array ); -typedef void ( __OPENGL_CALL *OGLFncDisableClientState ) ( GLenum array ); -typedef void ( __OPENGL_CALL *OGLFncVertexPointer ) ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncColorPointer ) ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncIndexPointer ) ( GLenum type, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncNormalPointer ) ( GLenum type, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncTexCoordPointer ) ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncEdgeFlagPointer ) ( GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncArrayElement ) ( GLint i ); -typedef void ( __OPENGL_CALL *OGLFncDrawElements ) ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); -typedef void ( __OPENGL_CALL *OGLFncDrawArrays ) ( GLenum mode, GLint first, GLsizei count ); -typedef void ( __OPENGL_CALL *OGLFncInterleavedArrays ) ( GLenum format, GLsizei stride, const GLvoid *pointer ); -typedef void ( __OPENGL_CALL *OGLFncLoadIdentity ) (); -typedef void ( __OPENGL_CALL *OGLFncBlendFunc ) ( GLenum sfactor, GLenum dfactor ); - -// ---------- -// - Macros - -// ---------- - -#define PGRAPHICS mpOutDev->mpGraphics - -#define OGL_INIT() (mpOGL && (mpOutDev->mpGraphics || mpOutDev->ImplGetGraphics())) - -#define INIT_OGLFNC( FncName ) static OGLFnc##FncName pImplOpenGLFnc##FncName = NULL -#define GET_OGLFNC_GL( FncName ) \ -pImplOpenGLFnc##FncName = (OGLFnc##FncName) mpOGL->GetOGLFnc( "gl" #FncName ); \ -if( !pImplOpenGLFnc##FncName ) bRet = FALSE; - -// ---------- -// - OpenGL - -// ---------- - -static BOOL bImplOpenGLFncPtrInitialized = FALSE; - -INIT_OGLFNC( ClearDepth ); -INIT_OGLFNC( DepthFunc ); -INIT_OGLFNC( Enable ); -INIT_OGLFNC( Disable ); -INIT_OGLFNC( DepthMask ); -INIT_OGLFNC( ShadeModel ); -INIT_OGLFNC( EdgeFlag ); -INIT_OGLFNC( Clear ); -INIT_OGLFNC( Flush ); -INIT_OGLFNC( Finish ); -INIT_OGLFNC( Viewport ); -INIT_OGLFNC( Begin ); -INIT_OGLFNC( End ); -INIT_OGLFNC( Vertex3dv ); -INIT_OGLFNC( Normal3dv ); -INIT_OGLFNC( Color4ub ); -INIT_OGLFNC( Materialfv ); -INIT_OGLFNC( Materialf ); -INIT_OGLFNC( LightModelfv ); -INIT_OGLFNC( LightModelf ); -INIT_OGLFNC( Lightfv ); -INIT_OGLFNC( Lightf ); -INIT_OGLFNC( PolygonMode ); -INIT_OGLFNC( CullFace ); -INIT_OGLFNC( PointSize ); -INIT_OGLFNC( LineWidth ); -INIT_OGLFNC( MatrixMode ); -INIT_OGLFNC( LoadMatrixd ); -INIT_OGLFNC( TexCoord2dv ); -INIT_OGLFNC( TexCoord3dv ); -INIT_OGLFNC( TexImage1D ); -INIT_OGLFNC( TexImage2D ); -INIT_OGLFNC( CopyTexImage1D ); -INIT_OGLFNC( CopyTexImage2D ); -INIT_OGLFNC( CopyTexSubImage1D ); -INIT_OGLFNC( CopyTexSubImage2D ); -INIT_OGLFNC( PixelTransferf ); -INIT_OGLFNC( PixelTransferi ); -INIT_OGLFNC( GetTexLevelParameterfv ); -INIT_OGLFNC( GetTexLevelParameteriv ); -INIT_OGLFNC( GetTexParameterfv ); -INIT_OGLFNC( GetTexParameteriv ); -INIT_OGLFNC( TexSubImage1D ); -INIT_OGLFNC( TexSubImage2D ); -INIT_OGLFNC( PixelStoref ); -INIT_OGLFNC( PixelStorei ); -INIT_OGLFNC( GenTextures ); -INIT_OGLFNC( IsTexture ); -INIT_OGLFNC( BindTexture ); -INIT_OGLFNC( DeleteTextures ); -INIT_OGLFNC( AreTexturesResident ); -INIT_OGLFNC( PrioritizeTextures ); -INIT_OGLFNC( TexEnvf ); -INIT_OGLFNC( TexEnvfv ); -INIT_OGLFNC( TexEnvi ); -INIT_OGLFNC( TexEnviv ); -INIT_OGLFNC( TexParameterf ); -INIT_OGLFNC( TexParameterfv ); -INIT_OGLFNC( TexParameteri ); -INIT_OGLFNC( TexParameteriv ); -INIT_OGLFNC( TexGend ); -INIT_OGLFNC( TexGendv ); -INIT_OGLFNC( TexGenf ); -INIT_OGLFNC( TexGenfv ); -INIT_OGLFNC( TexGeni ); -INIT_OGLFNC( TexGeniv ); -INIT_OGLFNC( GetIntegerv ); -INIT_OGLFNC( PolygonOffset ); -INIT_OGLFNC( Scissor ); - -INIT_OGLFNC( EnableClientState ); -INIT_OGLFNC( DisableClientState ); -INIT_OGLFNC( VertexPointer ); -INIT_OGLFNC( ColorPointer ); -INIT_OGLFNC( IndexPointer ); -INIT_OGLFNC( NormalPointer ); -INIT_OGLFNC( TexCoordPointer ); -INIT_OGLFNC( EdgeFlagPointer ); -INIT_OGLFNC( ArrayElement ); -INIT_OGLFNC( DrawElements ); -INIT_OGLFNC( DrawArrays ); -INIT_OGLFNC( InterleavedArrays ); - -INIT_OGLFNC( LoadIdentity ); -INIT_OGLFNC( BlendFunc ); - -// ------------------------------------------------------------------------ - -BOOL OpenGL::ImplInitFncPointers() -{ - BOOL bRet = TRUE; - - GET_OGLFNC_GL( ClearDepth ); - GET_OGLFNC_GL( DepthFunc ); - GET_OGLFNC_GL( Enable ); - GET_OGLFNC_GL( Disable ); - GET_OGLFNC_GL( DepthMask ); - GET_OGLFNC_GL( ShadeModel ); - GET_OGLFNC_GL( EdgeFlag ); - GET_OGLFNC_GL( Clear ); - GET_OGLFNC_GL( Flush ); - GET_OGLFNC_GL( Finish ); - GET_OGLFNC_GL( Viewport ); - GET_OGLFNC_GL( Begin ); - GET_OGLFNC_GL( End ); - GET_OGLFNC_GL( Vertex3dv ); - GET_OGLFNC_GL( Normal3dv ); - GET_OGLFNC_GL( Color4ub ); - GET_OGLFNC_GL( Materialfv ); - GET_OGLFNC_GL( Materialf ); - GET_OGLFNC_GL( LightModelfv ); - GET_OGLFNC_GL( LightModelf ); - GET_OGLFNC_GL( Lightfv ); - GET_OGLFNC_GL( Lightf ); - GET_OGLFNC_GL( PolygonMode ); - GET_OGLFNC_GL( CullFace ); - GET_OGLFNC_GL( PointSize ); - GET_OGLFNC_GL( LineWidth ); - GET_OGLFNC_GL( MatrixMode ); - GET_OGLFNC_GL( LoadMatrixd ); - GET_OGLFNC_GL( TexCoord2dv ); - GET_OGLFNC_GL( TexCoord3dv ); - GET_OGLFNC_GL( TexImage1D ); - GET_OGLFNC_GL( TexImage2D ); - GET_OGLFNC_GL( CopyTexImage1D ); - GET_OGLFNC_GL( CopyTexImage2D ); - GET_OGLFNC_GL( CopyTexSubImage1D ); - GET_OGLFNC_GL( CopyTexSubImage2D ); - GET_OGLFNC_GL( PixelTransferf ); - GET_OGLFNC_GL( PixelTransferi ); - GET_OGLFNC_GL( GetTexLevelParameterfv ); - GET_OGLFNC_GL( GetTexLevelParameteriv ); - GET_OGLFNC_GL( GetTexParameterfv ); - GET_OGLFNC_GL( GetTexParameteriv ); - GET_OGLFNC_GL( TexSubImage1D ); - GET_OGLFNC_GL( TexSubImage2D ); - GET_OGLFNC_GL( PixelStoref ); - GET_OGLFNC_GL( PixelStorei ); - GET_OGLFNC_GL( GenTextures ); - GET_OGLFNC_GL( IsTexture ); - GET_OGLFNC_GL( BindTexture ); - GET_OGLFNC_GL( DeleteTextures ); - GET_OGLFNC_GL( AreTexturesResident ); - GET_OGLFNC_GL( PrioritizeTextures ); - GET_OGLFNC_GL( TexEnvf ); - GET_OGLFNC_GL( TexEnvfv ); - GET_OGLFNC_GL( TexEnvi ); - GET_OGLFNC_GL( TexEnviv ); - GET_OGLFNC_GL( TexParameterf ); - GET_OGLFNC_GL( TexParameterfv ); - GET_OGLFNC_GL( TexParameteri ); - GET_OGLFNC_GL( TexParameteriv ); - GET_OGLFNC_GL( TexGend ); - GET_OGLFNC_GL( TexGendv ); - GET_OGLFNC_GL( TexGenf ); - GET_OGLFNC_GL( TexGenfv ); - GET_OGLFNC_GL( TexGeni ); - GET_OGLFNC_GL( TexGeniv ); - GET_OGLFNC_GL( GetIntegerv ); - GET_OGLFNC_GL( PolygonOffset ); - GET_OGLFNC_GL( Scissor ); - - GET_OGLFNC_GL( EnableClientState ); - GET_OGLFNC_GL( DisableClientState ); - GET_OGLFNC_GL( VertexPointer ); - GET_OGLFNC_GL( ColorPointer ); - GET_OGLFNC_GL( IndexPointer ); - GET_OGLFNC_GL( NormalPointer ); - GET_OGLFNC_GL( TexCoordPointer ); - GET_OGLFNC_GL( EdgeFlagPointer ); - GET_OGLFNC_GL( ArrayElement ); - GET_OGLFNC_GL( DrawElements ); - GET_OGLFNC_GL( DrawArrays ); - GET_OGLFNC_GL( InterleavedArrays ); - - GET_OGLFNC_GL( LoadIdentity ); - GET_OGLFNC_GL( BlendFunc ); - - return bRet; -} - -BOOL OpenGL::mbNoOGL = FALSE; - -// ------------------------------------------------------------------------ - -OpenGL::OpenGL( OutputDevice* pOutDev ) : - mpOutDev( pOutDev ) -{ - ImplInit(); -} - -// ------------------------------------------------------------------------ - -OpenGL::~OpenGL() -{ - delete mpOGL; -} - -// ------------------------------------------------------------------------ - -void OpenGL::ImplInit() -{ - if( ( PGRAPHICS || mpOutDev->ImplGetGraphics() ) && ! mbNoOGL ) - { - mpOGL = ImplGetSVData()->mpDefInst->CreateSalOpenGL( PGRAPHICS ); - - if ( !mpOGL->IsValid() || (!bImplOpenGLFncPtrInitialized && !ImplInitFncPointers()) ) - { - delete mpOGL; - mpOGL = NULL; - } - else - bImplOpenGLFncPtrInitialized = TRUE; - } - else - mpOGL = NULL; -} - -// ------------------------------------------------------------------------ - -void OpenGL::SetConnectOutputDevice( OutputDevice* pOutDev ) -{ - delete mpOGL; - mpOutDev = pOutDev; - ImplInit(); -} - -// ------------------------------------------------------------------------ - -void OpenGL::ClearDepth( GLclampd fDepth ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncClearDepth( fDepth ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DepthFunc( GLenum eFunc ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDepthFunc( eFunc ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Enable( GLenum eCap ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncEnable( eCap ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Disable( GLenum eCap ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDisable( eCap ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DepthMask( GLboolean bFlag ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDepthMask( bFlag ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::ShadeModel( GLenum eMode ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncShadeModel( eMode ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::EdgeFlag( GLboolean bFlag ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncEdgeFlag( bFlag ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Clear( GLbitfield nMask ) -{ - if( OGL_INIT() ) - { -#if defined UNX && ! defined MACOSX - mpOGL->StartScene( PGRAPHICS ); -#endif - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncClear( nMask ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Flush() -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncFlush(); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Finish() -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncFinish(); -#if defined UNX && ! defined MACOSX - mpOGL->StopScene(); -#endif - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Viewport( GLint nX, GLint nY, GLsizei nWidth, GLsizei nHeight ) -{ - if( OGL_INIT() ) - { - long nOutHeight; - - if( mpOutDev->GetOutDevType() == OUTDEV_WINDOW ) - nOutHeight = ( (Window*) mpOutDev )->ImplGetFrameWindow()->mnOutHeight; - else - nOutHeight = mpOutDev->mnOutHeight; - - mpOGL->OGLEntry( PGRAPHICS ); - - // --- RTL --- mirror viewport coordinates - if( mpOutDev->ImplHasMirroredGraphics() ) - { - long lx = nX + mpOutDev->mnOutOffX; - long lwidth = nWidth; - mpOutDev->mpGraphics->mirror( lx, lwidth, mpOutDev ); - nX = lx - mpOutDev->mnOutOffX; - } - pImplOpenGLFncViewport( nX + mpOutDev->mnOutOffX, - nOutHeight - nY - nHeight - mpOutDev->mnOutOffY, - nWidth, nHeight ); - - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Begin( GLenum eMode ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncBegin( eMode ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::End() -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncEnd(); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Vertex3dv( const GLdouble* fVar ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncVertex3dv( fVar ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Normal3dv( const GLdouble* fVar ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncNormal3dv( fVar ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Color4ub( GLubyte cRed, GLubyte cGreen, GLubyte cBlue, GLubyte cAlpha ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncColor4ub( cRed, cGreen, cBlue, cAlpha ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Materialfv( GLenum eFace, GLenum ePName, const GLfloat *fParams ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncMaterialfv( eFace, ePName, fParams ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Materialf( GLenum eFace, GLenum ePName, GLfloat fParam ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncMaterialf( eFace, ePName, fParam ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::LightModelfv( GLenum ePName, const GLfloat *fParams ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLightModelfv( ePName, fParams ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::LightModelf( GLenum ePName, GLfloat fParam ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLightModelf( ePName, fParam ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Lightfv( GLenum eLight, GLenum ePName, const GLfloat *fParams ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLightfv( eLight, ePName, fParams ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Lightf( GLenum eLight, GLenum ePName, GLfloat fParam ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLightf( eLight, ePName, fParam ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PolygonMode( GLenum eFace, GLenum eMode ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPolygonMode( eFace, eMode ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::CullFace( GLenum eMode ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncCullFace( eMode ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PointSize( GLfloat fSize ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPointSize( fSize ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::LineWidth( GLfloat fWidth ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLineWidth( fWidth ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::MatrixMode( GLenum eMode ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncMatrixMode( eMode ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::LoadMatrixd( const GLdouble *fM ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLoadMatrixd( fM ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexCoord2dv( const GLdouble *pParams ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexCoord2dv( pParams ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexCoord3dv( const GLdouble *fVar ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexCoord3dv( fVar ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexImage1D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexImage1D( target, level, internalformat, width, border, format, type, pixels ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexImage2D( target, level, internalformat, width, height, border, format, type, pixels ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::CopyTexImage1D( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncCopyTexImage1D( target, level, internalFormat, x, y, width, border ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncCopyTexImage2D( target, level, internalFormat, x, y, width, height, border ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::CopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncCopyTexSubImage1D( target, level, xoffset, x, y, width ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::CopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncCopyTexSubImage2D( target, level, xoffset, yoffset, x, y, width, height ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PixelTransferf( GLenum pname, GLfloat param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPixelTransferf( pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PixelTransferi( GLenum pname, GLint param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPixelTransferi( pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGetTexLevelParameterfv( target, level, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGetTexLevelParameteriv( target, level, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGetTexParameterfv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGetTexParameteriv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexSubImage1D( target, level, xoffset, width, format, type, pixels ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexSubImage2D( target, level, xoffset, yoffset, width, height, format, type, pixels ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PixelStoref( GLenum pname, GLfloat param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPixelStoref( pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PixelStorei( GLenum pname, GLint param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPixelStorei( pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GenTextures( GLsizei n, GLuint *textures ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGenTextures( n, textures ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -GLboolean OpenGL::IsTexture( GLuint texture ) -{ - GLboolean bRet = FALSE; - - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - bRet = pImplOpenGLFncIsTexture( texture ); - mpOGL->OGLExit( PGRAPHICS ); - } - return bRet; -} - -// ------------------------------------------------------------------------ - -void OpenGL::BindTexture( GLenum target, GLuint texture ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncBindTexture( target, texture ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DeleteTextures( GLsizei n, const GLuint *textures ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDeleteTextures( n, textures ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -GLboolean OpenGL::AreTexturesResident( GLsizei n, const GLuint *textures, GLboolean *residences ) -{ - GLboolean bRet = FALSE; - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - bRet = pImplOpenGLFncAreTexturesResident( n, textures, residences ); - mpOGL->OGLExit( PGRAPHICS ); - } - return bRet; -} - -// ------------------------------------------------------------------------ - -void OpenGL::PrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPrioritizeTextures( n, textures, priorities ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexEnvf( GLenum target, GLenum pname, GLfloat param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexEnvf( target, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexEnvfv( GLenum target, GLenum pname, const GLfloat *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexEnvfv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexEnvi( GLenum target, GLenum pname, GLint param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexEnvi( target, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexEnviv( GLenum target, GLenum pname, const GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexEnviv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexParameterf( GLenum target, GLenum pname, GLfloat param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexParameterf( target, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexParameterfv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexParameteri( GLenum target, GLenum pname, GLint param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexParameteri( target, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexParameteriv( GLenum target, GLenum pname, const GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexParameteriv( target, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGend( GLenum coord, GLenum pname, GLdouble param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGend( coord, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGendv( GLenum coord, GLenum pname, const GLdouble *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGendv( coord, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGenf( GLenum coord, GLenum pname, GLfloat param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGenf( coord, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGenfv( coord, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGeni( GLenum coord, GLenum pname, GLint param ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGeni( coord, pname, param ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexGeniv( GLenum coord, GLenum pname, const GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexGeniv( coord, pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::GetIntegerv( GLenum pname, GLint *params ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncGetIntegerv( pname, params ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::PolygonOffset( GLfloat factor, GLfloat units ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncPolygonOffset( factor, units ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::Scissor( GLint nX, GLint nY, GLsizei nWidth, GLsizei nHeight ) -{ - if( OGL_INIT() ) - { - long nOutHeight; - - if( mpOutDev->GetOutDevType() == OUTDEV_WINDOW ) - nOutHeight = ( (Window*) mpOutDev )->ImplGetFrameWindow()->mnOutHeight; - else - nOutHeight = mpOutDev->mnOutHeight; - - mpOGL->OGLEntry( PGRAPHICS ); - - // --- RTL --- mirror scissor coordinates - if( mpOutDev->ImplHasMirroredGraphics() ) - { - long lx = nX + mpOutDev->mnOutOffX; - long lwidth = nWidth; - mpOutDev->mpGraphics->mirror( lx, lwidth, mpOutDev ); - nX = lx - mpOutDev->mnOutOffX; - } - pImplOpenGLFncScissor( nX + mpOutDev->mnOutOffX, - nOutHeight - nY - nHeight - mpOutDev->mnOutOffY, - nWidth, nHeight ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::EnableClientState( GLenum array ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncEnableClientState( array ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DisableClientState( GLenum array ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDisableClientState( array ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::VertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncVertexPointer( size, type, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::ColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncColorPointer( size, type, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::IndexPointer( GLenum type, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncIndexPointer( type, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::NormalPointer( GLenum type, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncNormalPointer( type, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::TexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncTexCoordPointer( size, type, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::EdgeFlagPointer( GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncEdgeFlagPointer( stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::ArrayElement( GLint i ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncArrayElement( i ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDrawElements( mode, count, type, indices ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::DrawArrays( GLenum mode, GLint first, GLsizei count ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncDrawArrays( mode, first, count ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::InterleavedArrays( GLenum format, GLsizei stride, const GLvoid *pointer ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncInterleavedArrays( format, stride, pointer ); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::LoadIdentity( ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncLoadIdentity(); - mpOGL->OGLExit( PGRAPHICS ); - } -} - -// ------------------------------------------------------------------------ - -void OpenGL::BlendFunc( GLenum sfactor, GLenum dfactor ) -{ - if( OGL_INIT() ) - { - mpOGL->OGLEntry( PGRAPHICS ); - pImplOpenGLFncBlendFunc( sfactor, dfactor); - mpOGL->OGLExit( PGRAPHICS ); - } -} - diff --git a/vcl/source/gdi/outdev.cxx b/vcl/source/gdi/outdev.cxx index 99a35fb18085..6dd674c15bb8 100644 --- a/vcl/source/gdi/outdev.cxx +++ b/vcl/source/gdi/outdev.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: outdev.cxx,v $ - * $Revision: 1.60 $ + * $Revision: 1.60.30.1 $ * * This file is part of OpenOffice.org. * @@ -55,10 +55,7 @@ #include <vcl/gdimtf.hxx> #include <vcl/outdata.hxx> #include <vcl/print.hxx> -#include <vcl/salotype.hxx> -#include <vcl/opengl.hxx> #include <implncvt.hxx> -#include <vcl/outdev3d.hxx> #include <vcl/outdev.h> #include <vcl/outdev.hxx> #include <vcl/unowrap.hxx> @@ -419,7 +416,6 @@ OutputDevice::OutputDevice() : mpGetDevSizeList = NULL; mpObjStack = NULL; mpOutDevData = NULL; - mp3DContext = NULL; mpPDFWriter = NULL; mpAlphaVDev = NULL; mpExtOutDevData = NULL; @@ -499,9 +495,6 @@ OutputDevice::~OutputDevice() mpUnoGraphicsList = NULL; } - if ( mp3DContext ) - mp3DContext->Destroy( this ); - if ( mpOutDevData ) ImplDeInitOutDevData(); @@ -3056,30 +3049,6 @@ BOOL OutputDevice::HasAlpha() // ----------------------------------------------------------------------- -OpenGL* OutputDevice::GetOpenGL() -{ - DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice ); - - OpenGL* pOGL; - - if( OUTDEV_PRINTER != meOutDevType ) - { - pOGL = new OpenGL( this ); - - if( !pOGL->IsValid() ) - { - delete pOGL; - pOGL = NULL; - } - } - else - pOGL = NULL; - - return pOGL; -} - -// ----------------------------------------------------------------------- - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics > OutputDevice::CreateUnoGraphics() { UnoWrapperBase* pWrapper = Application::GetUnoWrapper(); diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx index 2e2d40df791e..298da07de1b2 100644 --- a/vcl/source/gdi/salgdilayout.cxx +++ b/vcl/source/gdi/salgdilayout.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salgdilayout.cxx,v $ - * $Revision: 1.31 $ + * $Revision: 1.31.30.1 $ * * This file is part of OpenOffice.org. * @@ -52,12 +52,9 @@ #include <vcl/gdimtf.hxx> #include <vcl/outdata.hxx> #include <vcl/print.hxx> -#include <vcl/salotype.hxx> -#include <vcl/opengl.hxx> #ifndef _VCL_IMPLNCVT_HXX #include <implncvt.hxx> #endif -#include <vcl/outdev3d.hxx> #include <vcl/outdev.h> #include <vcl/outdev.hxx> #include <vcl/unowrap.hxx> diff --git a/vcl/source/window/wrkwin.cxx b/vcl/source/window/wrkwin.cxx index b993896ad980..0c19c5c5ee4f 100644 --- a/vcl/source/window/wrkwin.cxx +++ b/vcl/source/window/wrkwin.cxx @@ -45,7 +45,6 @@ #include <vcl/brdwin.hxx> #include <vcl/window.h> #include <vcl/wrkwin.hxx> -#include <vcl/opengl.hxx> #include <vcl/sysdata.hxx> // ======================================================================= @@ -70,15 +69,6 @@ void WorkWindow::ImplInitWorkWindowData() void WorkWindow::ImplInit( Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData ) { -#if defined WNT - /* - * #98153# since SystemParentData typically contains a HWND from - * another process and the OpenGL implementation does not like - * our child window of another processes frame we disable it here. - */ - if( pSystemParentData ) - OpenGL::Invalidate(); -#endif USHORT nFrameStyle = BORDERWINDOW_STYLE_FRAME; if ( nStyle & WB_APP ) nFrameStyle |= BORDERWINDOW_STYLE_APP; diff --git a/vcl/unx/headless/svpdummies.cxx b/vcl/unx/headless/svpdummies.cxx index 54e22b728f99..6be230fce38e 100644 --- a/vcl/unx/headless/svpdummies.cxx +++ b/vcl/unx/headless/svpdummies.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svpdummies.cxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.154.1 $ * * This file is part of OpenOffice.org. * @@ -32,15 +32,6 @@ #include "svpinst.hxx" #include <rtl/ustrbuf.hxx> -// SalOpenGL -SvpSalOpenGL::~SvpSalOpenGL() {} -bool SvpSalOpenGL::IsValid() { return false; } -oglFunction SvpSalOpenGL::GetOGLFnc( const char * ) { return NULL; } -void SvpSalOpenGL::OGLEntry( SalGraphics* ) {} -void SvpSalOpenGL::OGLExit( SalGraphics* ) {} -void SvpSalOpenGL::StartScene( SalGraphics* ) {} -void SvpSalOpenGL::StopScene() {} - // SalObject SvpSalObject::SvpSalObject() { diff --git a/vcl/unx/headless/svpdummies.hxx b/vcl/unx/headless/svpdummies.hxx index 3a3f9cca2a5a..1ad43f6e5a83 100644 --- a/vcl/unx/headless/svpdummies.hxx +++ b/vcl/unx/headless/svpdummies.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svpdummies.hxx,v $ - * $Revision: 1.4 $ + * $Revision: 1.4.154.1 $ * * This file is part of OpenOffice.org. * @@ -30,7 +30,6 @@ #ifndef _SVP_SVPDUMMIES_HXX -#include <vcl/salogl.hxx> #include <vcl/salobj.hxx> #include <vcl/sysdata.hxx> #include <vcl/salimestatus.hxx> @@ -38,21 +37,6 @@ class SalGraphics; -class SvpSalOpenGL : public SalOpenGL -{ -public: - SvpSalOpenGL() {} - virtual ~SvpSalOpenGL(); - - // overload all pure virtual methods - virtual bool IsValid(); - virtual oglFunction GetOGLFnc( const char * ); - virtual void OGLEntry( SalGraphics* pGraphics ); - virtual void OGLExit( SalGraphics* pGraphics ); - virtual void StartScene( SalGraphics* pGraphics ); - virtual void StopScene(); -}; - class SvpSalObject : public SalObject { public: diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx index ceba16c76be9..87d0e4662f29 100644 --- a/vcl/unx/headless/svpinst.cxx +++ b/vcl/unx/headless/svpinst.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svpinst.cxx,v $ - * $Revision: 1.5 $ + * $Revision: 1.5.154.1 $ * * This file is part of OpenOffice.org. * @@ -269,11 +269,6 @@ SalTimer* SvpSalInstance::CreateSalTimer() return new SvpSalTimer( this ); } -SalOpenGL* SvpSalInstance::CreateSalOpenGL( SalGraphics* ) -{ - return new SvpSalOpenGL(); -} - SalI18NImeStatus* SvpSalInstance::CreateI18NImeStatus() { return new SvpImeStatus(); diff --git a/vcl/unx/headless/svpinst.hxx b/vcl/unx/headless/svpinst.hxx index 8dbd31411f84..71c463f071a9 100644 --- a/vcl/unx/headless/svpinst.hxx +++ b/vcl/unx/headless/svpinst.hxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: svpinst.hxx,v $ - * $Revision: 1.6 $ + * $Revision: 1.6.116.1 $ * * This file is part of OpenOffice.org. * @@ -165,8 +165,6 @@ public: // SalTimer virtual SalTimer* CreateSalTimer(); - // SalOpenGL - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ); // SalI18NImeStatus virtual SalI18NImeStatus* CreateI18NImeStatus(); // SalSystem diff --git a/vcl/unx/inc/salinst.h b/vcl/unx/inc/salinst.h index 57bc54236312..e35774b01f02 100644 --- a/vcl/unx/inc/salinst.h +++ b/vcl/unx/inc/salinst.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.h,v $ - * $Revision: 1.17 $ + * $Revision: 1.17.154.1 $ * * This file is part of OpenOffice.org. * @@ -97,7 +97,6 @@ public: virtual String GetDefaultPrinter(); virtual SalTimer* CreateSalTimer(); - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ); virtual SalI18NImeStatus* CreateI18NImeStatus(); virtual SalSystem* CreateSalSystem(); virtual SalBitmap* CreateSalBitmap(); diff --git a/vcl/unx/inc/salogl.h b/vcl/unx/inc/salogl.h index b13ff65031b6..e69de29bb2d1 100644 --- a/vcl/unx/inc/salogl.h +++ b/vcl/unx/inc/salogl.h @@ -1,104 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.h,v $ - * $Revision: 1.8 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOGL_H -#define _SV_SALOGL_H - -#if defined EXPLICITLY_INCLUDE_GLX_H -#include <prex.h> -#define GL_H -#include <GL/glx.h> -#include <postx.h> -#else -typedef void* GLXContext; -typedef XID GLXDrawable; -// needed GLX_ constants -#define GLX_USE_GL 1 -#define GLX_DOUBLEBUFFER 5 -#endif -#include <vcl/salogl.hxx> - -#ifndef _OSL_MODULE_H -#include <osl/module.h> -#endif - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; - -class X11SalOpenGL : public SalOpenGL -{ -private: - static oslModule mpGLLib; - static GLXContext maGLXContext; - static ULONG mnOGLState; - static Display* mpDisplay; - static const XVisualInfo* mpVisualInfo; - static BOOL mbHaveGLVisual; - - static BOOL ImplInit(); - - static GLXContext (*pCreateContext)( Display *, XVisualInfo *, GLXContext, Bool ); - static void (*pDestroyContext)( Display *, GLXContext ); - static GLXContext (*pGetCurrentContext)( ); - static Bool (*pMakeCurrent)( Display *, GLXDrawable, GLXContext ); - static void (*pSwapBuffers)( Display*, GLXDrawable ); - static int (*pGetConfig)( Display*, XVisualInfo*, int, int* ); - static void (*pFlush)(); - - Drawable maDrawable; - - static oglFunction resolveSymbol( const char* pSym ); -public: - - X11SalOpenGL( SalGraphics* pGraphics ); - ~X11SalOpenGL(); - - static void Release(); - static void ReleaseLib(); - static void MakeVisualWeights( - Display *pDisplay, - XVisualInfo* pInfos, - int* pWeights, - int nVisuals - ); - - // overload all pure virtual methods - virtual bool IsValid(); - virtual oglFunction GetOGLFnc( const char * ); - virtual void OGLEntry( SalGraphics* pGraphics ); - virtual void OGLExit( SalGraphics* pGraphics ); - virtual void StartScene( SalGraphics* pGraphics ); - virtual void StopScene(); -}; - -#endif // _SV_SALOGL_H diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx index ac4506c0ac6c..3fcf7fcdda06 100644 --- a/vcl/unx/source/app/saldisp.cxx +++ b/vcl/unx/source/app/saldisp.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: saldisp.cxx,v $ - * $Revision: 1.101 $ + * $Revision: 1.101.30.1 $ * * This file is part of OpenOffice.org. * @@ -95,7 +95,6 @@ Status XineramaGetInfo(Display*, int, XRectangle*, unsigned char*, int*); #include <vcl/keycodes.hxx> #include <vcl/salbtype.hxx> #include <salbmp.h> -#include <salogl.h> #ifndef _OSL_THREADMUTEX_H_ #include <osl/mutex.h> #endif @@ -495,8 +494,6 @@ BOOL SalDisplay::BestVisual( Display *pDisplay, pWeight[ i ] -= pVInfos[ i ].visualid; } - X11SalOpenGL::MakeVisualWeights( pDisplay, pVInfos, pWeight, nVisuals ); - int nBestVisual = 0; int nBestWeight = -1024; for( i = 0; i < nVisuals; i++ ) diff --git a/vcl/unx/source/app/salinst.cxx b/vcl/unx/source/app/salinst.cxx index 9ef29e837e33..18b24e2cb2f3 100644 --- a/vcl/unx/source/app/salinst.cxx +++ b/vcl/unx/source/app/salinst.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.cxx,v $ - * $Revision: 1.34 $ + * $Revision: 1.34.154.1 $ * * This file is part of OpenOffice.org. * @@ -49,7 +49,6 @@ #include <dtint.hxx> #include <salprn.h> #include <sm.hxx> -#include <salogl.h> // ------------------------------------------------------------------------- // @@ -117,9 +116,6 @@ extern "C" X11SalInstance::~X11SalInstance() { - // release (possibly open) OpenGL context - X11SalOpenGL::Release(); - // close session management SessionManagerClient::close(); @@ -132,13 +128,6 @@ X11SalInstance::~X11SalInstance() delete pSalData; SetSalData( NULL ); - // eventually free OpenGL lib - // this needs to be done after XCloseDisplay - // since GL may have added extension data - including a - // function pointer that gets called on XCloseDisplay - to - // the display structure - X11SalOpenGL::ReleaseLib(); - delete mpSalYieldMutex; } @@ -287,8 +276,3 @@ void X11SalInstance::DestroyFrame( SalFrame* pFrame ) { delete pFrame; } - -SalOpenGL* X11SalInstance::CreateSalOpenGL( SalGraphics* pGraphics ) -{ - return new X11SalOpenGL( pGraphics ); -} diff --git a/vcl/unx/source/gdi/makefile.mk b/vcl/unx/source/gdi/makefile.mk index 2b036834eb8f..1516cd8ad5a5 100644 --- a/vcl/unx/source/gdi/makefile.mk +++ b/vcl/unx/source/gdi/makefile.mk @@ -8,7 +8,7 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.26 $ +# $Revision: 1.26.28.1 $ # # This file is part of OpenOffice.org. # @@ -55,7 +55,6 @@ SLOFILES= \ $(SLO)$/salbmp.obj \ $(SLO)$/salgdi.obj \ $(SLO)$/salvd.obj \ - $(SLO)$/salogl.obj \ $(SLO)$/dtint.obj \ $(SLO)$/salcvt.obj \ $(SLO)$/xfont.obj \ diff --git a/vcl/unx/source/gdi/salogl.cxx b/vcl/unx/source/gdi/salogl.cxx index b14a0403a752..e69de29bb2d1 100644 --- a/vcl/unx/source/gdi/salogl.cxx +++ b/vcl/unx/source/gdi/salogl.cxx @@ -1,385 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.cxx,v $ - * $Revision: 1.22 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_vcl.hxx" - -#include <salunx.h> -#include <saldata.hxx> -#include <saldisp.hxx> -#include <salogl.h> -#include <salgdi.h> - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -using namespace rtl; - -// ------------ -// - Lib-Name - -// ------------ - -#ifdef MACOSX -#define OGL_LIBNAME "libGL.dylib" -#else -#define OGL_LIBNAME "libGL.so.1" -#endif - -// ---------- -// - Macros - -// ---------- - -// ----------------- -// - Statics init. - -// ----------------- - -// Members -GLXContext X11SalOpenGL::maGLXContext = 0; -Display* X11SalOpenGL::mpDisplay = 0; -const XVisualInfo* X11SalOpenGL::mpVisualInfo = 0; -BOOL X11SalOpenGL::mbHaveGLVisual = FALSE; - -oslModule X11SalOpenGL::mpGLLib = 0; -#ifdef SOLARIS -oslModule aMotifLib; -#endif - -ULONG X11SalOpenGL::mnOGLState = OGL_STATE_UNLOADED; - -GLXContext (*X11SalOpenGL::pCreateContext)( Display *, XVisualInfo *, GLXContext, Bool ) = 0; -void (*X11SalOpenGL::pDestroyContext)( Display *, GLXContext ) = 0; -GLXContext (*X11SalOpenGL::pGetCurrentContext)( ) = 0; -Bool (*X11SalOpenGL::pMakeCurrent)( Display *, GLXDrawable, GLXContext ) = 0; -void (*X11SalOpenGL::pSwapBuffers)( Display*, GLXDrawable ) = 0; -int (*X11SalOpenGL::pGetConfig)( Display*, XVisualInfo*, int, int* ) = 0; -void (*X11SalOpenGL::pFlush)() = 0; - -// ------------- -// - X11SalOpenGL - -// ------------- -// FIXME: Multiscreen -X11SalOpenGL::X11SalOpenGL( SalGraphics* pSGraphics ) -{ - X11SalGraphics* pGraphics = static_cast<X11SalGraphics*>(pSGraphics); - mpDisplay = pGraphics->GetXDisplay(); - mpVisualInfo = &pGraphics->GetDisplay()->GetVisual(pGraphics->GetScreenNumber()); - maDrawable = pGraphics->GetDrawable(); -} - -// ------------------------------------------------------------------------ - -X11SalOpenGL::~X11SalOpenGL() -{ -} - -// ------------------------------------------------------------------------ - -bool X11SalOpenGL::IsValid() -{ - if( OGL_STATE_UNLOADED == mnOGLState ) - { - BOOL bHasGLX = FALSE; - char **ppExtensions; - int nExtensions; - - if( *DisplayString( mpDisplay ) == ':' || - ! strncmp( DisplayString( mpDisplay ), "localhost:", 10 ) - ) - { - // GLX only on local displays due to strange problems - // with remote GLX - ppExtensions = XListExtensions( mpDisplay, &nExtensions ); - for( int i=0; i < nExtensions; i++ ) - { - if( ! strncmp( "GLX", ppExtensions[ i ], 3 ) ) - { - bHasGLX = TRUE; - break; - } - } - XFreeExtensionList( ppExtensions ); -#if OSL_DEBUG_LEVEL > 1 - if( ! bHasGLX ) - fprintf( stderr, "XServer does not support GLX extension\n" ); -#endif - if( bHasGLX ) - { - /* - * #82406# the XFree4.0 GLX module does not seem - * to work that great, at least not the one that comes - * with the default installation and Matrox cards. - * Since these are common we disable usage of - * OpenGL per default. - */ - static const char* pOverrideGLX = getenv( "SAL_ENABLE_GLX_XFREE4" ); - if( ! strncmp( ServerVendor( mpDisplay ), "The XFree86 Project, Inc", 24 ) && - VendorRelease( mpDisplay ) >= 4000 && - ! pOverrideGLX - ) - { -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "disabling GLX usage on XFree >= 4.0\n" ); -#endif - bHasGLX = FALSE; - } - } - } - if( bHasGLX && mpVisualInfo->c_class == TrueColor && ImplInit() ) - { - int nDoubleBuffer = 0; - int nHaveGL = 0; - pGetConfig( mpDisplay, const_cast<XVisualInfo*>(mpVisualInfo), - GLX_USE_GL, &nHaveGL ); - pGetConfig( mpDisplay, const_cast<XVisualInfo*>(mpVisualInfo), - GLX_DOUBLEBUFFER, &nDoubleBuffer ); - if( nHaveGL && ! nDoubleBuffer ) - { - SalDisplay* pSalDisplay = GetX11SalData()->GetDisplay(); - pSalDisplay->GetXLib()->PushXErrorLevel( true ); - mbHaveGLVisual = TRUE; - - maGLXContext = pCreateContext( mpDisplay, const_cast<XVisualInfo*>(mpVisualInfo), 0, True ); - if( ! pSalDisplay->GetXLib()->HasXErrorOccured() ) - pMakeCurrent( mpDisplay, maDrawable, maGLXContext ); - if( pSalDisplay->GetXLib()->HasXErrorOccured() ) - mbHaveGLVisual = FALSE; - pSalDisplay->GetXLib()->PopXErrorLevel(); - - if( mbHaveGLVisual ) - mnOGLState = OGL_STATE_VALID; - else - maGLXContext = None; - } - } - if( mnOGLState != OGL_STATE_VALID ) - mnOGLState = OGL_STATE_INVALID; -#if OSL_DEBUG_LEVEL > 1 - if( mnOGLState == OGL_STATE_VALID ) - fprintf( stderr, "Using GLX on visual id %lx.\n", mpVisualInfo->visualid ); - else - fprintf( stderr, "Not using GLX.\n" ); -#endif - } - - return mnOGLState == OGL_STATE_VALID ? TRUE : FALSE; -} - -void X11SalOpenGL::Release() -{ - if( maGLXContext && pDestroyContext ) - pDestroyContext( mpDisplay, maGLXContext ); -} - -// ------------------------------------------------------------------------ - -void X11SalOpenGL::ReleaseLib() -{ - if( mpGLLib ) - { - osl_unloadModule( mpGLLib ); - #ifdef SOLARIS - if( aMotifLib ) - osl_unloadModule( aMotifLib ); - #endif - - mpGLLib = 0; - pCreateContext = 0; - pDestroyContext = 0; - pGetCurrentContext = 0; - pMakeCurrent = 0; - pSwapBuffers = 0; - pGetConfig = 0; - - mnOGLState = OGL_STATE_UNLOADED; - } -} - -// ------------------------------------------------------------------------ - -oglFunction X11SalOpenGL::GetOGLFnc( const char *pFncName ) -{ - return resolveSymbol( pFncName ); -} - -// ------------------------------------------------------------------------ - -void X11SalOpenGL::OGLEntry( SalGraphics* pGraphics ) -{ - GLXDrawable aDrawable = static_cast<X11SalGraphics*>(pGraphics)->GetDrawable(); - if( aDrawable != maDrawable ) - { - maDrawable = aDrawable; - pMakeCurrent( mpDisplay, maDrawable, maGLXContext ); - } -} - -// ------------------------------------------------------------------------ - -void X11SalOpenGL::OGLExit( SalGraphics* ) -{ -} - -// ------------------------------------------------------------------------ - -oglFunction X11SalOpenGL::resolveSymbol( const char* pSymbol ) -{ - oglFunction pSym = NULL; - if( mpGLLib ) - { - OUString aSym = OUString::createFromAscii( pSymbol ); - pSym = osl_getFunctionSymbol( mpGLLib, aSym.pData ); - } - return pSym; -} - - -BOOL X11SalOpenGL::ImplInit() -{ - if( ! mpGLLib ) - { - ByteString sNoGL( getenv( "SAL_NOOPENGL" ) ); - if( sNoGL.ToLowerAscii() == "true" ) - return FALSE; - - sal_Int32 nRtldMode = SAL_LOADMODULE_NOW; - #ifdef SOLARIS - /* #i36866# an obscure interaction with jvm can let java crash - * if we do not use SAL_LOADMODULE_GLOBAL here - */ - nRtldMode |= SAL_LOADMODULE_GLOBAL; - - /* #i36899# and we need Xm, too, else jvm will not work properly. - */ - OUString aMotifName( RTL_CONSTASCII_USTRINGPARAM( "libXm.so" ) ); - aMotifLib = osl_loadModule( aMotifName.pData, nRtldMode ); - #endif - OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( OGL_LIBNAME ) ); - mpGLLib = osl_loadModule( aLibName.pData, nRtldMode ); - } - if( ! mpGLLib ) - { -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, OGL_LIBNAME "could not be opened\n" ); -#endif - return FALSE; - } - - // Internal use - pCreateContext = (GLXContext(*)(Display*,XVisualInfo*,GLXContext,Bool )) - resolveSymbol( "glXCreateContext" ); - pDestroyContext = (void(*)(Display*,GLXContext)) - resolveSymbol( "glXDestroyContext" ); - pGetCurrentContext = (GLXContext(*)()) - resolveSymbol( "glXGetCurrentContext" ); - pMakeCurrent = (Bool(*)(Display*,GLXDrawable,GLXContext)) - resolveSymbol( "glXMakeCurrent" ); - pSwapBuffers=(void(*)(Display*, GLXDrawable)) - resolveSymbol( "glXSwapBuffers" ); - pGetConfig = (int(*)(Display*, XVisualInfo*, int, int* )) - resolveSymbol( "glXGetConfig" ); - pFlush = (void(*)()) - resolveSymbol( "glFlush" ); - - BOOL bRet = pCreateContext && pDestroyContext && pGetCurrentContext && pMakeCurrent && pSwapBuffers && pGetConfig ? TRUE : FALSE; - -#if OSL_DEBUG_LEVEL > 1 - if( ! bRet ) - fprintf( stderr, "could not find all needed symbols in " OGL_LIBNAME "\n" ); -#endif - - return bRet; -} - -void X11SalOpenGL::StartScene( SalGraphics* ) -{ - // flush pending operations which otherwise might be drawn - // at the wrong time - XSync( mpDisplay, False ); -} - -void X11SalOpenGL::StopScene() -{ - if( maDrawable ) - { - pSwapBuffers( mpDisplay, maDrawable ); - pFlush(); - } -} - -void X11SalOpenGL::MakeVisualWeights( Display* pDisplay, - XVisualInfo* pInfos, - int *pWeights, - int nVisuals ) -{ - BOOL bHasGLX = FALSE; - char **ppExtensions; - int nExtensions,i ; - - // GLX only on local displays due to strange problems - // with remote GLX - if( ! ( *DisplayString( pDisplay ) == ':' || - !strncmp( DisplayString( pDisplay ), "localhost:", 10 ) - ) ) - return; - - ppExtensions = XListExtensions( pDisplay, &nExtensions ); - for( i=0; i < nExtensions; i++ ) - { - if( ! strncmp( "GLX", ppExtensions[ i ], 3 ) ) - { - bHasGLX = TRUE; - break; - } - } - XFreeExtensionList( ppExtensions ); - if( ! bHasGLX ) - return; - - if( ! ImplInit() ) - return; - - for( i = 0; i < nVisuals; i++ ) - { - int nDoubleBuffer = 0; - int nHaveGL = 0; - // a weight lesser than zero indicates an invalid visual (wrong screen) - if( pInfos[i].c_class == TrueColor && pInfos[i].depth > 14 && pWeights[i] >= 0) - { - pGetConfig( pDisplay, &pInfos[ i ], GLX_USE_GL, &nHaveGL ); - pGetConfig( pDisplay, &pInfos[ i ], GLX_DOUBLEBUFFER, &nDoubleBuffer ); - if( nHaveGL && ! nDoubleBuffer ) - { - mbHaveGLVisual = TRUE; - pWeights[ i ] += 65536; - } - } - } -} diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk index ffda4f31dab7..c16e01b3914e 100644 --- a/vcl/util/makefile.mk +++ b/vcl/util/makefile.mk @@ -8,7 +8,7 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.113 $ +# $Revision: 1.112.22.2 $ # # This file is part of OpenOffice.org. # @@ -97,7 +97,6 @@ HXXDEPNLST= $(INC)$/vcl$/accel.hxx \ $(INC)$/vcl$/msgbox.hxx \ $(INC)$/vcl$/octree.hxx \ $(INC)$/vcl$/outdev.hxx \ - $(INC)$/vcl$/outdev3d.hxx \ $(INC)$/vcl$/pointr.hxx \ $(INC)$/vcl$/ptrstyle.hxx \ $(INC)$/vcl$/prntypes.hxx \ diff --git a/vcl/win/inc/salinst.h b/vcl/win/inc/salinst.h index 2ad90e01f98f..26afe892b9a3 100644 --- a/vcl/win/inc/salinst.h +++ b/vcl/win/inc/salinst.h @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.h,v $ - * $Revision: 1.16 $ + * $Revision: 1.16.154.1 $ * * This file is part of OpenOffice.org. * @@ -74,7 +74,6 @@ public: virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ); virtual String GetDefaultPrinter(); virtual SalTimer* CreateSalTimer(); - virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics ); virtual SalI18NImeStatus* CreateI18NImeStatus(); virtual SalSystem* CreateSalSystem(); virtual SalBitmap* CreateSalBitmap(); diff --git a/vcl/win/inc/salogl.h b/vcl/win/inc/salogl.h index 9aab719c5978..e69de29bb2d1 100644 --- a/vcl/win/inc/salogl.h +++ b/vcl/win/inc/salogl.h @@ -1,82 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.h,v $ - * $Revision: 1.6 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOGL_H -#define _SV_SALOGL_H - -#define _OPENGL_EXT - -#include <wincomp.hxx> -#include <tools/gen.hxx> -#include <vcl/sv.h> -#include <vcl/salogl.hxx> - -// ----------------- -// - State defines - -// ----------------- - -#define OGL_STATE_UNLOADED (0x00000000) -#define OGL_STATE_INVALID (0x00000001) -#define OGL_STATE_VALID (0x00000002) - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; -class String; - -class WinSalOpenGL : public SalOpenGL -{ -private: - static HGLRC mhOGLContext; - static HDC mhOGLLastDC; - static ULONG mnOGLState; - -private: - static BOOL ImplInitLib(); - static BOOL ImplInit(); - static void ImplFreeLib(); - -public: - WinSalOpenGL( SalGraphics* ); - virtual ~WinSalOpenGL(); - - virtual bool IsValid(); - virtual oglFunction GetOGLFnc( const char * ); - virtual void OGLEntry( SalGraphics* pGraphics ); - virtual void OGLExit( SalGraphics* pGraphics ); - virtual void StartScene( SalGraphics* pGraphics ); - virtual void StopScene(); - - static void Release(); -}; - -#endif // _SV_SALOGL_H diff --git a/vcl/win/inc/salogl.hxx b/vcl/win/inc/salogl.hxx index fe236abe510a..e69de29bb2d1 100644 --- a/vcl/win/inc/salogl.hxx +++ b/vcl/win/inc/salogl.hxx @@ -1,83 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.hxx,v $ - * $Revision: 1.4 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _SV_SALOGL_HXX -#define _SV_SALOGL_HXX - -#define _OPENGL_EXT - -#include <wincomp.hxx> -#include <tools/gen.hxx> -#include <vcl/sv.h> -#include <vcl/salotype.hxx> - -// ----------------- -// - State defines - -// ----------------- - -#define OGL_STATE_UNLOADED (0x00000000) -#define OGL_STATE_INVALID (0x00000001) -#define OGL_STATE_VALID (0x00000002) - -// ------------- -// - SalOpenGL - -// ------------- - -class SalGraphics; -class String; - -class SalOpenGL -{ -private: - static HGLRC mhOGLContext; - static HDC mhOGLLastDC; - static ULONG mnOGLState; - -private: - static BOOL ImplInitLib(); - static BOOL ImplInit(); - static void ImplFreeLib(); - -public: - SalOpenGL( SalGraphics* pGraphics ); - ~SalOpenGL(); - - static BOOL Create(); - static void Release(); - static ULONG GetState() { return SalOpenGL::mnOGLState; } - static BOOL IsValid() { return( OGL_STATE_VALID == SalOpenGL::mnOGLState ); } - - static void* GetOGLFnc( const char* pFncName ); - - static void OGLEntry( SalGraphics* pGraphics ); - static void OGLExit( SalGraphics* pGraphics ); -}; - -#endif // _SV_SALOGL_HXX diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx index cb6498f29d42..b1ee05a9c2e3 100644 --- a/vcl/win/source/app/salinst.cxx +++ b/vcl/win/source/app/salinst.cxx @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: salinst.cxx,v $ - * $Revision: 1.42 $ + * $Revision: 1.42.154.1 $ * * This file is part of OpenOffice.org. * @@ -51,7 +51,6 @@ #include <vcl/salsys.hxx> #include <saltimer.h> #include <vcl/salatype.hxx> -#include <salogl.h> #include <salbmp.h> #include <vcl/salimestatus.hxx> #include <vcl/timer.hxx> @@ -634,7 +633,6 @@ WinSalInstance::WinSalInstance() WinSalInstance::~WinSalInstance() { - WinSalOpenGL::Release(); mpSalYieldMutex->release(); delete mpSalYieldMutex; delete mpSalWaitMutex; @@ -1066,13 +1064,6 @@ SalTimer* WinSalInstance::CreateSalTimer() // ----------------------------------------------------------------------- -SalOpenGL* WinSalInstance::CreateSalOpenGL( SalGraphics* pGraphics ) -{ - return new WinSalOpenGL( pGraphics ); -} - -// ----------------------------------------------------------------------- - SalBitmap* WinSalInstance::CreateSalBitmap() { return new WinSalBitmap(); diff --git a/vcl/win/source/gdi/MAKEFILE.MK b/vcl/win/source/gdi/MAKEFILE.MK index bf150082dffa..d9cdd067edb3 100644 --- a/vcl/win/source/gdi/MAKEFILE.MK +++ b/vcl/win/source/gdi/MAKEFILE.MK @@ -8,7 +8,7 @@ # # $RCSfile: MAKEFILE.MK,v $ # -# $Revision: 1.13 $ +# $Revision: 1.13.152.1 $ # # This file is part of OpenOffice.org. # @@ -57,7 +57,6 @@ SLOFILES= $(SLO)$/salgdi.obj \ $(SLO)$/salvd.obj \ $(SLO)$/salprn.obj \ $(SLO)$/salbmp.obj \ - $(SLO)$/salogl.obj \ $(SLO)$/winlayout.obj \ $(SLO)$/wntgdi.obj \ $(SLO)$/salnativewidgets-luna.obj diff --git a/vcl/win/source/gdi/salogl.cxx b/vcl/win/source/gdi/salogl.cxx index b539f07817a2..e69de29bb2d1 100644 --- a/vcl/win/source/gdi/salogl.cxx +++ b/vcl/win/source/gdi/salogl.cxx @@ -1,324 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: salogl.cxx,v $ - * $Revision: 1.10 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org 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 Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_vcl.hxx" -#include <tools/svwin.h> -#include <rtl/ustring.h> -#include <osl/module.h> -#include <salogl.h> -#include <salgdi.h> - -using namespace rtl; - -#ifdef WNT -#define __OPENGL_CALL __stdcall -#else -#define __OPENGL_CALL -#endif - -// ------------------------------- -// - Additional typedefs for init. -// ------------------------------- - -typedef HGLRC ( __OPENGL_CALL *OGLFncCreateContext )( HDC hDC ); -typedef BOOL ( __OPENGL_CALL *OGLFncDeleteContext )( HGLRC hContext ); -typedef HGLRC ( __OPENGL_CALL *OGLFncGetCurrentContext )( VOID ); -typedef void ( __OPENGL_CALL *OGLFncMakeCurrent )( HDC hDC, HGLRC hContext ); - -// ------------ -// - Lib-Name - -// ------------ - -#define OGL_LIBNAME "OPENGL32.DLL" - -// ---------- -// - Macros - -// ---------- - -#define INIT_OGLFNC_WGL( FncName ) static OGLFnc##FncName pImplOpenWGLFnc##FncName = NULL; -#define GET_OGLFNC_WGL( FncName ) \ -OUString queryFuncName##FncName( RTL_CONSTASCII_USTRINGPARAM( "wgl" #FncName ) ); \ -pImplOpenWGLFnc##FncName = (OGLFnc##FncName) osl_getSymbol( hImplOGLLib, queryFuncName##FncName.pData ); \ -if( !pImplOpenWGLFnc##FncName ) bRet = FALSE; - -// ----------------- -// - Statics init. - -// ----------------- - -// Members -static oslModule hImplOGLLib = NULL; -HGLRC WinSalOpenGL::mhOGLContext = 0; -HDC WinSalOpenGL::mhOGLLastDC = 0; -ULONG WinSalOpenGL::mnOGLState = OGL_STATE_UNLOADED; - -INIT_OGLFNC_WGL( CreateContext ); -INIT_OGLFNC_WGL( DeleteContext ); -INIT_OGLFNC_WGL( GetCurrentContext ); -INIT_OGLFNC_WGL( MakeCurrent ); - -// ----------- -// - WndProc - -// ----------- - -LRESULT CALLBACK OpenGLWndProc( HWND hWnd,UINT nMsg, WPARAM nPar1, LPARAM nPar2 ) -{ - return DefWindowProc( hWnd, nMsg, nPar1, nPar2 ); -} - -// ------------- -// - SalOpenGL - -// ------------- - -WinSalOpenGL::WinSalOpenGL( SalGraphics* pGraphics ) -{ - // Set mhOGLLastDC only the first time a - // SalOpenGL object is created; we need - // this DC in SalOpenGL::Create(); - if ( OGL_STATE_UNLOADED == mnOGLState ) - mhOGLLastDC = static_cast<WinSalGraphics*>(pGraphics)->mhDC; -} - -// ------------------------------------------------------------------------ - -WinSalOpenGL::~WinSalOpenGL() -{ -} - -// ------------------------------------------------------------------------ - -bool WinSalOpenGL::IsValid() -{ - bool bRet = false; - - if ( OGL_STATE_UNLOADED == mnOGLState ) - { - if( ImplInitLib() ) - { - int nBitCount = GetDeviceCaps( mhOGLLastDC, BITSPIXEL ); - PIXELFORMATDESCRIPTOR pfd = - { - sizeof( PIXELFORMATDESCRIPTOR ), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_GDI | PFD_SUPPORT_OPENGL, - PFD_TYPE_RGBA, - (BYTE) nBitCount, - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 16, - 0, - 0, - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - const int nIndex = ChoosePixelFormat( mhOGLLastDC, &pfd ); - - if( nIndex && SetPixelFormat( mhOGLLastDC, nIndex, &pfd ) ) - { - if ( (nBitCount > 8) && ImplInit() && - (mhOGLContext = pImplOpenWGLFncCreateContext( mhOGLLastDC )) != 0 ) - { - WNDCLASS aWc; - HWND hDummyWnd; - - SaveDC( mhOGLLastDC ); - SelectClipRgn( mhOGLLastDC, NULL ); - pImplOpenWGLFncMakeCurrent( mhOGLLastDC, mhOGLContext ); - RestoreDC( mhOGLLastDC, -1 ); - mnOGLState = OGL_STATE_VALID; - bRet = TRUE; - - memset( &aWc, 0, sizeof( aWc ) ); - aWc.hInstance = GetModuleHandle( NULL ); - aWc.lpfnWndProc = OpenGLWndProc; - aWc.lpszClassName = "OpenGLWnd"; - RegisterClass( &aWc ); - hDummyWnd = CreateWindow( aWc.lpszClassName, NULL, WS_OVERLAPPED, 0, -50, 1, 1, HWND_DESKTOP, NULL, aWc.hInstance, 0 ); - ShowWindow( hDummyWnd, SW_SHOW ); - DestroyWindow( hDummyWnd ); - UnregisterClass( aWc.lpszClassName, aWc.hInstance ); - } - else - { - ImplFreeLib(); - mnOGLState = OGL_STATE_INVALID; - } - } - else - mnOGLState = OGL_STATE_INVALID; - } - else - mnOGLState = OGL_STATE_INVALID; - } - else if( OGL_STATE_VALID == mnOGLState ) - bRet = true; - - return bRet; -} - -// ------------------------------------------------------------------------ - -void WinSalOpenGL::Release() -{ - ImplFreeLib(); -} - -// ------------------------------------------------------------------------ - -oglFunction WinSalOpenGL::GetOGLFnc( const char* pFncName ) -{ - if ( hImplOGLLib ) - { - OUString queryFuncName = OUString::createFromAscii( pFncName ); - return (oglFunction)osl_getSymbol( hImplOGLLib, queryFuncName.pData ); - } - else - return NULL; -} - -// ------------------------------------------------------------------------ - -typedef BOOL (WINAPI *MyFuncType)(HDC, HGLRC); - -void WinSalOpenGL::OGLEntry( SalGraphics* pSGraphics ) -{ - WinSalGraphics* pGraphics = static_cast<WinSalGraphics*>(pSGraphics); - - if ( pGraphics->mhDC != mhOGLLastDC ) - { - PIXELFORMATDESCRIPTOR pfd = - { - sizeof( PIXELFORMATDESCRIPTOR ), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_GDI | PFD_SUPPORT_OPENGL, - PFD_TYPE_RGBA, - (BYTE)GetDeviceCaps( pGraphics->mhDC, BITSPIXEL ), - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 16, - 0, - 0, - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - const int nIndex = ChoosePixelFormat( pGraphics->mhDC, &pfd ); - if ( nIndex && SetPixelFormat( pGraphics->mhDC, nIndex, &pfd ) ) - { - WNDCLASS aWc; - HWND hDummyWnd; - - pImplOpenWGLFncDeleteContext( mhOGLContext ); - mhOGLLastDC = pGraphics->mhDC; - mhOGLContext = pImplOpenWGLFncCreateContext( mhOGLLastDC ); - - SaveDC( mhOGLLastDC ); - SelectClipRgn( mhOGLLastDC, NULL ); - pImplOpenWGLFncMakeCurrent( mhOGLLastDC, mhOGLContext ); - RestoreDC( mhOGLLastDC, -1 ); - - memset( &aWc, 0, sizeof( aWc ) ); - aWc.hInstance = GetModuleHandle( NULL ); - aWc.lpfnWndProc = OpenGLWndProc; - aWc.lpszClassName = "OpenGLWnd"; - RegisterClass( &aWc ); - hDummyWnd = CreateWindow( aWc.lpszClassName, NULL, WS_OVERLAPPED, 0, -50, 1, 1, HWND_DESKTOP, NULL, aWc.hInstance, 0 ); - ShowWindow( hDummyWnd, SW_SHOW ); - DestroyWindow( hDummyWnd ); - UnregisterClass( aWc.lpszClassName, aWc.hInstance ); - } - } -} - -// ------------------------------------------------------------------------ - -void WinSalOpenGL::OGLExit( SalGraphics* ) -{ -} - -// ------------------------------------------------------------------------ - -void WinSalOpenGL::StartScene( SalGraphics* ) -{ -} - -// ------------------------------------------------------------------------ - -void WinSalOpenGL::StopScene() -{ -} - -// ------------------------------------------------------------------------ - -BOOL WinSalOpenGL::ImplInitLib() -{ - OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( OGL_LIBNAME ) ); - hImplOGLLib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT ); - return ( hImplOGLLib != NULL ); -} - -// ------------------------------------------------------------------------ - -void WinSalOpenGL::ImplFreeLib() -{ - if ( hImplOGLLib ) - { - osl_unloadModule( hImplOGLLib ); - hImplOGLLib = NULL; - mnOGLState = OGL_STATE_UNLOADED; - } -} - -// ------------------------------------------------------------------------ - -BOOL WinSalOpenGL::ImplInit() -{ - BOOL bRet = TRUE; - - // Internal use - if ( hImplOGLLib ) - { - GET_OGLFNC_WGL( CreateContext ); - GET_OGLFNC_WGL( DeleteContext ); - GET_OGLFNC_WGL( GetCurrentContext ); - GET_OGLFNC_WGL( MakeCurrent ); - } - - return bRet; -} |