Log of /trunk/graf3d/gl/src/TGLRnrCtx.cxx
Parent Directory
Revision
45281 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 30 10:08:30 2012 UTC (2 years, 5 months ago) by
tpochep
File length: 13481 byte(s)
Diff to
previous 42979
Delay glu-quadric initialization, in ctor it can not be done - no GL context exist/is current and
on Mac gluNewQuadric fails.
Revision
42979 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 13 03:17:03 2012 UTC (2 years, 11 months ago) by
matevz
File length: 12993 byte(s)
Diff to
previous 42974
Implement highlighting using the stencil buffer.
Produces minor artefacts when more than one clipping plane is active but
performs much better for all other cases.
Revision
42974 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 12 07:22:45 2012 UTC (2 years, 11 months ago) by
matevz
File length: 13142 byte(s)
Diff to
previous 34006
Generalize selection handling for scenes:
- By adding TGLLogicalShape* to TGLSelectRecord the scene sub-classes now have
the ability to lie pretty badly to TGLEventHandler about what actually got
selected and thus achieve great flexibility in managment of scenesobject
collections that do not conform to standard ROOT / EVE / TPad paradigms.
Generalize rendering order and selection/highlight handling.
- Rendering order of opaque/transparent and non-selected/selected objects can
be set via TGLRnrCtx::RenderOrder(), enum ERenderOrder.
- Selection of transparent objects via TGLRnrCtx::SelectTransparents(), enum
ESelectabilityOfTransparents.
- Rendering of highlight halo can be controlled via:
- TGLRnrCtx::SetHighlightDepthRangeOffset(Float_t);
- TGLRnrCtx::SetHighlightedObjectDepthRangeOffset(Float_t);
This should really be rewritten either to use stencil buffer or shaders.
Revision
34006 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 21 10:36:05 2010 UTC (4 years, 7 months ago) by
matevz
File length: 12955 byte(s)
Diff to
previous 32782
Merge the following revisions from branches/dev/fireworks:
33974, 33980, 33983, 33984, 33994
33974
=====
Author: alja
Date: Thu Jun 17 22:12:00 2010
New Revision: 33974
URL: http://root.cern.ch/viewvc?rev=33974&root=root&view=rev
Log:
TEveCaloLegoGL:
Fix picking of rebinned 3D towers.
TEveCalo3DGL:
Fix highlight rendering.
Modified:
branches/dev/fireworks/graf3d/eve/src/TEveCalo3DGL.cxx
branches/dev/fireworks/graf3d/eve/src/TEveCaloLegoGL.cxx
33980
=====
Author: matevz
Date: Fri Jun 18 18:30:34 2010
New Revision: 33980
URL: http://root.cern.ch/viewvc?rev=33980&root=root&view=rev
Log:
* TGLOverlayElement
Add state enum member to allow:
- hiding of overlay elements;
- preventing overlay events to reach them.
TGLViewerBase::RenderOverlay() not takes bitfield of states that
should be drawn.
* TGLCameraGuide
New overlay element showing axis orientation.
* TGLRnrCtx
Introduce standard functions to setup projection matrix for 2D /
screen based operations and properly applying the selection matrix
when it is active, too:
void ProjectionMatrixPushIdentity();
void ProjectionMatrixPop();
* TGLUtil
Cleanup usage of static float arrays in surroundings of TGLUtil.
Added:
branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h (with props)
branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx (with props)
Modified:
branches/dev/fireworks/graf3d/gl/inc/LinkDef.h
branches/dev/fireworks/graf3d/gl/inc/TGLCamera.h
branches/dev/fireworks/graf3d/gl/inc/TGLManip.h
branches/dev/fireworks/graf3d/gl/inc/TGLOverlay.h
branches/dev/fireworks/graf3d/gl/inc/TGLRnrCtx.h
branches/dev/fireworks/graf3d/gl/inc/TGLUtil.h
branches/dev/fireworks/graf3d/gl/inc/TGLViewerBase.h
branches/dev/fireworks/graf3d/gl/src/TGLAnnotation.cxx
branches/dev/fireworks/graf3d/gl/src/TGLLightSet.cxx
branches/dev/fireworks/graf3d/gl/src/TGLManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLRnrCtx.cxx
branches/dev/fireworks/graf3d/gl/src/TGLRotateManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLScaleManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLTransManip.cxx
branches/dev/fireworks/graf3d/gl/src/TGLUtil.cxx
branches/dev/fireworks/graf3d/gl/src/TGLViewer.cxx
branches/dev/fireworks/graf3d/gl/src/TGLViewerBase.cxx
Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h
('svn:eol-style' added)
Propchange: branches/dev/fireworks/graf3d/gl/inc/TGLCameraGuide.h
('svn:keywords' added)
Propchange: branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx
('svn:eol-style' added)
Propchange: branches/dev/fireworks/graf3d/gl/src/TGLCameraGuide.cxx
('svn:keywords' added)
33983
=====
Author: matevz
Date: Fri Jun 18 19:19:47 2010
New Revision: 33983
URL: http://root.cern.ch/viewvc?rev=33983&root=root&view=rev
Log:
Add on/off state setter void SetBinaryState(Bool_t).
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLOverlay.h
33984
=====
Author: matevz
Date: Fri Jun 18 19:35:51 2010
New Revision: 33984
URL: http://root.cern.ch/viewvc?rev=33984&root=root&view=rev
Log:
Replace logical and with binary one.
Modified:
branches/dev/fireworks/graf3d/gl/src/TGLViewerBase.cxx
33994
=====
Author: matevz
Date: Sat Jun 19 14:09:04 2010
New Revision: 33994
URL: http://root.cern.ch/viewvc?rev=33994&root=root&view=rev
Log:
Add 3 new data-members to control mouse/arrow key handling:
Float_t fArrowKeyFactor;
Float_t fMouseDragFactor;
Float_t fMouseWheelFactor;
These are take from rootrc, eg:
OpenGL.EventHandler.ViewerCentricControls: 1
OpenGL.EventHandler.ArrowKeyFactor: -1.0
OpenGL.EventHandler.MouseDragFactor: -1.0
OpenGL.EventHandler.MouseWheelFactor: -1.0
Modified:
branches/dev/fireworks/graf3d/gl/inc/TGLEventHandler.h
branches/dev/fireworks/graf3d/gl/src/TGLEventHandler.cxx
Revision
32782 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 26 14:39:42 2010 UTC (4 years, 10 months ago) by
matevz
File length: 12209 byte(s)
Diff to
previous 31671
* TEveCalo3DGL
Disable writing the depth buffer by the calo grid but
keep it being drawn after the towers.
* TGLRnrCtx
Add member
Float_t fShapePixSize;
to allow scene to communicate size of the object to the renderer.
This only works if the object does not use central display-lists.
Revision
30425 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 24 19:45:11 2009 UTC (5 years, 4 months ago) by
matevz
File length: 12164 byte(s)
Diff to
previous 30418
In all classes using FTGL fonts:
Consistently use integer for FTGL font size.
TGLEventHandler, TEveLegoEventHandler, TGLSAViewer,TGLEmbeddedViewer:
Change construnctor of TGLEventHandler and TEveLegoEventHandler.
Revision
30418 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 24 17:10:11 2009 UTC (5 years, 4 months ago) by
matevz
File length: 12129 byte(s)
Diff to
previous 29724
From Alja.
GLRnrCtx:
Add possibility for automatic font scaling.
TGLFontManager:
In RegisterFont() check if font state has changed and check valid font size. Before,
this checks were done in the renders.
render classes:
Use optionally scaled or non-scaled fonts. Remove checks for FTGL fonts,
since they are now done in TGLFontManager:RegisterFont().
Revision
29724 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 7 16:10:57 2009 UTC (5 years, 5 months ago) by
matevz
File length: 11459 byte(s)
Diff to
previous 29676
Add support for frame-buffer objects (FBO).
This allows for offscreen rendering into separately instantiaded
frame-buffer. Useful for saving of images whan the GL window is now
visible or for rendering into textures.
Requires OpenGL-1.5 (detected at run-time with GLEW).
In TGLViewer add new function
Bool_t SavePictureUsingFBO(const TString &fileName, Int_t w, Int_t h);
that allows saving of an image with any resolution supported by the
local GL implementation (8192 pixels on my desktop).
Revision
29676 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 4 16:18:07 2009 UTC (5 years, 5 months ago) by
matevz
File length: 11435 byte(s)
Diff to
previous 28378
Add support for control over viewer-global point-size and line-width
scaling. Additionally, allow wireforame and outline line widths to be
specified separately (on viewer / scene / scene-info level).
This will allow for scaling of pixel-based objects (lines and points) when
saving of screenshots with very high resolution is
implemented.
Basic support is impemented across TGLViewer, TGLScene, TGLRnrCtx and
TGLUtil.
Classes that used glPointSize and glLineWidth were modified to call
corresponding static function in TGLUtil class.
Controls were added to TGLViewerEditor (under Style tab).
Revision
28378 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 28 15:40:53 2009 UTC (5 years, 8 months ago) by
matevz
File length: 11320 byte(s)
Diff to
previous 28366
TGLRnrCtx
- Add function ColorOrForeground(Color_t col) which sets given color
or falls back to default foregorund in col is the background color.
TGLFontManager
- Rewrite GetFontSize(Float_t size, Int_t min, Int_t max) to use
TMath::BinarySearch().
- Add function GetFontSize(Float_t size) that uses min, max from the
available font-sizes.
TGLAxisPainterBox
- New class for painting of 3D axes around a box.
TF2GL, TH2GL
- Use TGLAxisPainterBox for painting of axes.
TH3GL
- New class for rendering of TH3 objects.
TGLScenePad
- Proper handling of TH3.
TGLViewer
- When constructed with a given TPad, set background and foreground
colors accordingly.
TGLUtilColor
- Add cache-variable fIndex that makes it easier / more optimal to
compare and retrieve color-indices.
TGLCameraOverlay
- Use TGLFontManager::GetFontSize() without limits.
TGLParametricEquationGL
- Gray-space changes.
Revision
28197 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 14 13:59:27 2009 UTC (5 years, 9 months ago) by
matevz
File length: 11249 byte(s)
Diff to
previous 27157
Merge the following revisions from the fireworks branch:
-r 27692:27867
-c 27876
-r 28012:28187
================================================================================
27693
TEveCalo:
Set bounding box when calo data empty.
TEveCaloLegoGL:
TGLAxisPainter:
Draw axis title in TGLAxisPainter::PaintAxis().
--------------------------------------------------------------------------------
27694
Forget to check-in this file in revision 27693.
--------------------------------------------------------------------------------
27695
Don't draw frame and call TGLAxisPainter::Paint() if calo data empty.
--------------------------------------------------------------------------------
27699
Fix issues reported by valgrind.
--------------------------------------------------------------------------------
27758
Return viewer in TEveViewer::SpawnGLViewer and TEveViewer::SpawnGLEmbeddedViewer().
--------------------------------------------------------------------------------
27767
Unset event handler when destroying TGLWidget. This is important in case destruction of TGLWidget is called with timeout.
--------------------------------------------------------------------------------
27840
Add possibility to create different icon boxes in
TEveCompositeFrame. Use static function pointer fgIconBarCreator to change default behavior.
Remove oboslete function TEveCompositeFrame::ReplaceIconBox().
--------------------------------------------------------------------------------
7856
Bug fix: Get font size calculating projected axis length at the Z-title position.
--------------------------------------------------------------------------------
27857
Move to real world coordinates. Add line-set for test.
--------------------------------------------------------------------------------
27867
TGLViewer:
Add function:
void ResetInitGL()
This is needed if GL-context is destroyed from outside.
Call it from derived classes when creating and destroying GL-widget.
--------------------------------------------------------------------------------
27876
In line set add possibility to disable depth test, i.e. draw lines/markers in front.
--------------------------------------------------------------------------------
28013
Fix memory leak in TEveCalo2D.
--------------------------------------------------------------------------------
28048
In HandleCrossing() ignore grab and ungrab events. Several window managers produce them nowadays (fvwm2, x-on-mac, sawfish).
--------------------------------------------------------------------------------
28050
Simplify macro.
--------------------------------------------------------------------------------
28106
URL: http://root.cern.ch/viewcvs?rev=28106&root=root&view=rev
Log:
Add data-members and accessors for controlling brightness of front,
side and speulcar lights.
--------------------------------------------------------------------------------
28114
TGLPShapeObjEditor
==================
Remove obsolete data-members and enum entries.
TGLUtil
=======
New class TGLColor - using this will simplify color management in
TGLViewer and TGLRnrCtx.
TEveUtil
========
Simplify implementation of TEveUtil::ColorFromIdx() functions.
--------------------------------------------------------------------------------
28144
Add dtor for TGLColor.
--------------------------------------------------------------------------------
28161
URL: http://root.cern.ch/viewcvs?rev=28161&root=root&view=rev
Log:
Extend window management demo.
--------------------------------------------------------------------------------
28162
Add support several GL color-sets - each defines colors for background,
foreground, outline, markup and for outlines of selected and
highlighted objects.
GL/
===
TGLUtil - add new class TGLColorSet.
TGLRnrCtx - add color-set stack.
TGLViewer - create two color-sets by default - for light and dark
background. These can be switched with the 'e' key now.
TGLScene - decrease polgon-offset for outline-mode fill-pass from (1,
1) to (0.5, 0.5) which is sufficient.
Use/support color-set functionality in other modified classes.
EVE/
====
TEvePolygonSetProjectedGL - skip outline pass.
TEveProjectionAxesGL - skip outline pass and slightly widen the depth
range so that the text is visible in outline mode, where
polygon-offset is applied during the fill-pass.
--------------------------------------------------------------------------------
28168
Add support for a global GL color-set shared among several (all)
viewers.
TGLViewer - add static data-members and functions to handle global
color-set. Add methods that allow switching between global/private
color-sets for a given viewer.
TGLViewerEditor - Disable backgound-color widget when the viewer uses
global color-set.
TGLCameraOverlay - use foreground color for some markup rendering.
In two tutorials use the new API for setting of the background color.
--------------------------------------------------------------------------------
28187
Put back the old method for setting background color and mark it as deprecated.
Revision
26662 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 4 20:25:08 2008 UTC (6 years, 1 month ago) by
matevz
File length: 10413 byte(s)
Diff to
previous 24444
Merge some revs between 26639 and 26661 from the fireworks branch.
26639
=====
TEveElement
-----------
- Add virtual ChangedNameTitle() to allow propagation of name/title change.
- Call ChangedNameTitle() in SetElementName/Title() functions.
TEvePointSet
------------
- Call ChangedNameTitle() in SetElementName/Title() functions.
TEveWindow
----------
- Use ChangedNameTitle() to propagate eve-window name changes to
eve-frame components.
- Replace trivial overloads of Acuire/RelinquishWindow() with
name-change callback.
26640
=====
TGLRnrCtx
---------
- Start reporting gl-select-buffer resizing once its size is above 64k.
26653
=====
TEveWindow
----------
- Add getters.
26661
=====
TEveWindowManager
-----------------
- New class to manage EVE windows, in particular selection and dectruction.
- Move code for managing current-window from TEveWindow here.
TEveWindow
----------
- Move current-window code to TEveWindowManager.
- In PreDeleteElement() notify the window manager that the window is
about be deleted.
- TEveCompositeFrameInMainFrame and TEveCompositeFrameInTab were not
forwarding name-change to the base-class in WindowNameChanged().
TEveManager
-----------
- Replace TEveElementList fWindows with TEveWindowManager fWindowManager.
TEveElement
-----------
- Added virtual void PreDeleteElement() that gets called prior to element
deletion. The local version still calls gEve->PreDeleteElement(this).
Revision
24444 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 17:52:37 2008 UTC (6 years, 7 months ago) by
matevz
File length: 10372 byte(s)
Diff to
previous 23869
TGLRnrCtx
---------
Add new member 'Bool_t fHighlightOutline' that is set during the
outline-pass of the highlight.
TGLObject
---------
Disable use of display-lists for multi-colored objects only in the
outline pass of the highlight.
TGLPhysicalShape
----------------
Set HighlightOutline and HighlightOutline of the rnr-ctx during highlight.
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: 10342 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/TGLRnrCtx.cxx
File length: 10342 byte(s)
Diff to
previous 22539
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/TGLRnrCtx.cxx
File length: 8900 byte(s)
Diff to
previous 21812
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
21812 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 22 20:52:31 2008 UTC (7 years ago) by
matevz
Original Path:
trunk/gl/src/TGLRnrCtx.cxx
File length: 7220 byte(s)
Diff to
previous 21653
From Alja:
New class TFTGLManager for management of FTGL fonts.
New classes TEveText, TEveTextEditor and TEveTextGL for display and
configuration of a 3D text.
New test macro 'tutorials/eve/text_test.C'.
From Matevz:
Reenable smart-refresh during redraw of TEveScenes.
Minor code-layout changes.
Revision
21653 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 11 20:23:15 2008 UTC (7 years ago) by
matevz
Original Path:
trunk/gl/src/TGLRnrCtx.cxx
File length: 6279 byte(s)
Diff to
previous 20882
Move code for rendering of poly-markers and poly-lines from TEveGLUtil
to TGLUtil and remove TEveGLUtil class.
Extend picking region also for fat lines so that lines can be picked
also on their edges not only at the very center.
Fix rendering of anitaliased points in TEveStraightLineSetGL.
Honour wireframe and outline modes in TEveTriangleSetGL.
Add new tutorial pointset_test.C.
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/TGLRnrCtx.cxx
File length: 6063 byte(s)
Diff to
previous 19000
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/TGLRnrCtx.cxx
File length: 7760 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.