Geant4-11
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
m
n
p
r
s
t
w
y
Enumerations
a
b
c
d
e
f
g
l
m
p
r
s
t
v
y
z
Enumerator
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Related Functions
:
a
b
c
d
g
h
i
o
q
r
s
t
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Enumerations
b
c
d
e
f
g
i
j
l
m
n
p
r
s
t
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
source
visualization
OpenGL
src
G4OpenGLStoredXmViewer.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
// Andrew Walkden 10th February 1997
30
// Class G4OpenGLStoredXmViewer : a class derived from G4OpenGLXmViewer
31
// and G4OpenGLStoredViewer.
32
33
#include "
G4OpenGLStoredXmViewer.hh
"
34
35
#include "
G4OpenGLStoredSceneHandler.hh
"
36
#include "
G4ios.hh
"
37
#include "
G4Threading.hh
"
38
39
G4OpenGLStoredXmViewer::
40
G4OpenGLStoredXmViewer
(
G4OpenGLStoredSceneHandler
& sceneHandler,
41
const
G4String
&
name
)
42
:
G4VViewer
(sceneHandler, sceneHandler.IncrementViewCount (),
name
),
43
G4OpenGLViewer
(sceneHandler),
44
G4OpenGLXmViewer
(sceneHandler),
45
G4OpenGLStoredViewer
(sceneHandler)
46
{
47
48
if
(
fViewId
< 0)
return
;
// In case error in base class instantiation.
49
50
if
(!
vi_stored
) {
51
fViewId
= -1;
// This flags an error.
52
G4cerr
<<
"G4OpenGLStoredXmViewer::G4OpenGLStoredXmViewer -"
53
" G4OpenGLXmViewer couldn't get a visual."
<<
G4endl
;
54
return
;
55
}
56
}
57
58
G4OpenGLStoredXmViewer::~G4OpenGLStoredXmViewer
()
59
{}
60
61
void
G4OpenGLStoredXmViewer::Initialise
() {
62
63
CreateGLXContext
(
vi_stored
);
64
CreateMainWindow
();
65
CreateFontLists
();
66
67
InitializeGLView
();
68
69
glDrawBuffer (GL_BACK);
70
}
71
72
void
G4OpenGLStoredXmViewer::DrawView
() {
73
#ifdef G4DEBUG_VIS_OGL
74
printf(
"G4OpenGLStoredXmViewer::DrawView \n"
);
75
#endif
76
77
G4ViewParameters::DrawingStyle
style =
GetViewParameters
().
GetDrawingStyle
();
78
79
//See if things have changed from last time and remake if necessary...
80
// /vis/viewer/rebuild, but if not, make decision and set flag only
81
// if necessary...
82
if
(!
fNeedKernelVisit
)
KernelVisitDecision
();
83
fLastVP
=
fVP
;
84
G4bool
kernelVisitWasNeeded =
fNeedKernelVisit
;
// Keep (ProcessView resets).
85
ProcessView
();
86
87
if
(style!=
G4ViewParameters::hlr
&&
88
haloing_enabled
) {
89
90
HaloingFirstPass
();
91
DrawDisplayLists
();
92
#ifdef G4DEBUG_VIS_OGL
93
printf(
"G4OpenGLStoredXmViewer::DrawView () flush\n"
);
94
#endif
95
glFlush ();
96
97
HaloingSecondPass
();
98
99
DrawDisplayLists
();
100
FinishView
();
101
102
}
else
{
103
104
#ifdef G4DEBUG_VIS_OGL
105
printf(
"G4OpenGLStoredXmViewer::DrawView not hlr \n"
);
106
#endif
107
// If kernel visit was needed, drawing and FinishView will already
108
// have been done, so...
109
if
(!kernelVisitWasNeeded) {
110
#ifdef G4DEBUG_VIS_OGL
111
printf(
"G4OpenGLStoredXmViewer::ComputeView Don't need kernel Visit \n"
);
112
#endif
113
DrawDisplayLists
();
114
FinishView
();
115
}
else
{
116
#ifdef G4DEBUG_VIS_OGL
117
printf(
"G4OpenGLStoredXmViewer::ComputeView Need kernel Visit \n"
);
118
#endif
119
// However, union cutaways are implemented in DrawDisplayLists, so make
120
// an extra pass...
121
if
(
fVP
.
IsCutaway
() &&
122
fVP
.
GetCutawayMode
() ==
G4ViewParameters::cutawayUnion
) {
123
ClearView
();
124
DrawDisplayLists
();
125
FinishView
();
126
}
else
{
// ADD TO AVOID KernelVisit=1 and nothing to display
127
DrawDisplayLists
();
128
FinishView
();
129
}
130
}
131
}
132
#ifdef G4DEBUG_VIS_OGL
133
printf(
"G4OpenGLStoredXmViewer::DrawView ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
);
134
#endif
135
}
136
137
void
G4OpenGLStoredXmViewer::FinishView
() {
138
// glXWaitGL (); //Wait for effects of all previous OpenGL commands to
139
//be propogated before progressing.
140
// JA: Commented out July 2021 - slows rendering down in some cases and I
141
// don't see any adverse effects.
142
143
#ifdef G4DEBUG_VIS_OGL
144
printf(
"G4OpenGLStoredXmViewer::FinishView () flush \n"
);
145
#endif
146
glFlush ();
//FIXME
147
148
GLint renderMode;
149
glGetIntegerv(GL_RENDER_MODE, &renderMode);
150
if
(renderMode == GL_RENDER) glXSwapBuffers (
dpy
,
win
);
151
}
G4OpenGLStoredSceneHandler.hh
G4OpenGLStoredXmViewer.hh
G4Threading.hh
G4bool
bool G4bool
Definition:
G4Types.hh:86
G4ios.hh
G4cerr
G4GLOB_DLL std::ostream G4cerr
G4endl
#define G4endl
Definition:
G4ios.hh:57
G4OpenGLStoredSceneHandler
Definition:
G4OpenGLStoredSceneHandler.hh:43
G4OpenGLStoredViewer
Definition:
G4OpenGLStoredViewer.hh:44
G4OpenGLStoredViewer::fLastVP
G4ViewParameters fLastVP
Definition:
G4OpenGLStoredViewer.hh:64
G4OpenGLStoredViewer::KernelVisitDecision
void KernelVisitDecision()
Definition:
G4OpenGLStoredViewer.cc:56
G4OpenGLStoredViewer::DrawDisplayLists
void DrawDisplayLists()
Definition:
G4OpenGLStoredViewer.cc:147
G4OpenGLStoredXmViewer::Initialise
void Initialise()
Definition:
G4OpenGLStoredXmViewer.cc:61
G4OpenGLStoredXmViewer::~G4OpenGLStoredXmViewer
virtual ~G4OpenGLStoredXmViewer()
Definition:
G4OpenGLStoredXmViewer.cc:58
G4OpenGLStoredXmViewer::FinishView
void FinishView()
Definition:
G4OpenGLStoredXmViewer.cc:137
G4OpenGLStoredXmViewer::DrawView
void DrawView()
Definition:
G4OpenGLStoredXmViewer.cc:72
G4OpenGLStoredXmViewer::G4OpenGLStoredXmViewer
G4OpenGLStoredXmViewer(G4OpenGLStoredSceneHandler &scene, const G4String &name="")
Definition:
G4OpenGLStoredXmViewer.cc:40
G4OpenGLViewer
Definition:
G4OpenGLViewer.hh:98
G4OpenGLViewer::haloing_enabled
G4bool haloing_enabled
Definition:
G4OpenGLViewer.hh:202
G4OpenGLViewer::CreateFontLists
virtual void CreateFontLists()
Definition:
G4OpenGLViewer.hh:148
G4OpenGLViewer::InitializeGLView
void InitializeGLView()
Definition:
G4OpenGLViewer.cc:127
G4OpenGLViewer::ClearView
void ClearView()
Definition:
G4OpenGLViewer.cc:203
G4OpenGLViewer::HaloingSecondPass
void HaloingSecondPass()
Definition:
G4OpenGLViewer.cc:463
G4OpenGLViewer::HaloingFirstPass
void HaloingFirstPass()
Definition:
G4OpenGLViewer.cc:441
G4OpenGLXViewer::win
GLXDrawable win
Definition:
G4OpenGLXViewer.hh:83
G4OpenGLXViewer::CreateGLXContext
void CreateGLXContext(XVisualInfo *vi)
Definition:
G4OpenGLXViewer.cc:172
G4OpenGLXViewer::vi_stored
XVisualInfo * vi_stored
Definition:
G4OpenGLXViewer.hh:79
G4OpenGLXViewer::dpy
Display * dpy
Definition:
G4OpenGLXViewer.hh:75
G4OpenGLXmViewer
Definition:
G4OpenGLXmViewer.hh:51
G4OpenGLXmViewer::CreateMainWindow
virtual void CreateMainWindow()
Definition:
G4OpenGLXmViewer.cc:173
G4String
Definition:
G4String.hh:62
G4VViewer
Definition:
G4VViewer.hh:45
G4VViewer::fNeedKernelVisit
G4bool fNeedKernelVisit
Definition:
G4VViewer.hh:224
G4VViewer::GetViewParameters
const G4ViewParameters & GetViewParameters() const
G4VViewer::ProcessView
void ProcessView()
Definition:
G4VViewer.cc:105
G4VViewer::fViewId
G4int fViewId
Definition:
G4VViewer.hh:216
G4VViewer::fVP
G4ViewParameters fVP
Definition:
G4VViewer.hh:219
G4ViewParameters::GetCutawayMode
CutawayMode GetCutawayMode() const
G4ViewParameters::IsCutaway
G4bool IsCutaway() const
G4ViewParameters::DrawingStyle
DrawingStyle
Definition:
G4ViewParameters.hh:94
G4ViewParameters::hlr
@ hlr
Definition:
G4ViewParameters.hh:96
G4ViewParameters::cutawayUnion
@ cutawayUnion
Definition:
G4ViewParameters.hh:103
G4ViewParameters::GetDrawingStyle
DrawingStyle GetDrawingStyle() const
G4InuclParticleNames::name
const char * name(G4int ptype)
Definition:
G4InuclParticleNames.hh:76
Generated by
1.9.3