[root] / trunk / graf3d / gl / src / TGLWidget.cxx Repository:
ViewVC logotype

Log of /trunk/graf3d/gl/src/TGLWidget.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 48655 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 20 12:20:04 2013 UTC (23 months ago) by tpochep
File length: 21992 byte(s)
Diff to previous 47033
Remove TGLFormat.h include from TGCocoa.

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 44582 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 6 12:20:09 2012 UTC (2 years, 7 months ago) by tpochep
File length: 21934 byte(s)
Diff to previous 44263
Modifications from experimental bracnh - cocoa section of GL code.

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 34337 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 6 10:20:38 2010 UTC (4 years, 6 months ago) by matevz
File length: 19396 byte(s)
Diff to previous 34286
TGLWidget - Also request key-release events from X.

TGLEventHandler - In HandleKey() only process key-press events.

Revision 34286 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 1 20:38:57 2010 UTC (4 years, 6 months ago) by rdm
File length: 19407 byte(s)
Diff to previous 31821
fix format errors related to TString::Form(), TString::Format(), Form()
and Printf().

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 29056 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 17 14:36:59 2009 UTC (5 years, 7 months ago) by matevz
File length: 19218 byte(s)
Diff to previous 28662
Split TGLIncludes.h into standard and window-system specific part
TGLWSIncludes.h.

Revision 28662 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon May 18 10:23:34 2009 UTC (5 years, 8 months ago) by rdm
File length: 19191 byte(s)
Diff to previous 26367
From Matevz and Timur:
add the glew code for GL extension detection.

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 24178 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jun 7 15:14:36 2008 UTC (6 years, 7 months ago) by brun
File length: 20009 byte(s)
Diff to previous 24162
From Bertrand:
- Solve uninitialized variable in TGLWidget
  (thanks to Timur for the report)

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 23566 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Apr 26 21:47:03 2008 UTC (6 years, 8 months ago) by brun
File length: 24291 byte(s)
Diff to previous 23140
From Bertrand:
- Remove extra check for Windows (since modal window option has been implemented on Windows)

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 22548 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 9 11:54:01 2008 UTC (6 years, 10 months ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 24291 byte(s)
Diff to previous 22539
Fix coding convention violations.

Remove trailing white-space for all files in eve/ and gl/.

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 21453 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 18 15:18:30 2007 UTC (7 years, 1 month ago) by matevz
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 24762 byte(s)
Diff to previous 21231
Add missing class descriptions.

Revision 21231 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 6 15:22:14 2007 UTC (7 years, 1 month ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 22550 byte(s)
Diff to previous 20882
change all occurances where %x is used to format a pointer to %lx.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 22538 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 22538 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 22589 byte(s)
Diff to previous 19153
remove :$ from tag line

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 19062 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 18 14:24:57 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 17856 byte(s)
Diff to previous 19053
Fix for Linux when TGLWidget is used by an appilcation directly (thanks Bertrand for reporting)

Revision 19053 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 18 07:54:17 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 17691 byte(s)
Diff to previous 19049
From Timur:
Fix for timer problems on some Linuxes.

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 19018 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 12 20:29:00 2007 UTC (7 years, 7 months ago) by rdm
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 17466 byte(s)
Diff to previous 19004
add missing cvs ident lines.

Revision 19004 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 12 10:22:49 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/src/TGLWidget.cxx
File length: 16820 byte(s)
Diff to previous 19000
From Matev:
1. Timur's new version of TGLWidget/Format/Context;
2. Fix for map element destruction order (Bertrand);
3. fixes for solaris in TGLScene.

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9