]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
GEOM_Displayer - Loading textures with non-ansi paths. (OCCT 6.7.0 compatibility)
authorapl <apl@opencascade.com>
Fri, 14 Mar 2014 14:51:21 +0000 (18:51 +0400)
committerapl <apl@opencascade.com>
Fri, 14 Mar 2014 14:51:21 +0000 (18:51 +0400)
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GEOM_Displayer.h

index 11db53e9278f76c194ebeeb7404f2be81e3db775..16131193cdc31d27ef22bd16af97b05871fd2e83 100644 (file)
 // Hard-coded value of shape deflection coefficient for VTK viewer
 const double VTK_MIN_DEFLECTION = 0.001;
 
+#if OCC_VERSION_LARGE > 0x06070000
 // Pixmap caching support
 namespace
 {
@@ -258,6 +259,7 @@ namespace
     }
   }
 }
+#endif
 
 //================================================================
 // Function : getActiveStudy
@@ -873,15 +875,23 @@ void GEOM_Displayer::updateShapeProperties( const Handle(GEOM_AISShape)& AISShap
     aImagePath = propMap.value( GEOM::propertyName( GEOM::Texture ) ).toString();
   }
 
-  Handle(Image_PixMap) aPixmap;
-  if ( !aImagePath.isEmpty() )
-    aPixmap = cacheTextureFor( aImagePath, AISShape );
+  if ( !aImagePath.isEmpty() ) {
+#if OCC_VERSION_LARGE > 0x06070000
+    Handle(Image_PixMap) aPixmap = cacheTextureFor( aImagePath, AISShape );
 
-  // apply image to shape
-  if ( !aPixmap.IsNull() ) {
-    AISShape->SetTexturePixMap( aPixmap );
+    // apply image to shape
+    if ( !aPixmap.IsNull() ) {
+      AISShape->SetTexturePixMap( aPixmap );
+      AISShape->SetTextureMapOn();
+      AISShape->DisableTextureModulate();
+    }
+    else
+      AISShape->SetTextureMapOff();
+#else
+    AISShape->SetTextureFileName( TCollection_AsciiString( aImagePath.toUtf8().constData() ) );
     AISShape->SetTextureMapOn();
     AISShape->DisableTextureModulate();
+#endif
   }
   else
     AISShape->SetTextureMapOff();
@@ -1948,11 +1958,13 @@ void GEOM_Displayer::AfterDisplay( SALOME_View* v, const SALOME_OCCPrs* p )
   UpdateColorScale(false,false);
 }
 
+#if OCC_VERSION_LARGE > 0x06070000
 void GEOM_Displayer::BeforeErase( SALOME_View* v, const SALOME_OCCPrs* p )
 {
   LightApp_Displayer::BeforeErase( v, p );
   releaseTextures( p );
 }
+#endif
 
 void GEOM_Displayer::AfterErase( SALOME_View* v, const SALOME_OCCPrs* p )
 {
index c610239de08b0d937fd6af51318e6eeac57a0e13..257b4494ecd320c9dbae6dcb26ceb78f7bb01ec0 100644 (file)
@@ -45,7 +45,7 @@ class SALOME_OCCViewType;
 #include <LightApp_Study.h>
 #include <Aspect_TypeOfMarker.hxx>
 #include <TCollection_AsciiString.hxx>
-
+#include <Basics_OCCTVersion.hxx>
 #include <QList>
 
 #include <list>
@@ -175,7 +175,9 @@ public:
   virtual void  Update( SALOME_VTKPrs* );
   virtual void  BeforeDisplay( SALOME_View*, const SALOME_OCCPrs* );
   virtual void  AfterDisplay ( SALOME_View*, const SALOME_OCCPrs* );
+#if OCC_VERSION_LARGE > 0x06070000
   virtual void  BeforeErase  ( SALOME_View*, const SALOME_OCCPrs* );
+#endif
   virtual void  AfterErase   ( SALOME_View*, const SALOME_OCCPrs* );
 
   /* This methos is used for activisation/deactivisation of objects to be displayed*/