Log of /trunk/graf3d/gl/src/TGLWidget.cxx
Parent Directory
Revision
47033 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 5 11:48:24 2012 UTC (2 years, 2 months ago) by
tpochep
File length: 22040 byte(s)
Diff to
previous 47027
I do not remember, how this happend, that all #include "RConfigure.h" are commented,
but this is wrong, if something changes in TGLWSIncludes.h, all cocoa related code will be silently
excluded.
Revision
47027 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Nov 4 06:17:34 2012 UTC (2 years, 2 months ago) by
matevz
File length: 22042 byte(s)
Diff to
previous 44582
Add support for mac retina display. In practice it means we need to support a
scaled coordinate system within GL windows. We use full resolution in GL while
GUI and window system work in points that are 2x2 pixels.
Revision
44263 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 16 11:46:52 2012 UTC (2 years, 8 months ago) by
tpochep
File length: 21919 byte(s)
Diff to
previous 44231
TGLWidget and TGLContext classes were designed to isolate gl-context/gl-window specific code inside gl module.
Unfortunately, this isolation is bad as soon as we have to work with Obj-C, OpenGL, classes from Cocoa module.
TGLFormat can not go to core/base (because of multi-sampling part of code), I have to convert format into something,
I can pass to gVirtualX - array of pairs (enumerator-value).
Revision
44231 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 14 12:13:56 2012 UTC (2 years, 8 months ago) by
tpochep
File length: 21137 byte(s)
Diff to
previous 38716
Add gl code section for R__HAS_COCOA case.
Thanks to Matevz, all system headers are hidden so I can smoothly switch between
different GL implementation without need to modify code, no changes are needed in glew/ftgl/eve at all.
Revision
38716 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 4 10:33:53 2011 UTC (3 years, 9 months ago) by
matevz
File length: 20136 byte(s)
Diff to
previous 36675
TGLFormat:
* Avoid query of available multi-sample modes when not required.
Over ssh, SLC5 lies about supporting the GLX_SAMPLES_ARB
extension and then dies horribly when the query is made.
* Request 24-bit depth buffer.
TGLWidget:
* Request 8-bit color buffers.
Revision
36675 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 15 20:33:58 2010 UTC (4 years, 2 months ago) by
matevz
File length: 20136 byte(s)
Diff to
previous 35074
* TGLFormat, TGLWidget
Add handling of multi-sampling formats for GLX.
WGL implementation is still missing.
The value is taken from TEnv "OpenGL.Framebuffer.Multisample".
* TGLViewerBase
Use TGLCapabilityEnabler for switching on bleniding.
* TGLViewer
Remove flas fInitGL and associated functions.
Set sane GL state on every Draw().
Consolidate image extraction from frame-buffers.
* TGLEmbeddedViewer, TGLSAViewer
Remove calls to ResetInitGL().
* TGLRnrCtx
Remove fGrabBuffer and fGrabbedImage members, only keep fGrabImage flag.
All the rest is handled internally in TGLViewer now.
* TGLFBO
Add support for multi-sampling FBOs.
Revision
35074 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 30 15:18:02 2010 UTC (4 years, 4 months ago) by
matevz
File length: 19550 byte(s)
Diff to
previous 34337
Merge the following revisions from branches/dev/fireworks:
34608, 34786, 34787, 34788, 34804, 34808, 34835, 34841, 34956, 35031, 35071
34608
=====
Author: matevz
Date: Tue Jul 27 13:04:00 2010
New Revision: 34608
URL: http://root.cern.ch/viewvc?rev=34608&root=root&view=rev
Log:
Add data-member 'Int_t fNumChildren' caching the number of children.
std::list<>::size() can become really expensive for large collections.
Observed when running on heavy-ion data.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
branches/dev/fireworks/graf3d/eve/src/TEveGeoNode.cxx
34786
=====
Author: alja
Date: Thu Aug 12 20:05:46 2010
New Revision: 34786
URL: http://root.cern.ch/viewvc?rev=34786&root=root&view=rev
Log:
CPU performance improvements:
Add virtual GetProjectedAsElement() in TEveProjected and its derived classes to avoid dynamic casts.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveBox.h
branches/dev/fireworks/graf3d/eve/inc/TEveCompound.h
branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
branches/dev/fireworks/graf3d/eve/inc/TEveGeoShape.h
branches/dev/fireworks/graf3d/eve/inc/TEveLine.h
branches/dev/fireworks/graf3d/eve/inc/TEvePointSet.h
branches/dev/fireworks/graf3d/eve/inc/TEvePolygonSetProjected.h
branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
branches/dev/fireworks/graf3d/eve/inc/TEveStraightLineSet.h
branches/dev/fireworks/graf3d/eve/inc/TEveTrackProjected.h
branches/dev/fireworks/graf3d/eve/src/TEveProjectionBases.cxx
34787
=====
Author: alja
Date: Thu Aug 12 20:36:52 2010
New Revision: 34787
URL: http://root.cern.ch/viewvc?rev=34787&root=root&view=rev
Log:
Bugfix:
In TEveCaloDataVec add missing check for periodic TwoPi flag (TEveCaloData::fWrapTwoPi).
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveCaloData.cxx
34788
=====
Author: matevz
Date: Thu Aug 12 20:38:50 2010
New Revision: 34788
URL: http://root.cern.ch/viewvc?rev=34788&root=root&view=rev
Log:
Protect Runge-Kutta propagator against division by zero when the field
object returns 0 as the maximum magnetic field.
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveTrackPropagator.cxx
34804
=====
Author: matevz
Date: Fri Aug 13 13:42:28 2010
New Revision: 34804
URL: http://root.cern.ch/viewvc?rev=34804&root=root&view=rev
Log:
* TEveManager
Use TExMap instead of std::set to store changed elements.
Set insertion becomes expensive for large collections all being
changed at the same time.
* TEveSceneList
In ProcessChanges() take TExMap* as argument. Here map of changed
objects / elements still needs to be built as we iterate in parallel
over logical shape maps of all scenes.
* Other classes
Implement virtual TEveElement::GetObject() for frequently used
classes to avoid unnecessary dynamic casts.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveArrow.h
branches/dev/fireworks/graf3d/eve/inc/TEveDigitSet.h
branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
branches/dev/fireworks/graf3d/eve/inc/TEveGeoNode.h
branches/dev/fireworks/graf3d/eve/inc/TEveGeoShape.h
branches/dev/fireworks/graf3d/eve/inc/TEveManager.h
branches/dev/fireworks/graf3d/eve/inc/TEvePointSet.h
branches/dev/fireworks/graf3d/eve/inc/TEveScene.h
branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
branches/dev/fireworks/graf3d/eve/src/TEveManager.cxx
branches/dev/fireworks/graf3d/eve/src/TEveScene.cxx
34808
=====
Author: matevz
Date: Fri Aug 13 14:45:18 2010
New Revision: 34808
URL: http://root.cern.ch/viewvc?rev=34808&root=root&view=rev
Log:
White-space.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveProjectionBases.h
34835
=====
Author: matevz
Date: Tue Aug 17 18:21:43 2010
New Revision: 34835
URL: http://root.cern.ch/viewvc?rev=34835&root=root&view=rev
Log:
In CreateWindow(), also check if Display* is non-null.
Modified:
branches/dev/fireworks/graf3d/gl/src/TGLWidget.cxx
34841
=====
Author: alja
Date: Wed Aug 18 15:20:26 2010
New Revision: 34841
URL: http://root.cern.ch/viewvc?rev=34841&root=root&view=rev
Log:
Use TEveProjected::GetProjectedAsElement() instead of dynamic_cast of TEveProjected to TEveElement.
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveElement.cxx
34956
=====
Author: alja
Date: Mon Aug 23 19:38:40 2010
New Revision: 34956
URL: http://root.cern.ch/viewvc?rev=34956&root=root&view=rev
Log:
In TEveCalo2DGL::DrawRPhi() fix offset-by-one error (last bin in RPhi was not rendered).
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveCalo2DGL.cxx
35031
=====
Author: alja
Date: Thu Aug 26 18:25:31 2010
New Revision: 35031
URL: http://root.cern.ch/viewvc?rev=35031&root=root&view=rev
Log:
Fix rendering of endcap cellc in stack at negative eta.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveCalo3DGL.h
branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
35071
=====
Author: matevz
Date: Mon Aug 30 15:53:24 2010
New Revision: 35071
URL: http://root.cern.ch/viewvc?rev=35071&root=root&view=rev
Log:
* TEveCalo3D
Add calo-grid line-width control.
Add individual getters / setters for drawing of endcap / barrel
grid.
* TEveCalo3DGL
Honour settings for grid line-width and visibility.
* TEveElement
Mark some data-members as transient.
Modified:
branches/dev/fireworks/graf3d/eve/inc/TEveCalo.h
branches/dev/fireworks/graf3d/eve/inc/TEveElement.h
branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
Revision
31821 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 10 18:22:44 2009 UTC (5 years, 1 month ago) by
matevz
File length: 19282 byte(s)
Diff to
previous 29332
Add support for stereo rendering. This requires a graphics card that
supports quad-buffering and shutter glasses.
The standard drawing code is unchanged.
Revision
29332 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 3 17:02:46 2009 UTC (5 years, 6 months ago) by
matevz
File length: 19213 byte(s)
Diff to
previous 29056
- TGLContext: Initialize GLEW the first time any context is made current.
- TGLWidget: Fix method-name in error print-out.
Revision
26367 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 21 18:08:30 2008 UTC (6 years, 2 months ago) by
matevz
File length: 19233 byte(s)
Diff to
previous 26250
Merge revisions 26280:26327 from the fireworks branch.
26281
=====
- TGLScenePad: replace static variable with a data-member. Fix comments.
26304
=====
- TEveProjectionAxesGL: fix index out of bounds error reported by valgrind.
26306
=====
- TGLScene, TGLScenePad: better comments, consistent whitespace.
- TEveElement: add method DestroyOrWarn(): original Destroy() method is exception throwing.
- TEveScene: delete GL-scene and pad in destructor; add ownership information to class-docs.
- TEveSceneList: add method DestroyScenes().
- TEveViewer: add ownership information to class-docs.
- TEveManager: delete scenes, scene-list, viewers and viewer-list in destructor.
26325
=====
TEveTrackPropagator: implement the following overrides of virtual functions:
- TEveElement::CheckReferenceCount() - take into account references from TEveRefBackPtr;
- TEveRefBackPtr::OnZeroRefCount() - call CheckReferenceCount().
26327
=====
Remove trailing whitespace in eve/ and gl/.
Revision
26250 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 17 20:56:44 2008 UTC (6 years, 2 months ago) by
matevz
File length: 19239 byte(s)
Diff to
previous 25950
TGLContext, TGLWidget
---------------------
Add method ClearCurrent() to set current GL context to 0.
TGLLogicalShape
---------------
Change how number of required display-lists per object is handled:
before it was a virtual function, now it is a data member.
Fixes a severe memory leak due wrong number of released display-lists
when called from the destructor, which was calling a virtual function
to determine their number.
Fix accordingly the following classes: TGLSphere, TGLCylinder,
TEveCaloLegoGL and TEveBoxSetGL.
Revision
25950 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 24 21:34:34 2008 UTC (6 years, 3 months ago) by
matevz
File length: 19047 byte(s)
Diff to
previous 24204
TGLSceneBase, TGLScene, TGLSceneInfo
Move 'Bool_t fUpdateTimeouted' from TGLScene to TGLSceneInfo.
Remove 'Bool_t fForceUpdateSI from TGLSceneBase.
This was potentialy wrong ... if a scene was put into several
viewers.
TGLEventHandler
When scrolling via mouse-wheel or resizing the viewing area
call redraw via timer to group several events in a sequence
into a single redraw.
Avoid selection in handle-motion and in timer callback when a
redraw is already pending.
TGLViewer
Do not draw when viewing area's width or hight <= 1.
TGLWidget
Pass configure-notify event to TGFrame as well.
alice_esd_split.C
Do not resize to almost-full-screen as it doesn't work with
multi-screen displays (can pass optional argument to enforce
it).
Revision
24204 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 10 18:24:40 2008 UTC (6 years, 7 months ago) by
matevz
File length: 18986 byte(s)
Diff to
previous 24178
- TGLContext, TGLWidget
Fix creation of TGLWidget so that it also works with software
rendering where few visuals are available.
This means that we have to break TGLWidget construction into three
phases (required for software rendering on X11):
1. find appropriate visual and create window;
2. create widget using the above window;
3. create gl-context binding them together.
To avoid unexpected behaviour the construction is now done via
static constructor 'TGLWidget* TGLWidget::Create()' and the
actual constructor has been made protected.
- TGLEmbeddedViewer, TGLSAViewer
Use new TGLWidget construction syntax.
- TGLPShapeObjEditor
Use new TGLWidget construction syntax.
Fix rendering and update of color-sphere.
Revision
24162 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 6 11:33:13 2008 UTC (6 years, 7 months ago) by
matevz
File length: 19937 byte(s)
Diff to
previous 23566
From Bertrand:
Remove TGLWidgetContainer class and change inheritance of
TGLWidget as following:
before: class TGLWidget : public TGCanvas, public TGLPaintDevice
now: class TGLWidget : public TGFrame, public TGLPaintDevice
Now TGFrame base class is used directly to tie with the GL Context,
instead of creating an external window and registering it in TVirtualX
window list.
Revision
23140 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 11 11:01:39 2008 UTC (6 years, 9 months ago) by
rdm
File length: 24498 byte(s)
Diff to
previous 23087
move the following directories to "graf2d":
asimage, freetype, gpad, graf, postscript, qt, win32gdk, x11, x11ttf
move the following directories to "graf3d":
eve, ftgl, g3d, gl, x3d
Revision
23087 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 9 14:10:56 2008 UTC (6 years, 9 months ago) by
rdm
Original Path:
trunk/gl/src/TGLWidget.cxx
File length: 24498 byte(s)
Diff to
previous 22548
From Alja, Bertrand and Matevz - merged branches/dev/fireworks 22550:23082.
Major changes imported by this merge are:
gl/
====
- reorganization of scene rendering in TGLViewer - render opaque
objects from all scenes first, then all transparent ones;
- improve saving of images from the GL-viewer so that the dialog boxes
and other windows do not result in black areas on the saved image;
- improved management of FTGL fonts accross GL contexts.
eve/
====
- new classes for visualization of calorimeter data in lego mode;
- allow fixed scale beyond given radius for fish-eye projections.
Revision
22539 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Mar 8 14:36:37 2008 UTC (6 years, 10 months ago) by
rdm
Original Path:
trunk/gl/src/TGLWidget.cxx
File length: 24231 byte(s)
Diff to
previous 21453
From Alja, Bertrand & Matevz: merged branches/dev/fireworks 21757:22514.
This includes:
- development for event-displays of ALICE and CMS since 5.18 in eve/,
gl/ and gui/;
- many new tutorials and demos for eve/;
- fix in TQObject to support class-signals from all base-classes.
Revision
19153 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Jun 23 21:23:22 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/src/TGLWidget.cxx
File length: 22599 byte(s)
Diff to
previous 19062
From Matevz:
1. TGLViewer performs internal loop on pad-primitives.
2. Timur: generalization of gl-plot-painters to allow external access.
3. Support usage of gl-plot-painters in gl-viewer.
4. Provide a default gl-sharing context for resource optimization.
Revision
19049 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 18 07:02:16 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/src/TGLWidget.cxx
File length: 17467 byte(s)
Diff to
previous 19018
From Matev and Timur:
Timur:
1. Allow unique identification of shared GL contexts via
TGLContextIdentity class.
Matevz:
1. Improved overlay selection handling.
2. Perform GL context check before rendering, possibly invalidating
registered display-lists.
3. Minimize updates for window expose and resize events.
Revision
19000 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Mon Jun 11 19:56:34 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/gl/src/TGLWidget.cxx
File length: 12518 byte(s)
From Matevz:
Major restructuring of GL viewer-scene relationship (Matevz)
===================================================
The main idea was to generalize current GL infrustructure so that the
following features can be done in the future:
1. Full pad rendering via GL including 3D histo/func painters and 2D graphics.
2. Implementation of GL canvas (with independent viewers serving as pads).
3. Multi-view event-visualization front-end.
4. Inclusion of external scenes (non-ROOT-gl) in ROOT viewer.
Rendering of ROOT scenes in external GL frameworks.
Changes on the code level
-------------------------
0. Extend current scene/viewer classes into a 2-level class hierarchy.
New classes TGLViewerBase and TGLSceneBase.
1. Allow scenes to be shared among viewers. View-specific scene-cache
needs to be kept at the viewer side.
2. Viewer now manages a list of scenes. It is possible to put together
a combination of scenes (e.g. one showing geometry, another one tracks
and yet another clusters). Each scene can define its own clipping object.
3. Provide API for fine-grained control over rendered object removal,
creation and update. This allows for efficient scene-updates.
4. Disentangle selection, clipping and other markup objects from
within viewer-scene singleton.
New classes TGLClipSet, TGLManipSet.
6. Disentangle selection management.
7. Separate overlay rendering to allow any number of active GL-GUI
elements (like manipulators are now).
New classes TGLOverlayElement.
8. Trailing white space has been removed in all files.
Restructure low-level interface to OpenGL (Timur)
=========================================
1. Allow sharing GL resources among viewers.
2. Do not bind GL-output (windowed or offscreen) to ROOT GUI.
New classes TGLContext, TGLFormat, TGLWidget.
This oboletes TGLKernel and TVirtualGL classes.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.