Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4OpenGLImmediateQtViewer.cc 97241 2016-05-30 12:06:54Z gcosmo $
|
||||
// $Id: G4OpenGLImmediateQtViewer.cc 101714 2016-11-22 08:53:13Z gcosmo $
|
||||
//
|
||||
//
|
||||
// Class G4OpenGLImmediateQtViewer : a class derived from G4OpenGLQtViewer and
|
||||
@@ -40,7 +40,7 @@
|
||||
#include "G4Threading.hh"
|
||||
#endif
|
||||
#include <qapplication.h>
|
||||
#include <qevent.h>
|
||||
#include <qtabwidget.h>
|
||||
|
||||
#ifdef G4OPENGL_VERSION_2
|
||||
#include <qglshaderprogram.h>
|
||||
@@ -55,6 +55,7 @@ G4OpenGLImmediateQtViewer::G4OpenGLImmediateQtViewer
|
||||
G4OpenGLQtViewer (sceneHandler),
|
||||
G4OpenGLImmediateViewer (sceneHandler)
|
||||
{
|
||||
fQGLWidgetInitialiseCompleted = false;
|
||||
|
||||
setFocusPolicy(Qt::StrongFocus); // enable keybord events
|
||||
fHasToRepaint = false;
|
||||
@@ -66,7 +67,7 @@ G4OpenGLImmediateQtViewer::G4OpenGLImmediateQtViewer
|
||||
setVboDrawer(new G4OpenGLVboDrawer(this,"OGL-VBO"));
|
||||
#endif
|
||||
|
||||
resize(fVP.GetWindowSizeHintX(),fVP.GetWindowSizeHintY());
|
||||
fUpdateGLLock = false;
|
||||
|
||||
if (fViewId < 0) return; // In case error in base class instantiation.
|
||||
}
|
||||
@@ -76,10 +77,21 @@ G4OpenGLImmediateQtViewer::~G4OpenGLImmediateQtViewer() {
|
||||
}
|
||||
|
||||
void G4OpenGLImmediateQtViewer::Initialise() {
|
||||
makeCurrent();
|
||||
|
||||
fQGLWidgetInitialiseCompleted = false;
|
||||
CreateMainWindow (this,QString(GetName()));
|
||||
CreateFontLists ();
|
||||
|
||||
glDrawBuffer (GL_BACK);
|
||||
|
||||
// set the good tab active
|
||||
if (QGLWidget::parentWidget()) {
|
||||
QTabWidget *parentTab = dynamic_cast<QTabWidget*> (QGLWidget::parentWidget()->parent()) ;
|
||||
if (parentTab) {
|
||||
parentTab->setCurrentIndex(parentTab->count()-1);
|
||||
}
|
||||
}
|
||||
|
||||
fQGLWidgetInitialiseCompleted = true;
|
||||
}
|
||||
|
||||
@@ -135,7 +147,6 @@ void G4OpenGLImmediateQtViewer::initializeGL () {
|
||||
}
|
||||
|
||||
// Set the component visible
|
||||
setVisible(true) ;
|
||||
|
||||
// and update it immediatly before wait for SessionStart() (batch mode)
|
||||
// QCoreApplication::sendPostedEvents () ;
|
||||
@@ -205,7 +216,7 @@ void G4OpenGLImmediateQtViewer::paintGL()
|
||||
// return ;
|
||||
}
|
||||
if (!fQGLWidgetInitialiseCompleted) {
|
||||
fQGLWidgetInitialiseCompleted= true;
|
||||
fPaintEventLock = false;
|
||||
return;
|
||||
}
|
||||
if ((getWinWidth() == 0) && (getWinHeight() == 0)) {
|
||||
@@ -267,7 +278,9 @@ void G4OpenGLImmediateQtViewer::wheelEvent (QWheelEvent * event)
|
||||
|
||||
void G4OpenGLImmediateQtViewer::showEvent (QShowEvent *)
|
||||
{
|
||||
fHasToRepaint = true;
|
||||
if (fQGLWidgetInitialiseCompleted) {
|
||||
fHasToRepaint = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -297,6 +310,11 @@ void G4OpenGLImmediateQtViewer::contextMenuEvent(QContextMenuEvent *e)
|
||||
}
|
||||
|
||||
void G4OpenGLImmediateQtViewer::paintEvent(QPaintEvent *) {
|
||||
if (! fQGLWidgetInitialiseCompleted) {
|
||||
return;
|
||||
}
|
||||
// Force a repaint next time if the FRAMEBUFFER is not READY
|
||||
fHasToRepaint = isFramebufferReady();
|
||||
if ( fHasToRepaint) {
|
||||
updateGL();
|
||||
}
|
||||
@@ -304,11 +322,20 @@ void G4OpenGLImmediateQtViewer::paintEvent(QPaintEvent *) {
|
||||
|
||||
|
||||
void G4OpenGLImmediateQtViewer::updateQWidget() {
|
||||
if (fUpdateGLLock) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (! isCurrentWidget()){
|
||||
return;
|
||||
}
|
||||
|
||||
fUpdateGLLock = true;
|
||||
fHasToRepaint= true;
|
||||
updateGL();
|
||||
updateSceneTreeComponentTreeWidgetInfos();
|
||||
repaint();
|
||||
fHasToRepaint= false;
|
||||
updateViewerPropertiesTableWidget();
|
||||
updateSceneTreeWidget();
|
||||
fUpdateGLLock= false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user