Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4OpenGLStoredWin32Viewer.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27//
28//
29// Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and
30// G4OpenGLStoredViewer.
31
33
35
36#include "G4ios.hh"
37
39(G4OpenGLStoredSceneHandler& sceneHandler,
40 const G4String& name):
41G4OpenGLViewer (sceneHandler),
42G4OpenGLWin32Viewer (sceneHandler),
43G4OpenGLStoredViewer (sceneHandler),
44G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name) {
45
46 if (fViewId < 0) return; // In case error in base class instantiation.
47}
48
50
51 //Check that G4OpenGLWin32Viewer got a double buffered colour visual
52
56
57// clear the buffers and window.
58 ClearView ();
59 FinishView ();
60
61 glDepthFunc (GL_LEQUAL);
62 glDepthMask (GL_TRUE);
63}
64
66
67 glViewport (0, 0, getWinWidth(), getWinHeight());
68
70
71 //See if things have changed from last time and remake if necessary...
72 // The fNeedKernelVisit flag might have been set by the user in
73 // /vis/viewer/rebuild, but if not, make decision and set flag only
74 // if necessary...
76 fLastVP = fVP;
77 G4bool kernelVisitWasNeeded = fNeedKernelVisit; // Keep (ProcessView resets).
78 ProcessView ();
79
80 if(style!=G4ViewParameters::hlr &&
82
85 glFlush ();
86
88
90 FinishView ();
91
92 } else {
93
94 // If kernel visit was needed, drawing and FinishView will already
95 // have been done, so...
96 if (!kernelVisitWasNeeded) {
98 FinishView ();
99 } else {
100 // However, union cutaways are implemented in DrawDisplayLists, so make
101 // an extra pass...
102 if (fVP.IsCutaway() &&
104 ClearView();
106 FinishView ();
107 } else { // ADD TO AVOID KernelVisit=1 and nothing to display
109 FinishView ();
110 }
111 }
112 }
113}
114
115//////////////////////////////////////////////////////////////////////////////
117)
118//////////////////////////////////////////////////////////////////////////////
119//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
120{
121 if(!fHDC) return;
122
123 glFlush ();
124 GLint renderMode;
125 glGetIntegerv(GL_RENDER_MODE, &renderMode);
126 if (renderMode == GL_RENDER) ::SwapBuffers(fHDC);
127
128 // Empty the Windows message queue :
129 MSG event;
130 while ( ::PeekMessage(&event, NULL, 0, 0, PM_REMOVE) ) {
131 ::TranslateMessage(&event);
132 ::DispatchMessage (&event);
133 }
134}
bool G4bool
Definition: G4Types.hh:86
G4OpenGLStoredWin32Viewer(G4OpenGLStoredSceneHandler &scene, const G4String &name="")
void FinishView()
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
virtual void CreateFontLists()
unsigned int getWinHeight() const
unsigned int getWinWidth() const
void HaloingSecondPass()
virtual void CreateMainWindow()
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
void CreateGLWin32Context()
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
G4bool fNeedKernelVisit
Definition: G4VViewer.hh:227
const G4ViewParameters & GetViewParameters() const
void ProcessView()
Definition: G4VViewer.cc:107
G4int fViewId
Definition: G4VViewer.hh:217
G4ViewParameters fVP
Definition: G4VViewer.hh:220
CutawayMode GetCutawayMode() const
G4bool IsCutaway() const
DrawingStyle GetDrawingStyle() const