-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include <vtkRenderWindow.h>
#include <vtkCommand.h>
#include <vtkCellData.h>
+#include <vtkUnsignedCharArray.h>
+#include <vtkIdTypeArray.h>
+
+#include <Basics_Utils.hxx>
#ifndef WIN32
# ifndef GLX_GLXEXT_LEGACY
#endif
#ifndef VTK_IMPLEMENT_MESA_CXX
-vtkStandardNewMacro(VTKViewer_PolyDataMapper);
+vtkStandardNewMacro(VTKViewer_PolyDataMapper)
#endif
// some definitions for what the polydata has in it
-void MessageCallback( GLenum source,
+void MessageCallback( GLenum /*source*/,
GLenum type,
- GLuint id,
+ GLuint /*id*/,
GLenum severity,
- GLsizei length,
- const GLchar* message,
- const void* userParam )
+ GLsizei /*length*/,
+ const GLcharARB* message,
+ const void* /*userParam*/ )
{
fprintf( stderr, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s\n",
( type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "" ),
int VTKViewer_PolyDataMapper::InitShader()
{
#ifdef VTK_OPENGL2
+#if defined(WIN32) && defined(UNICODE)
+ std::wstring wFilePath = std::wstring(_wgetenv(L"GUI_ROOT_DIR")) + L"/share/salome/resources/gui/Point";
+ std::string filePath = Kernel_Utils::utf8_encode_s(wFilePath.c_str());
+#else
std::string filePath = std::string( getenv( "GUI_ROOT_DIR") ) + "/share/salome/resources/gui/Point";
+#endif
if( !this->OpenGLHelper.CreateShaderProgram(filePath, this->PointProgram, this->VertexShader, this->FragmentShader) )
return false;
this->OpenGLHelper.vglUseProgramObjectARB( current_program );
this->OpenGLHelper.vglGenVertexArraysARB(1, &this->VertexArrayObject);
+#else
+#if defined(WIN32) && defined(UNICODE)
+ std::wstring wFilePath = std::wstring(_wgetenv( L"GUI_ROOT_DIR" ) ) + L"/share/salome/resources/gui/Vertex_Program_ARB.txt";
+ std::string fileName = Kernel_Utils::utf8_encode( wFilePath.c_str() );
#else
std::string fileName = std::string( getenv( "GUI_ROOT_DIR") ) +
"/share/salome/resources/gui/Vertex_Program_ARB.txt";
+#endif
char* shader = GUI_OPENGL::readFromFile( fileName );
QString anAlphaTexture = getenv( "GUI_ROOT_DIR" );
anAlphaTexture.append( "/share/salome/resources/gui/sprite_alpha.vti" );
- vtkSmartPointer<vtkImageData> aTextureValue = VTK::MakeTexture( aMainTexture.toLatin1().constData(), anAlphaTexture.toLatin1().constData() );
+ vtkSmartPointer<vtkImageData> aTextureValue = VTK::MakeTexture( aMainTexture.toUtf8().constData(), anAlphaTexture.toUtf8().constData() );
this->SpecialTextures[BallTextureId] = aTextureValue;
}
this->ImageData = this->SpecialTextures[BallTextureId];
glGetIntegerv(GL_NUM_EXTENSIONS, &n);
for (int i = 0; i < n; i++)
{
- const char *exti = (const char *)glGetStringi(GL_EXTENSIONS, i);
+ const char *exti = (const char *)this->OpenGLHelper.vglGetStringiARB(GL_EXTENSIONS, i);
strm<< exti <<" ";
}
std::string s = strm.str();
glGenTextures( 1, &this->PointSpriteTexture );
}
#ifdef VTK_OPENGL2
- glActiveTexture( GL_TEXTURE0 );
+ this->OpenGLHelper.vglActiveTextureARB( GL_TEXTURE0 );
#endif
glBindTexture( GL_TEXTURE_2D, this->PointSpriteTexture );
glTexEnvf( GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE );
virtual
void
- get( TVertex& theVertex, vtkIdType thePointId, vtkIdType theCellId )
+ get( TVertex& theVertex, vtkIdType /*thePointId*/, vtkIdType /*theCellId*/ )
{
theVertex.r = myColor[0];
theVertex.g = myColor[1];
virtual
vtkIdType
- GetTupleId( vtkIdType thePointId, vtkIdType theCellId )
+ GetTupleId( vtkIdType thePointId, vtkIdType /*theCellId*/ )
{
return thePointId;
}
virtual
vtkIdType
- GetTupleId( vtkIdType thePointId, vtkIdType theCellId )
+ GetTupleId( vtkIdType /*thePointId*/, vtkIdType theCellId )
{
return theCellId;
}
vtkDataArray* theDiamArray,
double theBallScale )
{
- vtkIdType* ptIds = theCells->GetPointer();
+ vtkIdType* ptIds = theCells->GetData()->GetPointer(0);
vtkIdType* endPtIds = ptIds + theCells->GetNumberOfConnectivityEntries();
bool mapBalls = false;
#else
//-----------------------------------------------------------------------------
void VTKViewer_PolyDataMapper::RenderPieceDraw( vtkRenderer* ren, vtkActor* act ) {
- int noAbort = 1;
if( (!this->MarkerEnabled || this->MarkerType == VTK::MT_NONE || !this->ImageData.GetPointer()) && !this->BallEnabled) {
MAPPER_SUPERCLASS::RenderPieceDraw( ren, act );
return;