42 if (rnrCtx.GetCamera()->RefViewport().Width() == 0 || rnrCtx.GetCamera()->RefViewport().Height() == 0)
45 static UInt_t ttid_black = 0;
46 static UInt_t ttid_white = 0;
48 bool whiteBg = rnrCtx.ColorSet().Background().GetColorIndex() == kWhite;
49 UInt_t& ttid = whiteBg ? ttid_white : ttid_black;
51 if ((whiteBg ==
false && ttid == 0) || (whiteBg && ttid == 0)) {
53 TString
base = whiteBg ?
"White" :
"Black";
58 glGenTextures(1, &ttid);
59 glBindTexture(GL_TEXTURE_2D, ttid);
61 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
62 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
63 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
64 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
65 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
66 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 2);
68 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
69 glPixelStorei(GL_UNPACK_SWAP_BYTES, 1);
71 for (
int i = 0;
i < 3;
i++)
72 glTexImage2D(GL_TEXTURE_2D,
80 imgs[
i]->GetArgbArray());
82 glPixelStorei(GL_UNPACK_SWAP_BYTES, 0);
84 for (
int i = 0;
i < 3;
i++)
88 glPushAttrib(GL_ENABLE_BIT | GL_LINE_BIT | GL_POLYGON_BIT);
89 TGLCapabilitySwitch lights_off(GL_LIGHTING, kFALSE);
92 glMatrixMode(GL_PROJECTION);
96 if (rnrCtx.Selection()) {
97 TGLRect rect(*rnrCtx.GetPickRectangle());
98 rnrCtx.GetCamera()->WindowToViewport(rect);
99 gluPickMatrix(rect.X(), rect.Y(), rect.Width(), rect.Height(), (Int_t*)rnrCtx.GetCamera()->RefViewport().CArr());
101 const TGLRect& vp = rnrCtx.RefCamera().RefViewport();
102 glOrtho(vp.X(), vp.Width(), vp.Y(), vp.Height(), 0, 1);
103 glMatrixMode(GL_MODELVIEW);
112 glDisable(GL_DEPTH_TEST);
114 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
116 glEnable(GL_TEXTURE_2D);
117 glBindTexture(GL_TEXTURE_2D, ttid);
119 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
123 TGLUtil::Color(rnrCtx.ColorSet().Background().GetColorIndex());
126 Float_t
a =
fSize * vp.Height();
128 glVertex3f(0, -
a,
z);
130 glVertex3f(
a, -
a,
z);
138 glDisable(GL_TEXTURE_2D);
144 Float_t
a =
fSize * vp.Height();
145 TGLUtil::ColorTransparency(rnrCtx.ColorSet().Markup().GetColorIndex(), 95);
147 glVertex3f(0, -
a,
z);
149 glVertex3f(
a, -
a,
z);
156 glTranslatef(
a, -
a, 0);
160 TGLUtil::ColorTransparency(rnrCtx.ColorSet().Markup().GetColorIndex(), 100);
164 glVertex3f(-
a,
a,
z);
165 glVertex3f(-
a, 0,
z);
168 glTranslatef(-
a / 3,
a / 3, 0);
170 TGLUtil::ColorTransparency(rnrCtx.ColorSet().Markup().GetColorIndex(), 40);
175 glVertex3f(-
s, 0,
z);
184 TGLUtil::ColorTransparency(rnrCtx.ColorSet().Markup().GetColorIndex(), 100);
185 glTranslatef(0, -
a, 0);
194 TGLUtil::ColorTransparency(rnrCtx.ColorSet().Markup().GetColorIndex(), 40);
197 glVertex3f(
a -
s,
a -
s,
z);
198 glVertex3f(
s,
a -
s,
z);
199 glVertex3f(
a -
s,
s,
z);
206 glEnable(GL_DEPTH_TEST);
207 glMatrixMode(GL_PROJECTION);
209 glMatrixMode(GL_MODELVIEW);