Changeset 1049


Ignore:
Timestamp:
May 26, 2009, 3:34:36 PM (15 years ago)
Author:
garnier
Message:

update pas dans CVS

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

Legend:

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

    r915 r1049  
    202202                               XtPointer callData);
    203203 
     204  static void activate_callback (Widget w,
     205                               XtPointer clientData,
     206                               XtPointer callData);
     207 
    204208  static void actions_callback (Widget w,
    205209                                XtPointer clientData,
     
    373377  G4OpenGLXmViewer (const G4OpenGLXmViewer&);
    374378  G4OpenGLXmViewer& operator = (const G4OpenGLXmViewer&);
    375  
    376379};
    377380
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc

    r915 r1049  
    5858(G4VGraphicsSystem& system,const G4String& name):
    5959  G4OpenGLSceneHandler (system, fSceneIdCount++, name)
    60 {}
     60{
     61#ifdef G4DEBUG_VIS_OGL
     62  printf("INIT G4OpenGLImmediateSceneHandler (after G4OpenGLSceneHandler (system, fSceneIdCount++, name)\n");
     63#endif
     64}
    6165
    6266G4OpenGLImmediateSceneHandler::~G4OpenGLImmediateSceneHandler ()
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc

    r948 r1049  
    4242G4VViewer (scene, -1),
    4343G4OpenGLViewer (scene)
    44 {}
     44{
     45#ifdef G4DEBUG_VIS_OGL
     46  printf("INIT G4OpenGLImmediateViewer (after G4VViewer and G4OpenGLVIewer \n");
     47#endif
     48}
    4549
    4650void G4OpenGLImmediateViewer::ProcessView ()
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc

    r1047 r1049  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateWin32.cc,v 1.11 2006/08/14 12:07:19 allison Exp $
    28 // GEANT4 tag $Name: geant4-09-02-ref-02 $
     27// $Id: G4OpenGLImmediateWin32.cc,v 1.13 2009/05/20 09:58:10 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    6060(G4VSceneHandler& scene, const G4String& name) {
    6161  G4VViewer* pView =
    62     new G4OpenGLImmediateWin32Viewer 
     62    new G4OpenGLImmediateWin32Viewer
    6363    ((G4OpenGLImmediateSceneHandler&) scene, name);
    6464  if (pView) {
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc

    r906 r1049  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.17 2009/01/13 09:47:05 lgarnier Exp $
     27// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.19 2009/05/20 10:19:51 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    3535
    3636#include "G4OpenGLImmediateWin32Viewer.hh"
     37#include "G4OpenGLImmediateSceneHandler.hh"
    3738
    3839#include "G4ios.hh"
     
    8081  //Win32 version needed
    8182  //glXMakeCurrent (dpy, win, cx);
    82   glViewport (0, 0, fWinSize_x, fWinSize_y);
     83  glViewport (0, 0, getWinWidth(), getWinHeight());
    8384
    8485  if(style!=G4ViewParameters::hlr &&
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc

    r915 r1049  
    5050                     G4VGraphicsSystem::threeD)
    5151{
     52#ifdef G4DEBUG_VIS_OGL
     53  printf("INIT G4OpenGLImmediateXm (after   G4VGraphicsSystem (,,)\n");
     54#endif
    5255  G4OpenGLViewerMessenger::GetInstance();
    5356  G4OpenGLXmViewerMessenger::GetInstance();
  • trunk/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc

    r1036 r1049  
    7474  fProcessing2D (false),
    7575  fProcessingPolymarker(false)
    76 {}
     76{
     77#ifdef G4DEBUG_VIS_OGL
     78  printf("INIT G4OpenGLSceneHandler (after G4OpenGLSceneHandler G4VSceneHandler (system, id, name)\n");
     79#endif
     80}
    7781
    7882G4OpenGLSceneHandler::~G4OpenGLSceneHandler ()
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLStoredWin32.cc
    2827// $Id: G4OpenGLStoredWin32.cc,v 1.14 2006/08/14 12:07:19 allison Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLStoredWin32.cc,v 1.15 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.15
    3429//
    3530//
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredX.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLStoredX.cc
    2827// $Id: G4OpenGLStoredX.cc,v 1.14 2007/08/21 14:05:51 allison Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLStoredX.cc,v 1.15 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.15
    3429//
    3530//
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLStoredXm.cc
    28 // $Id: G4OpenGLStoredXm.cc,v 1.11 2006/08/14 12:07:19 allison Exp $
    29 // GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    3127// $Id: G4OpenGLStoredXm.cc,v 1.12 2009/01/19 16:53:42 lgarnier Exp $
    3228// GEANT4 tag $Name:  $
    33 >>>>>>> 1.12
    3429//
    3530//
  • trunk/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLTransform3D.cc
    2827// $Id: G4OpenGLTransform3D.cc,v 1.8 2006/06/29 21:19:32 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLTransform3D.cc,v 1.9 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.9
    3429//
    3530//
  • trunk/source/visualization/OpenGL/src/G4OpenGLViewer.cc

    r1046 r1049  
    667667    return 0;
    668668  }
     669#ifdef G4DEBUG_VIS_OGL
     670  printf("G4OpenGLViewer::getRealPrintSizeX :: %d",fPrintSizeX);
     671#endif
    669672  return fPrintSizeX;
    670673}
     
    682685    return 0;
    683686  }
     687#ifdef G4DEBUG_VIS_OGL
     688  printf("G4OpenGLViewer::getRealPrintSizeY :: %d",fPrintSizeY);
     689#endif
    684690  return fPrintSizeY;
    685691}
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLXmSliderBar.cc
    2827// $Id: G4OpenGLXmSliderBar.cc,v 1.7 2006/06/29 21:20:00 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLXmSliderBar.cc,v 1.8 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.8
    3429//
    3530//Slider bar class. Inherits from G4OpenGLXmVWidgetComponent
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLXmVWidgetComponent.cc
    2827// $Id: G4OpenGLXmVWidgetComponent.cc,v 1.5 2006/06/29 21:20:08 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLXmVWidgetComponent.cc,v 1.6 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.6
    3429//
    3530//Base class for all Motif component widgets
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLXmVWidgetContainer.cc
    2827// $Id: G4OpenGLXmVWidgetContainer.cc,v 1.5 2006/06/29 21:20:10 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLXmVWidgetContainer.cc,v 1.7 2009/03/13 09:50:03 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.7
    3429//
    3530//Base class for all Motif container widgets
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLXmVWidgetShell.cc
    2827// $Id: G4OpenGLXmVWidgetShell.cc,v 1.5 2006/06/29 21:20:14 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLXmVWidgetShell.cc,v 1.6 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.6
    3429//
    3530//Base class for all Motif shell widgets
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc

    r1041 r1049  
    629629                        frame      // widget to be used for work window
    630630                        );
    631 
     631 
    632632  XtRealizeWidget(shell);
    633633 
     
    636636
    637637  win = XtWindow (glxarea);
     638 
     639  /* Change once the bit gravity of the Drawing Area; default
     640     is north west and we want forget, so that resize
     641     always generates exposure events */
     642   XSetWindowAttributes attrs;
     643   attrs.bit_gravity = ForgetGravity ;
     644   XChangeWindowAttributes(XtDisplay(glxarea), win,
     645                               CWBitGravity, &attrs);
    638646
    639647  glXMakeCurrent (dpy, win, cx);
    640648
    641   // This should be add AFTER glXMakeCurrent done because it will fire a resizeCallback
     649   // This should be add AFTER glXMakeCurrent done because it will fire a resizeCallback
    642650  XtAddCallback (glxarea,
    643                  XmNresizeCallback,
    644                  resize_callback,
    645                  this);
    646 
     651                 XmNresizeCallback,
     652                 resize_callback,
     653                 this);
     654 
    647655  XtAddCallback (glxarea,
    648656                 XmNexposeCallback,
    649657                 expose_callback,
     658                 this);
     659
     660  XtAddCallback (glxarea,
     661                 XmNactivateCallback,
     662                 activate_callback,
    650663                 this);
    651664
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmViewerMessenger.cc

    r1046 r1049  
    2525//
    2626//
    27 <<<<<<< G4OpenGLXmViewerMessenger.cc
    2827// $Id: G4OpenGLXmViewerMessenger.cc,v 1.4 2006/06/29 21:20:18 gunter Exp $
    2928// GEANT4 tag $Name: geant4-09-02-ref-02 $
    30 =======
    31 // $Id: G4OpenGLXmViewerMessenger.cc,v 1.5 2009/01/19 16:53:42 lgarnier Exp $
    32 // GEANT4 tag $Name:  $
    33 >>>>>>> 1.5
    3429
    3530#ifdef G4VIS_BUILD_OPENGLXM_DRIVER
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc

    r1041 r1049  
    3535
    3636#ifdef G4VIS_BUILD_OPENGLXM_DRIVER
    37 
     37//#define RESIZE_TEST
    3838#include "G4OpenGLXmViewer.hh"
    3939
     40
     41
     42// L. Garnier 20 May 2009
     43// Each resize event send 2-3-4 expose events. Sequence on MacOsX 10.5 is :
     44// - Expose(s) callback for pixels top/left from resize button
     45// - Resize callback
     46// - Expose for main part of content
     47// - Expose(s) for new part of content
     48//
     49// BUT we want to redraw things only ONE time.
     50// First expose is send with size=="before resize" size and x,y !=0
     51// and  x+dw!=w || y+dh !=h
    4052void G4OpenGLXmViewer::resize_callback (Widget w,
    4153                                      XtPointer clientData,
    42                                       XtPointer x)
    43 {
    44   expose_callback(w,clientData,x);
    45 }
    46 
    47 
    48 
    49 void G4OpenGLXmViewer::expose_callback (Widget w,
    50                                       XtPointer clientData,
    51                                       XtPointer)
    52 {
     54                                      XtPointer callData)
     55{
     56#ifdef G4DEBUG_VIS_OGL
     57  printf("G4OpenGLXmViewer::resize_callback \n");
     58#endif
     59  XmDrawingAreaCallbackStruct *data = (XmDrawingAreaCallbackStruct *)callData;
     60
     61  XEvent                       event;
     62
     63  // flush others resize events
     64#ifdef G4DEBUG_VIS_OGL
     65  while (XCheckWindowEvent(XtDisplay(w), data->window,
     66                           ResizeRedirectMask, &event)) {
     67    printf("G4OpenGLXmViewer::resize_callback ------ next RESIZE ! %d\n");
     68  }
     69#endif
     70#ifdef RESIZE_TEST
    5371  G4OpenGLXmViewer* pView = (G4OpenGLXmViewer*) clientData;
    5472  Dimension width, height;
     
    5876                 XmNheight, &height,
    5977                 NULL);
    60 
    6178  pView->ResizeWindow(width,height);
    62 
    63   glXMakeCurrent (pView->dpy, XtWindow(pView->glxarea), pView->cx);
    64 
     79#endif
     80}
     81
     82
     83void G4OpenGLXmViewer::activate_callback (Widget w,
     84                                      XtPointer clientData,
     85                                      XtPointer callData)
     86{
     87#ifdef G4DEBUG_VIS_OGL
     88  printf("G4OpenGLXmViewer::activate_callback \n");
     89#endif
     90}
     91
     92void G4OpenGLXmViewer::expose_callback (Widget w,
     93                                      XtPointer clientData,
     94                                      XtPointer callData)
     95{
     96  /* ensure last expose event in sequence */
     97#ifdef G4DEBUG_VIS_OGL
     98  printf("G4OpenGLXmViewer::expose_callback ?\n");
     99#endif
     100  XmDrawingAreaCallbackStruct *data = (XmDrawingAreaCallbackStruct *)callData;
     101
     102  XEvent                       event;
     103
     104  Dimension width, height;
     105  G4OpenGLXmViewer* pView = (G4OpenGLXmViewer*) clientData;
     106
     107  XtVaGetValues (w,
     108                 XmNwidth, &width,
     109                 XmNheight, &height,
     110                 NULL);
     111 
     112  XSetWindowAttributes xswa;
     113  xswa.bit_gravity = ForgetGravity ;
     114  XChangeWindowAttributes(XtDisplay(w), XtWindow(w),
     115                          CWBitGravity, &xswa);
     116 
     117    // look for next
     118    //    while (XCheckTypedWindowEvent(XtDisplay(w), XtWindow(w), ResizeRequest, &event)) {
     119    //    printf("G4OpenGLXmViewer::expose_callback --- event type :%d\n",event.type);
     120    //    printf("G4OpenGLXmViewer::expose_callback --- resize %d\n",event.type);
     121    //  }
     122   
     123  // Several expose events are send for each area to be redraw.
     124  // Because we want to optimise redrawing, we only need to redraw once.
     125    if (((XExposeEvent *) data->event)->count != 0) {
     126#ifdef G4DEBUG_VIS_OGL
     127      printf("G4OpenGLXmViewer::expose_callback NOOOOO %d %d type:%d number:%d send:%d x:%d y:%d w:%d h:%d c:%d\n",width,height,
     128           ((XExposeEvent *) data->event)->type,
     129           ((XExposeEvent *) data->event)->serial,
     130           ((XExposeEvent *) data->event)->send_event,
     131           ((XExposeEvent *) data->event)->x,
     132           ((XExposeEvent *) data->event)->y,
     133           ((XExposeEvent *) data->event)->width,
     134           ((XExposeEvent *) data->event)->height,
     135           ((XExposeEvent *) data->event)->count);
     136
     137
     138#endif
     139      return;
     140    }
     141#ifdef G4DEBUG_VIS_OGL
     142    printf("G4OpenGLXmViewer::expose_callback Should redraw %d %d type:%d number:%d send:%d x:%d y:%d w:%d h:%d c:%d\n",width,height,
     143           ((XExposeEvent *) data->event)->type,
     144           ((XExposeEvent *) data->event)->serial,
     145           ((XExposeEvent *) data->event)->send_event,
     146           ((XExposeEvent *) data->event)->x,
     147           ((XExposeEvent *) data->event)->y,
     148           ((XExposeEvent *) data->event)->width,
     149           ((XExposeEvent *) data->event)->height,
     150           ((XExposeEvent *) data->event)->count);
     151#endif
     152   
     153#ifdef G4DEBUG_VIS_OGL
     154    while (XCheckMaskEvent(XtDisplay(w), ResizeRedirectMask, &event)) {
     155      //       printf("G4OpenGLXmViewer::expose_callback ------ next EXPOSE ! %d\n");
     156      //     }
     157      //     while (XCheckWindowEvent(XtDisplay(w), data->window,
     158      //                              ResizeRedirectMask, &event)) {
     159      printf("G4OpenGLXmViewer::expose_callback ------ next RESIZE ! \n");
     160    }
     161#endif
     162 
     163#ifdef RESIZE_TEST
     164    glXMakeCurrent (pView->dpy, XtWindow(pView->glxarea), pView->cx);
     165#ifdef G4DEBUG_VIS_OGL
     166  G4cout << "G4OpenGLXmViewer::expose_callback" << G4endl;
     167  printf("G4OpenGLXmViewer::expose_callback Call SetView()\n");
     168#endif
    65169  pView->SetView ();
     170#ifdef G4DEBUG_VIS_OGL
     171  printf("G4OpenGLXmViewer::expose_callback Call SetView() END \n");
     172  printf("G4OpenGLXmViewer::expose_callback Call ClearView() \n");
     173#endif
    66174  pView->ClearView ();
     175#ifdef G4DEBUG_VIS_OGL
     176  printf("G4OpenGLXmViewer::expose_callback Call ClearView() END \n");
     177  printf("G4OpenGLXmViewer::expose_callback Call DrawView() \n");
     178#endif
    67179  pView->DrawView ();
     180#ifdef G4DEBUG_VIS_OGL
     181  printf("G4OpenGLXmViewer::expose_callback Call DrawView() END \n");
     182  G4cout << "G4OpenGLXmViewer::expose_callback END" << G4endl;
     183#endif
     184#endif
     185  return;
     186   
     187 
    68188}
    69189
Note: See TracChangeset for help on using the changeset viewer.