Changeset 1049 for trunk/source/visualization/OpenGL
- Timestamp:
- May 26, 2009, 3:34:36 PM (15 years ago)
- Location:
- trunk/source/visualization/OpenGL
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh
r915 r1049 202 202 XtPointer callData); 203 203 204 static void activate_callback (Widget w, 205 XtPointer clientData, 206 XtPointer callData); 207 204 208 static void actions_callback (Widget w, 205 209 XtPointer clientData, … … 373 377 G4OpenGLXmViewer (const G4OpenGLXmViewer&); 374 378 G4OpenGLXmViewer& operator = (const G4OpenGLXmViewer&); 375 376 379 }; 377 380 -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc
r915 r1049 58 58 (G4VGraphicsSystem& system,const G4String& name): 59 59 G4OpenGLSceneHandler (system, fSceneIdCount++, name) 60 {} 60 { 61 #ifdef G4DEBUG_VIS_OGL 62 printf("INIT G4OpenGLImmediateSceneHandler (after G4OpenGLSceneHandler (system, fSceneIdCount++, name)\n"); 63 #endif 64 } 61 65 62 66 G4OpenGLImmediateSceneHandler::~G4OpenGLImmediateSceneHandler () -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc
r948 r1049 42 42 G4VViewer (scene, -1), 43 43 G4OpenGLViewer (scene) 44 {} 44 { 45 #ifdef G4DEBUG_VIS_OGL 46 printf("INIT G4OpenGLImmediateViewer (after G4VViewer and G4OpenGLVIewer \n"); 47 #endif 48 } 45 49 46 50 void G4OpenGLImmediateViewer::ProcessView () -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc
r1047 r1049 25 25 // 26 26 // 27 // $Id: G4OpenGLImmediateWin32.cc,v 1.1 1 2006/08/14 12:07:19 allisonExp $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: $ 29 29 // 30 30 // … … 60 60 (G4VSceneHandler& scene, const G4String& name) { 61 61 G4VViewer* pView = 62 new G4OpenGLImmediateWin32Viewer 62 new G4OpenGLImmediateWin32Viewer 63 63 ((G4OpenGLImmediateSceneHandler&) scene, name); 64 64 if (pView) { -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc
r906 r1049 25 25 // 26 26 // 27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.1 7 2009/01/13 09:47:05lgarnier Exp $27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.19 2009/05/20 10:19:51 lgarnier Exp $ 28 28 // GEANT4 tag $Name: $ 29 29 // … … 35 35 36 36 #include "G4OpenGLImmediateWin32Viewer.hh" 37 #include "G4OpenGLImmediateSceneHandler.hh" 37 38 38 39 #include "G4ios.hh" … … 80 81 //Win32 version needed 81 82 //glXMakeCurrent (dpy, win, cx); 82 glViewport (0, 0, fWinSize_x, fWinSize_y);83 glViewport (0, 0, getWinWidth(), getWinHeight()); 83 84 84 85 if(style!=G4ViewParameters::hlr && -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc
r915 r1049 50 50 G4VGraphicsSystem::threeD) 51 51 { 52 #ifdef G4DEBUG_VIS_OGL 53 printf("INIT G4OpenGLImmediateXm (after G4VGraphicsSystem (,,)\n"); 54 #endif 52 55 G4OpenGLViewerMessenger::GetInstance(); 53 56 G4OpenGLXmViewerMessenger::GetInstance(); -
trunk/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc
r1036 r1049 74 74 fProcessing2D (false), 75 75 fProcessingPolymarker(false) 76 {} 76 { 77 #ifdef G4DEBUG_VIS_OGL 78 printf("INIT G4OpenGLSceneHandler (after G4OpenGLSceneHandler G4VSceneHandler (system, id, name)\n"); 79 #endif 80 } 77 81 78 82 G4OpenGLSceneHandler::~G4OpenGLSceneHandler () -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLStoredWin32.cc28 27 // $Id: G4OpenGLStoredWin32.cc,v 1.14 2006/08/14 12:07:19 allison Exp $ 29 28 // 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.1534 29 // 35 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredX.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLStoredX.cc28 27 // $Id: G4OpenGLStoredX.cc,v 1.14 2007/08/21 14:05:51 allison Exp $ 29 28 // 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.1534 29 // 35 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLStoredXm.cc28 // $Id: G4OpenGLStoredXm.cc,v 1.11 2006/08/14 12:07:19 allison Exp $29 // GEANT4 tag $Name: geant4-09-02-ref-02 $30 =======31 27 // $Id: G4OpenGLStoredXm.cc,v 1.12 2009/01/19 16:53:42 lgarnier Exp $ 32 28 // GEANT4 tag $Name: $ 33 >>>>>>> 1.1234 29 // 35 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLTransform3D.cc28 27 // $Id: G4OpenGLTransform3D.cc,v 1.8 2006/06/29 21:19:32 gunter Exp $ 29 28 // 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.934 29 // 35 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLViewer.cc
r1046 r1049 667 667 return 0; 668 668 } 669 #ifdef G4DEBUG_VIS_OGL 670 printf("G4OpenGLViewer::getRealPrintSizeX :: %d",fPrintSizeX); 671 #endif 669 672 return fPrintSizeX; 670 673 } … … 682 685 return 0; 683 686 } 687 #ifdef G4DEBUG_VIS_OGL 688 printf("G4OpenGLViewer::getRealPrintSizeY :: %d",fPrintSizeY); 689 #endif 684 690 return fPrintSizeY; 685 691 } -
trunk/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLXmSliderBar.cc28 27 // $Id: G4OpenGLXmSliderBar.cc,v 1.7 2006/06/29 21:20:00 gunter Exp $ 29 28 // 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.834 29 // 35 30 //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent -
trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLXmVWidgetComponent.cc28 27 // $Id: G4OpenGLXmVWidgetComponent.cc,v 1.5 2006/06/29 21:20:08 gunter Exp $ 29 28 // 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.634 29 // 35 30 //Base class for all Motif component widgets -
trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLXmVWidgetContainer.cc28 27 // $Id: G4OpenGLXmVWidgetContainer.cc,v 1.5 2006/06/29 21:20:10 gunter Exp $ 29 28 // 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.734 29 // 35 30 //Base class for all Motif container widgets -
trunk/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLXmVWidgetShell.cc28 27 // $Id: G4OpenGLXmVWidgetShell.cc,v 1.5 2006/06/29 21:20:14 gunter Exp $ 29 28 // 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.634 29 // 35 30 //Base class for all Motif shell widgets -
trunk/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc
r1041 r1049 629 629 frame // widget to be used for work window 630 630 ); 631 631 632 632 XtRealizeWidget(shell); 633 633 … … 636 636 637 637 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); 638 646 639 647 glXMakeCurrent (dpy, win, cx); 640 648 641 // This should be add AFTER glXMakeCurrent done because it will fire a resizeCallback649 // This should be add AFTER glXMakeCurrent done because it will fire a resizeCallback 642 650 XtAddCallback (glxarea, 643 XmNresizeCallback,644 645 this);646 651 XmNresizeCallback, 652 resize_callback, 653 this); 654 647 655 XtAddCallback (glxarea, 648 656 XmNexposeCallback, 649 657 expose_callback, 658 this); 659 660 XtAddCallback (glxarea, 661 XmNactivateCallback, 662 activate_callback, 650 663 this); 651 664 -
trunk/source/visualization/OpenGL/src/G4OpenGLXmViewerMessenger.cc
r1046 r1049 25 25 // 26 26 // 27 <<<<<<< G4OpenGLXmViewerMessenger.cc28 27 // $Id: G4OpenGLXmViewerMessenger.cc,v 1.4 2006/06/29 21:20:18 gunter Exp $ 29 28 // 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.534 29 35 30 #ifdef G4VIS_BUILD_OPENGLXM_DRIVER -
trunk/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc
r1041 r1049 35 35 36 36 #ifdef G4VIS_BUILD_OPENGLXM_DRIVER 37 37 //#define RESIZE_TEST 38 38 #include "G4OpenGLXmViewer.hh" 39 39 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 40 52 void G4OpenGLXmViewer::resize_callback (Widget w, 41 53 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 53 71 G4OpenGLXmViewer* pView = (G4OpenGLXmViewer*) clientData; 54 72 Dimension width, height; … … 58 76 XmNheight, &height, 59 77 NULL); 60 61 78 pView->ResizeWindow(width,height); 62 63 glXMakeCurrent (pView->dpy, XtWindow(pView->glxarea), pView->cx); 64 79 #endif 80 } 81 82 83 void 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 92 void 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 65 169 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 66 174 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 67 179 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 68 188 } 69 189
Note: See TracChangeset
for help on using the changeset viewer.