Ignore:
Timestamp:
Nov 6, 2008, 2:44:17 PM (16 years ago)
Author:
garnier
Message:

OpenGL Qt improvments. See History file

Location:
trunk/source/visualization/OpenGL
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/visualization/OpenGL/include/G4OpenGLImmediateQtViewer.hh

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateQtViewer.hh,v 1.3 2007/11/09 15:03:21 lgarnier Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLImmediateQtViewer.hh,v 1.4 2008/11/06 13:43:44 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    6161  void paintGL();
    6262  void updateQWidget();
     63  void ShowView ();
    6364
    6465protected:
     
    7071  void contextMenuEvent(QContextMenuEvent *e);
    7172  void keyPressEvent (QKeyEvent * event);
     73private:
     74  void ComputeView ();
     75
    7276};
    7377
  • trunk/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLQtViewer.hh,v 1.12 2008/10/15 10:24:04 lgarnier Exp $
     27// $Id: G4OpenGLQtViewer.hh,v 1.13 2008/11/06 13:43:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    7272  virtual ~G4OpenGLQtViewer ();
    7373  void SetView ();
    74   void ShowView ();
    7574  virtual void updateQWidget()=0;
    7675  void setupViewport(int, int);
  • trunk/source/visualization/OpenGL/include/G4OpenGLStoredQtViewer.hh

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredQtViewer.hh,v 1.6 2008/06/20 13:55:06 lgarnier Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLStoredQtViewer.hh,v 1.7 2008/11/06 13:43:44 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    6262  void paintGL();
    6363  void updateQWidget();
     64  void ShowView ();
    6465
    6566protected:
     
    7172  void contextMenuEvent(QContextMenuEvent *e);
    7273  void keyPressEvent (QKeyEvent * event);
     74private:
     75  void ComputeView ();
    7376
    7477  //  QImage glBufferImage;
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateQtViewer.cc,v 1.6 2008/10/24 13:49:19 lgarnier Exp $
     27// $Id: G4OpenGLImmediateQtViewer.cc,v 1.7 2008/11/06 13:43:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    7878  InitializeGLView ();
    7979
    80 #ifdef G4DEBUG
    81   printf("G4OpenGLImmediateQtViewer::InitialiseGL ()\n");
    82 #endif
    8380
    8481  // If a double buffer context has been forced upon us, ignore the
     
    9895  }
    9996
    100 #ifdef G4DEBUG
    101   printf("G4OpenGLImmediateQtViewer::InitialiseGL END\n");
    102 #endif
    103 }
    104 
    105 
    106 void G4OpenGLImmediateQtViewer::DrawView () {
    107 
    108 #ifdef G4DEBUG
    109   printf("G4OpenGLImmediateQtViewer::DrawView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y);
    110 #endif
     97}
     98
     99
     100/** To ensure compatibility with DrawView method
     101 */
     102void  G4OpenGLImmediateQtViewer::DrawView() {
     103#ifdef G4DEBUG
     104  printf("G4OpenGLImmediateQtViewer::DrawView  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n");
     105#endif
     106  // That's no the same logic as Stored Viewer, I don't know why...
     107  // see G4OpenGLStoredQtViewer::DrawView for more informations
     108
     109  updateQWidget();
     110#ifdef G4DEBUG
     111  printf("G4OpenGLImmediateQtViewer::DrawView  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
     112#endif
     113}
     114
     115
     116void G4OpenGLImmediateQtViewer::ComputeView () {
     117
     118#ifdef G4DEBUG
     119  printf("G4OpenGLImmediateQtViewer::ComputeView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y);
     120#endif
     121  makeCurrent();
    111122  // If a double buffer context has been forced upon us, ignore the
    112123  // back buffer for this OpenGLImmediate view.
     
    117128  //Make sure current viewer is attached and clean...
    118129  //Qt version needed
    119   glViewport (0, 0, WinSize_x, WinSize_y);
     130  //  glViewport (0, 0, WinSize_x, WinSize_y);
    120131
    121132  if(style!=G4ViewParameters::hlr &&
     
    127138    glFlush ();
    128139#ifdef G4DEBUG
    129   printf("G4OpenGLImmediateQtViewer::DrawView First ProcessView ok\n");
     140  printf("G4OpenGLImmediateQtViewer::ComputeView First ProcessView ok\n");
    130141#endif
    131142    HaloingSecondPass ();
     
    133144  }
    134145
    135 #ifdef G4DEBUG
    136   printf("G4OpenGLImmediateQtViewer::DrawView before needKernelVisit %d\n",fNeedKernelVisit);
    137 #endif
    138146  NeedKernelVisit ();  // Always need to visit G4 kernel.
    139 #ifdef G4DEBUG
    140   printf("G4OpenGLImmediateQtViewer::DrawView before ProcessView\n");
    141 #endif
    142147  ProcessView ();
    143 #ifdef G4DEBUG
    144   printf("G4OpenGLImmediateQtViewer::DrawView before FinishView ok\n");
    145 #endif
    146   FinishView ();
    147148
    148149  if (isRecording()) {
     
    151152   
    152153#ifdef G4DEBUG
    153   printf("G4OpenGLImmediateQtViewer::DrawView %d %d ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n",WinSize_x, WinSize_y);
     154  printf("G4OpenGLImmediateQtViewer::ComputeView %d %d ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n",WinSize_x, WinSize_y);
    154155#endif
    155156  hasToRepaint = true;
     
    158159void G4OpenGLImmediateQtViewer::FinishView()
    159160{
    160    glFlush ();
     161#ifdef G4DEBUG
     162  printf("G4OpenGLImmediateQtViewer::FinishView() BEGIN\n");
     163#endif
     164  glFlush ();
     165#ifdef G4DEBUG
     166  printf("G4OpenGLImmediateQtViewer::FinishView() END\n");
     167#endif
     168
    161169}
    162170
     
    166174*/
    167175void G4OpenGLImmediateQtViewer::resizeGL(
    168                                          int aWidth
    169                                          ,int aHeight)
     176 int aWidth
     177,int aHeight)
    170178
    171179  G4resizeGL(aWidth,aHeight);
     
    199207   
    200208  ClearView (); //ok, put the background correct
    201   DrawView();
    202 
    203   hasToRepaint = false; // could be set to false by DrawView
    204 
     209  ComputeView();
     210
     211  hasToRepaint = false; // could be set to false by ComputeView
    205212
    206213#ifdef G4DEBUG
     
    255262}
    256263
    257 #endif
     264
     265void G4OpenGLImmediateQtViewer::ShowView (
     266)
     267//////////////////////////////////////////////////////////////////////////////
     268//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
     269{
     270#if QT_VERSION < 0x040000
     271  setActiveWindow();
     272#else
     273  activateWindow();
     274#endif
     275}
     276#endif
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc

    r873 r877  
    2626//
    2727// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.30 2008/04/04 13:32:22 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    209209    fpViewer -> SetView ();
    210210    fpViewer -> ClearView ();
    211     printf("G4OpenGLImmediateSceneHandler::ClearTransientStore----------------------------------------------\n");
    212211    fpViewer -> DrawView ();
    213212  }
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc

    r873 r877  
    2626//
    2727// $Id: G4OpenGLImmediateXmViewer.cc,v 1.17 2006/07/03 16:38:13 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    8888void G4OpenGLImmediateXmViewer::DrawView () {
    8989
    90 #ifdef G4DEBUG
    91   printf("G4OpenGLImmediateXmViewer::DrawView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y);
    92 #endif
    9390  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
    9491
     
    104101    ProcessView ();
    105102    glFlush ();
    106 #ifdef G4DEBUG
    107   printf("G4OpenGLImmediateXmViewer::DrawView First ProcessView ok\n");
    108 #endif
    109103
    110104    HaloingSecondPass ();
     
    112106  }
    113107
    114 #ifdef G4DEBUG
    115   printf("G4OpenGLImmediateXmViewer::DrawView before needKernelVisit %d\n",fNeedKernelVisit);
    116 #endif
    117108  NeedKernelVisit ();  // Always need to visit G4 kernel.
    118 #ifdef G4DEBUG
    119   printf("G4OpenGLImmediateXmViewer::DrawView before ProcessView\n");
    120 #endif
    121109  ProcessView ();
    122 #ifdef G4DEBUG
    123   printf("G4OpenGLImmediateXmViewer::DrawView before FinishView ok\n");
    124 #endif
    125110  FinishView ();
    126111
  • trunk/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLQtViewer.cc,v 1.26 2008/10/07 03:39:47 lgarnier Exp $
     27// $Id: G4OpenGLQtViewer.cc,v 1.30 2008/11/06 13:43:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    8686//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
    8787{
    88 #ifdef G4DEBUG
    89   printf("G4OpenGLQtViewer::SetView\n");
    90 #endif
    9188  G4OpenGLViewer::SetView ();
    9289}
     
    108105
    109106
    110 //////////////////////////////////////////////////////////////////////////////
    111 /**
    112    Implementation of virtual method of G4VViewer
    113 */
    114 void G4OpenGLQtViewer::ShowView (
    115 )
    116 //////////////////////////////////////////////////////////////////////////////
    117 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
    118 {
    119   if (!GLWindow) {
    120     G4cerr << "Visualization window not defined, please choose one before\n" << G4endl;
    121   } else {
    122 #if QT_VERSION < 0x040000
    123     GLWindow->setActiveWindow();
    124 #else
    125     GLWindow->activateWindow();
    126 #endif
    127   }
    128   glFlush ();
    129 }
    130107
    131108
     
    145122  printf("G4OpenGLQtViewer::CreateMainWindow glWidget\n");
    146123#endif
    147 
    148   // check if it is already launched,
    149   // if not, we suppose that the G4Qt is not launch.
    150   //  bool isReady = G4Qt::Inited();
    151124
    152125  // launch Qt if not
     
    15771550void G4OpenGLQtViewer::G4MouseMoveEvent(QMouseEvent *event)
    15781551{
    1579 
    15801552 
    15811553#if QT_VERSION < 0x040000
  • trunk/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc

    r850 r877  
    2626//
    2727// $Id: G4OpenGLSceneHandler.cc,v 1.54 2008/04/04 13:32:22 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     28// GEANT4 tag $Name: $
    2929//
    3030//
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredQtViewer.cc,v 1.19 2008/10/24 13:49:19 lgarnier Exp $
     27// $Id: G4OpenGLStoredQtViewer.cc,v 1.20 2008/11/06 13:43:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    108108
    109109void G4OpenGLStoredQtViewer::DrawView () {
    110 
    111 #ifdef G4DEBUG
    112   printf("G4OpenGLStoredQtViewer::DrawView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y);
    113 #endif
     110#ifdef G4DEBUG
     111  printf("G4OpenGLStoredQtViewer::DrawView  VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n");
     112#endif
     113  // That's no the same logic as Immediate Viewer, I don't know why...
     114  // But if I send updateGL here, we go here :
     115  //  updateQWidget -> paintGL -> ComputeView
     116  // whih is not the same as ComputeView Directly
     117  // And we loose the redraw of things !
     118 
     119  ComputeView();
     120#ifdef G4DEBUG
     121  printf("G4OpenGLStoredQtViewer::DrawView  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
     122#endif
     123}
     124
     125void G4OpenGLStoredQtViewer::ComputeView () {
     126
     127#ifdef G4DEBUG
     128  printf("G4OpenGLStoredQtViewer::ComputeView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y);
     129#endif
     130  makeCurrent();
    114131  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
    115132
    116133  //Make sure current viewer is attached and clean...
    117   //Qt version needed
    118   //   glViewport (0, 0, WinSize_x, WinSize_y);
    119134
    120135  //See if things have changed from last time and remake if necessary...
     
    123138  // if necessary...
    124139  if (!fNeedKernelVisit) {
    125     if (!fNeedKernelVisit) KernelVisitDecision ();
     140    KernelVisitDecision ();
    126141  }
    127142  G4bool kernelVisitWasNeeded = fNeedKernelVisit; // Keep (ProcessView resets).
     
    132147     haloing_enabled) {
    133148#ifdef G4DEBUG
    134     printf("G4OpenGLStoredQtViewer::DrawView DANS LE IF\n");
     149    printf("G4OpenGLStoredQtViewer::ComputeView DANS LE IF\n");
    135150#endif
    136151
     
    150165    if (!kernelVisitWasNeeded) {
    151166#ifdef G4DEBUG
    152       printf("**************************  G4OpenGLStoredQtViewer::DrawView Don't need kernel Visit \n");
     167      printf("**************************  G4OpenGLStoredQtViewer::ComputeView Don't need kernel Visit \n");
    153168#endif
    154169      DrawDisplayLists ();
     
    156171    } else {
    157172#ifdef G4DEBUG
    158       printf("**************************  G4OpenGLStoredQtViewer::DrawView need kernel Visit \n");
     173      printf("**************************  G4OpenGLStoredQtViewer::ComputeView need kernel Visit \n");
    159174#endif
    160175      // However, union cutaways are implemented in DrawDisplayLists, so make
     
    180195
    181196#ifdef G4DEBUG
    182   printf("G4OpenGLStoredQtViewer::DrawView %d %d ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n",WinSize_x, WinSize_y);
     197  printf("G4OpenGLStoredQtViewer::ComputeView %d %d ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n",WinSize_x, WinSize_y);
    183198#endif
    184199  hasToRepaint =true;
     
    225240         
    226241  ClearView (); //ok, put the background correct
    227   DrawView();
     242  ComputeView();
    228243     
    229244  hasToRepaint =false;
     
    280295}
    281296
    282 
    283 #endif
     297void G4OpenGLStoredQtViewer::ShowView (
     298)
     299//////////////////////////////////////////////////////////////////////////////
     300//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
     301{
     302#if QT_VERSION < 0x040000
     303  setActiveWindow();
     304#else
     305  activateWindow();
     306#endif
     307  updateQWidget();
     308}
     309
     310#endif
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc

    r873 r877  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredSceneHandler.cc,v 1.38 2008/04/28 16:19:39 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLStoredSceneHandler.cc,v 1.39 2008/11/06 13:43:44 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    172172  }
    173173
    174   if ((glGetError() == GL_TABLE_TOO_LARGE) || (glGetError() == GL_OUT_OF_MEMORY)) {  // Could close?
     174  //  if ((glGetError() == GL_TABLE_TOO_LARGE) || (glGetError() == GL_OUT_OF_MEMORY)) {  // Could close?
     175  if (glGetError() == GL_OUT_OF_MEMORY) {  // Could close?
    175176    G4cout <<
    176177      "ERROR: G4OpenGLStoredSceneHandler::EndModeling: Failure to allocate"
     
    363364    fpViewer -> SetView ();
    364365    fpViewer -> ClearView ();
    365     printf("G4OpenGLStoredSceneHandler::ClearTransientStore----------------------------------------------\n");
    366366    fpViewer -> DrawView ();
    367367  }
Note: See TracChangeset for help on using the changeset viewer.