X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVTKViewer%2FVTKViewer_PolyDataMapper.h;h=14418801a163c50146aee4304fb3f4b621409cad;hb=c257b5026d52dfc12641811662f11a8432e84735;hp=88592e9a2135621f55c02cd5c0087f00655eeb9f;hpb=627194285d9b5354291d3a442b68b8740f114eda;p=modules%2Fgui.git diff --git a/src/VTKViewer/VTKViewer_PolyDataMapper.h b/src/VTKViewer/VTKViewer_PolyDataMapper.h index 88592e9a2..14418801a 100644 --- a/src/VTKViewer/VTKViewer_PolyDataMapper.h +++ b/src/VTKViewer/VTKViewer_PolyDataMapper.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 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 @@ -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. @@ -97,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(); @@ -118,7 +122,9 @@ protected: void InitTextures(); //! Initializing of the Vertex Shader. - void InitShader(); + int InitShader(); + + void InternalDraw(vtkRenderer*, vtkActor*); private: int ExtensionsInitialized; @@ -126,11 +132,35 @@ 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;