From 2e707623bf13551f7bc4f9544ac76a585603d1f6 Mon Sep 17 00:00:00 2001 From: dmv Date: Mon, 29 Dec 2008 11:27:22 +0000 Subject: [PATCH] =?utf8?q?IPAL20695=20Qt4=20porting.=20Changing=20values?= =?utf8?q?=20of=20parameters=20in=20=C3=A2=C2=80=C2=9CGauss=20Points=C3=A2?= =?utf8?q?=C2=80=C2=9D=20dialog=20box=20doesn=C3=A2=C2=80=C2=99t=20influen?= =?utf8?q?ce=20on=20their=20presentation=20in=203D=20Viewer?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx | 76 +++++++++++-------- src/VISUGUI/VisuGUI_GaussPointsDlg.cxx | 7 ++ src/VVTK/VVTK_SizeBox.cxx | 9 +++ src/VVTK/VVTK_SizeBox.h | 2 + 4 files changed, 61 insertions(+), 33 deletions(-) diff --git a/src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx b/src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx index e49c64d2..fd54f6e0 100755 --- a/src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx +++ b/src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx @@ -483,12 +483,10 @@ float ViewToDisplay( vtkRenderer* theRenderer ) // void VISU_OpenGLPointSpriteMapper::RenderPiece(vtkRenderer *ren, vtkActor *act) { - bool isUseThisMapper = !( this->UseOpenGLMapper || - this->PrimitiveType == VISU_OpenGLPointSpriteMapper::GeomSphere ); + bool isUseThisMapper = this->PrimitiveType != VISU_OpenGLPointSpriteMapper::GeomSphere; if( isUseThisMapper ) - if( !this->InitExtensions() ) - return; + this->InitExtensions(); if( !isUseThisMapper ) { @@ -964,8 +962,7 @@ void DrawCellsPoints( vtkPolyData *theInput, int VISU_OpenGLPointSpriteMapper::Draw(vtkRenderer *theRenderer, vtkActor *theActor) { - if( this->UseOpenGLMapper || - this->PrimitiveType == VISU_OpenGLPointSpriteMapper::GeomSphere ) + if( this->PrimitiveType == VISU_OpenGLPointSpriteMapper::GeomSphere ) return MAPPER_SUPERCLASS::Draw( theRenderer, theActor ); vtkUnsignedCharArray *colors = NULL; @@ -1041,39 +1038,52 @@ int VISU_OpenGLPointSpriteMapper::Draw(vtkRenderer *theRenderer, vtkActor *theAc delete aColorFunctor; } - GLuint aBufferObjectID = 0; - vglGenBuffersARB( 1, &aBufferObjectID ); - vglBindBufferARB( GL_ARRAY_BUFFER_ARB, aBufferObjectID ); - - int anArrayObjectSize = sizeof( TVertex ) * aTotalConnectivitySize; - vglBufferDataARB( GL_ARRAY_BUFFER_ARB, anArrayObjectSize, aVertexArr, GL_STATIC_DRAW_ARB ); - - delete [] aVertexArr; - - vglBindBufferARB( GL_ARRAY_BUFFER_ARB, 0 ); - vglBindBufferARB( GL_ARRAY_BUFFER_ARB, aBufferObjectID ); - - glColorPointer( 4, GL_FLOAT, sizeof(TVertex), (void*)0 ); - glVertexPointer( 3, GL_FLOAT, sizeof(TVertex), (void*)(4*sizeof(GLfloat)) ); - - glEnableClientState( GL_VERTEX_ARRAY ); - glEnableClientState( GL_COLOR_ARRAY ); - - glDrawArrays( GL_POINTS, 0, aTotalConnectivitySize ); - - glDisableClientState( GL_COLOR_ARRAY ); - glDisableClientState( GL_VERTEX_ARRAY ); - - vglDeleteBuffersARB( 1, &aBufferObjectID ); + if( this->ExtensionsInitialized ) { + GLuint aBufferObjectID = 0; + vglGenBuffersARB( 1, &aBufferObjectID ); + vglBindBufferARB( GL_ARRAY_BUFFER_ARB, aBufferObjectID ); + + int anArrayObjectSize = sizeof( TVertex ) * aTotalConnectivitySize; + vglBufferDataARB( GL_ARRAY_BUFFER_ARB, anArrayObjectSize, aVertexArr, GL_STATIC_DRAW_ARB ); + + delete [] aVertexArr; + + vglBindBufferARB( GL_ARRAY_BUFFER_ARB, 0 ); + vglBindBufferARB( GL_ARRAY_BUFFER_ARB, aBufferObjectID ); + + glColorPointer( 4, GL_FLOAT, sizeof(TVertex), (void*)0 ); + glVertexPointer( 3, GL_FLOAT, sizeof(TVertex), (void*)(4*sizeof(GLfloat)) ); + + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_COLOR_ARRAY ); + + glDrawArrays( GL_POINTS, 0, aTotalConnectivitySize ); + + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); + + vglDeleteBuffersARB( 1, &aBufferObjectID ); + } else { // there are not extensions + glColorPointer( 4, GL_FLOAT, sizeof(TVertex), aVertexArr ); + glVertexPointer( 3, GL_FLOAT, sizeof(TVertex), + (void*)((GLfloat*)((void*)(aVertexArr)) + 4)); + + glEnableClientState( GL_VERTEX_ARRAY ); + glEnableClientState( GL_COLOR_ARRAY ); + + glDrawArrays( GL_POINTS, 0, aTotalConnectivitySize ); + + glDisableClientState( GL_COLOR_ARRAY ); + glDisableClientState( GL_VERTEX_ARRAY ); + + delete [] aVertexArr; + } } input->GetVerts()->GetNumberOfCells() + input->GetLines()->GetNumberOfCells() + input->GetPolys()->GetNumberOfCells() + input->GetStrips()->GetNumberOfCells(); - - - } diff --git a/src/VISUGUI/VisuGUI_GaussPointsDlg.cxx b/src/VISUGUI/VisuGUI_GaussPointsDlg.cxx index e05b0c14..8c12f0bd 100644 --- a/src/VISUGUI/VisuGUI_GaussPointsDlg.cxx +++ b/src/VISUGUI/VisuGUI_GaussPointsDlg.cxx @@ -928,6 +928,13 @@ void VisuGUI_GaussPointsDlg::initFromPrsObject( VISU::ColoredPrs3d_i* thePrs, mySizeBox->setIncrement( myPrsCopy->GetMagnificationIncrement() ); mySizeBox->setColor( myPrsCopy->GetQColor() ); + //Disable Size controls if there are no OpenGL extensions + char* ext = (char*)glGetString( GL_EXTENSIONS ); + if( strstr( ext, "GL_ARB_point_sprite" ) == NULL || + strstr( ext, "GL_ARB_shader_objects" ) == NULL || + strstr( ext, "GL_ARB_vertex_buffer_object" ) == NULL ) + mySizeBox->enableSizeControls(false); + if( !theInit ) return; diff --git a/src/VVTK/VVTK_SizeBox.cxx b/src/VVTK/VVTK_SizeBox.cxx index 06d7b68d..7d040131 100644 --- a/src/VVTK/VVTK_SizeBox.cxx +++ b/src/VVTK/VVTK_SizeBox.cxx @@ -351,6 +351,15 @@ void VVTK_SizeBox::setColor( const QColor& theColor ) //myColorButton->setPaletteBackgroundColor( theColor ); } +void VVTK_SizeBox::enableSizeControls( bool enabled ) +{ + myMagnificationSpinBox->setEnabled( enabled ); + myMaxSizeSpinBox->setEnabled( enabled ); + myMinSizeSpinBox->setEnabled( enabled ); + myIncrementSpinBox->setEnabled( enabled ); + myGeomSizeSpinBox->setEnabled( enabled ); +} + /*void VVTK_SizeBox::onColorButtonPressed() { QPalette aPalette( myColorButton->palette() ); diff --git a/src/VVTK/VVTK_SizeBox.h b/src/VVTK/VVTK_SizeBox.h index bb1f0737..296ff51d 100644 --- a/src/VVTK/VVTK_SizeBox.h +++ b/src/VVTK/VVTK_SizeBox.h @@ -80,6 +80,8 @@ public: QColor getColor() const; void setColor( const QColor& ); + void enableSizeControls( bool enabled ); + protected slots: void onToggleResults(); void onToggleGeometry(); -- 2.39.2