X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVTKViewer%2FVTKViewer_PolyDataMapper.h;h=14418801a163c50146aee4304fb3f4b621409cad;hb=refs%2Fheads%2Fngr%2Fpython3_dev_pv5.4;hp=9202a24bd32a3bfad8d54c84c22819abfdcc94a3;hpb=5a7522a23dd83a48fd3ef216e0923ce351f3d810;p=modules%2Fgui.git diff --git a/src/VTKViewer/VTKViewer_PolyDataMapper.h b/src/VTKViewer/VTKViewer_PolyDataMapper.h index 9202a24bd..14418801a 100644 --- a/src/VTKViewer/VTKViewer_PolyDataMapper.h +++ b/src/VTKViewer/VTKViewer_PolyDataMapper.h @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -29,7 +29,11 @@ #include +#ifdef __APPLE__ +#include +#else #include +#endif #include @@ -43,10 +47,7 @@ class vtkImageData; #define MAPPER_SUPERCLASS vtkMesaPolyDataMapper #endif -#ifndef GL_ARB_shader_objects -typedef GLuint GLhandleARB; -#endif - +#include "VTKViewer_OpenGLHelper.h" //---------------------------------------------------------------------------- //! OpenGL Point Sprites PolyData Mapper. @@ -75,6 +76,11 @@ public: bool GetBallEnabled( ); + //! Set ball scale factor + void SetBallScale( double ); + + double GetBallScale( ); + //! Set standard point marker void SetMarkerStd( VTK::MarkerType, VTK::MarkerScale ); @@ -92,9 +98,12 @@ public: //! Implement superclass render method. virtual void RenderPiece( vtkRenderer*, vtkActor* ); - //! Draw method for OpenGL. +#ifndef VTK_OPENGL2 virtual int Draw( vtkRenderer*, vtkActor* ); +#else + virtual void RenderPieceDraw( vtkRenderer*, vtkActor* ); +#endif protected: VTKViewer_PolyDataMapper(); @@ -113,7 +122,9 @@ protected: void InitTextures(); //! Initializing of the Vertex Shader. - void InitShader(); + int InitShader(); + + void InternalDraw(vtkRenderer*, vtkActor*); private: int ExtensionsInitialized; @@ -121,11 +132,36 @@ private: GLuint PointSpriteTexture; vtkSmartPointer ImageData; - - GLhandleARB VertexProgram; + + VTKViewer_OpenGLHelper OpenGLHelper; + GLhandleARB PointProgram; +#ifdef VTK_OPENGL2 + GLhandleARB VertexShader; + GLhandleARB FragmentShader; + GLuint VertexArrayObject; +#endif + + struct Locations { + static const GLint INVALID_LOCATION = -1; + + GLint ModelViewProjection; + GLint Projection; + GLint GeneralPointSize; + GLint PointSprite; + + Locations() + : ModelViewProjection (INVALID_LOCATION), + Projection (INVALID_LOCATION), + GeneralPointSize (INVALID_LOCATION), + PointSprite (INVALID_LOCATION) + { + // + } + } myLocations; bool MarkerEnabled; - bool BallEnabled; + bool BallEnabled; + double BallScale; VTK::MarkerType MarkerType; VTK::MarkerScale MarkerScale; int MarkerId;