"Delegating" part of TGLPadPainter.
Line/fill/etc. attributes can be set inside TPad, but not only there: many of them are set by base sub-objects of 2d primitives (2d primitives usually inherit TAttLine or TAttFill etc.). And these sub-objects call gVirtualX->SetLineWidth ... etc. So, if I save some attributes in my painter, it will be mess - at any moment I do not know, where to take line attribute - from gVirtualX or from my own member. So! All attributed, ALL go to/from gVirtualX.
Definition at line 29 of file TGLPadPainter.h.
Public Types | |
| enum | EBoxMode { kHollow , kFilled } |
| enum | ETextMode { kClear , kOpaque } |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| static TVirtualPadPainter * | PadPainter (Option_t *opt="") |
| Create a pad painter of specified type. | |
Protected Member Functions | |
| TAttFill | GetAttFillInternal (Bool_t with_transparency) |
| Returns fill attributes after modification Checks for special fill styles 4000 . | |
| Double_t | GetTTFScale () const override |
Protected Attributes | |
| TAttFill | fAttFill |
| current fill attributes | |
| TAttLine | fAttLine |
| current line attributes | |
| TAttMarker | fAttMarker |
| current marker attributes | |
| TAttText | fAttText |
| current text attributes | |
| Bool_t | fFullyTransparent = kFALSE |
| if transformed fill attributes fully transparent | |
| TVirtualPad * | fPad = nullptr |
Private Member Functions | |
| TGLPadPainter (const TGLPadPainter &rhs) | |
| void | DrawGradient (const TLinearGradient *gradient, Int_t n, const Double_t *x, const Double_t *y) |
| void | DrawGradient (const TRadialGradient *gradient, Int_t n, const Double_t *x, const Double_t *y) |
| void | DrawPolygonWithGradient (Int_t n, const Double_t *x, const Double_t *y) |
| At the moment I assume both linear and radial gradients will work the same way - using a stencil buffer and some big rectangle(s) to fill with a gradient. | |
| template<class ValueType > | |
| void | DrawPolyLineHelper (Int_t n, const ValueType *x, const ValueType *y) |
| Draw poly-line in user coordinates. | |
| template<class ValueType > | |
| void | DrawPolyMarkerHelper (Int_t n, const ValueType *x, const ValueType *y) |
| Poly-marker drawing. | |
| void | DrawTesselation (Int_t n, const Double_t *x, const Double_t *y) |
| template<class Char_t > | |
| void | DrawTextHelper (Double_t x, Double_t y, const Char_t *text, ETextMode mode) |
| Bool_t | IsInvertMode () |
| Returns true when invert mode is configured and painter in locked state Used when non-opaque of objects moving is involved. | |
| TGLPadPainter & | operator= (const TGLPadPainter &rhs) |
| void | RestoreModelviewMatrix () const |
| Restore the modelview matrix. | |
| void | RestoreProjectionMatrix () const |
| Restore the projection matrix. | |
| void | RestoreViewport () |
| Restore the saved viewport. | |
| void | SaveModelviewMatrix () const |
| Save the modelview matrix. | |
| void | SaveProjectionMatrix () const |
| Save the projection matrix. | |
| void | SaveViewport () |
| Extract and save the current viewport. | |
| void | SelectGLFont (Font_t font, Float_t size) |
| Select specified font/size. | |
Private Attributes | |
| TGLFont | fF |
| TGLFontManager | fFM |
| TAttFill | fGlFillAtt |
| Bool_t | fIsHollowArea |
| Rgl::Pad::GLLimits | fLimits |
| Bool_t | fLocked |
| Rgl::Pad::PolygonStippleSet | fSSet |
| Rgl::Pad::Tesselator | fTess |
| Int_t | fVp [4] |
| std::vector< Double_t > | fVs |
| WinContext_t | fWinContext |
#include <TGLPadPainter.h>
|
inherited |
| Enumerator | |
|---|---|
| kHollow | |
| kFilled | |
Definition at line 28 of file TVirtualPadPainter.h.
|
inherited |
| Enumerator | |
|---|---|
| kClear | |
| kOpaque | |
Definition at line 29 of file TVirtualPadPainter.h.
| TGLPadPainter::TGLPadPainter | ( | ) |
Definition at line 61 of file TGLPadPainter.cxx.
|
private |
Definition at line 130 of file TPadPainterBase.h.
|
overridevirtual |
Do nothing, sub-pads not cleared in GL.
Implements TVirtualPadPainter.
Definition at line 160 of file TGLPadPainter.cxx.
|
overridevirtual |
Clear specified window - calling gVirtualX->ClearWindowW.
Reimplemented from TVirtualPadPainter.
Definition at line 167 of file TGLPadPainter.cxx.
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 185 of file TGLPadPainter.cxx.
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 143 of file TGLPadPainter.cxx.
Definition at line 130 of file TPadPainterBase.h.
|
overridevirtual |
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 193 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw filled or hollow box.
Implements TVirtualPadPainter.
Definition at line 419 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw tesselated polygon (probably, outline only).
Implements TVirtualPadPainter.
Definition at line 460 of file TGLPadPainter.cxx.
Draw tesselated polygon (never called, probably, since TPad::PaintFillArea for floats is deprecated).
Implements TVirtualPadPainter.
Definition at line 490 of file TGLPadPainter.cxx.
|
private |
Definition at line 1236 of file TGLPadPainter.cxx.
|
private |
Definition at line 1059 of file TGLPadPainter.cxx.
Draw image on the GL window.
Reimplemented from TVirtualPadPainter.
Definition at line 866 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw line segment in NDC coordinates.
Implements TVirtualPadPainter.
Definition at line 395 of file TGLPadPainter.cxx.
|
overridevirtual |
Implements TVirtualPadPainter.
Definition at line 929 of file TGLPadPainter.cxx.
|
private |
At the moment I assume both linear and radial gradients will work the same way - using a stencil buffer and some big rectangle(s) to fill with a gradient.
Thus I have a 'common' part - the part responsible for a stencil test.
Definition at line 1007 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw poly-line in user coordinates.
Implements TVirtualPadPainter.
Definition at line 570 of file TGLPadPainter.cxx.
Draw poly-line in user coordinates.
Implements TVirtualPadPainter.
Definition at line 578 of file TGLPadPainter.cxx.
|
private |
Draw poly-line in user coordinates.
Definition at line 523 of file TGLPadPainter.cxx.
|
private |
Poly-marker drawing.
Definition at line 616 of file TGLPadPainter.cxx.
Draw N segments on the pad Exclude segments where both points match.
Reimplemented in TPadPainter, and TPadPainterPS.
Definition at line 78 of file TVirtualPadPainter.cxx.
Draw N segments in NDC coordinates on the pad Exclude segments where both points match.
Reimplemented in TPadPainter, and TPadPainterPS.
Definition at line 89 of file TVirtualPadPainter.cxx.
Definition at line 1357 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw text.
This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).
Implements TVirtualPadPainter.
Definition at line 750 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw text.
This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).
Implements TVirtualPadPainter.
Definition at line 764 of file TGLPadPainter.cxx.
| void TGLPadPainter::DrawTextHelper | ( | Double_t | x, |
| Double_t | y, | ||
| const Char * | text, | ||
| ETextMode | ) |
Helper function to draw text.
Definition at line 715 of file TGLPadPainter.cxx.
|
private |
|
overridevirtual |
Draw text in NDC.
This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).
Implements TVirtualPadPainter.
Definition at line 778 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw text in NDC.
This operation is especially dangerous if in locked state - ftgl will assert on zero texture size (which is result of bad GL context).
Implements TVirtualPadPainter.
Definition at line 793 of file TGLPadPainter.cxx.
|
virtualinherited |
Draw text with url link By default only text is drawn.
Reimplemented in TPadPainterPS, and TWebPadPainter.
Definition at line 100 of file TVirtualPadPainter.cxx.
|
virtualinherited |
Performs rendering of TTF glyphs on output device Can be implemented in derived classes instead of implementing 4 different signatures of DrawText.
Reimplemented in TPadPainter.
Definition at line 165 of file TPadPainterBase.cxx.
Get fill attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 88 of file TPadPainterBase.h.
Returns fill attributes after modification Checks for special fill styles 4000 .
. 4100
Definition at line 33 of file TPadPainterBase.cxx.
Get line attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 89 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Get marker attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 90 of file TPadPainterBase.h.
Get text attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 91 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 52 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 53 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
old methods only for backward compatibility
Implements TVirtualPadPainter.
Definition at line 43 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 44 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 45 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 75 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 77 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 76 of file TPadPainterBase.h.
|
inlinevirtualinherited |
Reimplemented in TPadPainterPS.
Definition at line 163 of file TVirtualPadPainter.h.
|
overridevirtualinherited |
Returns text advance.
Reimplemented from TVirtualPadPainter.
Definition at line 142 of file TPadPainterBase.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 60 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 61 of file TPadPainterBase.h.
|
overridevirtualinherited |
Returns text accent / descent.
Reimplemented from TVirtualPadPainter.
Definition at line 89 of file TPadPainterBase.cxx.
|
overridevirtualinherited |
Returns text accent / descent.
Reimplemented from TVirtualPadPainter.
Definition at line 115 of file TPadPainterBase.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 62 of file TPadPainterBase.h.
|
overridevirtualinherited |
Returns text extend.
Reimplemented from TVirtualPadPainter.
Definition at line 53 of file TPadPainterBase.cxx.
|
overridevirtualinherited |
Returns text extend.
Reimplemented from TVirtualPadPainter.
Definition at line 71 of file TPadPainterBase.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 63 of file TPadPainterBase.h.
|
overridevirtual |
Delegate to gVirtualX.
Implements TVirtualPadPainter.
Definition at line 82 of file TGLPadPainter.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 64 of file TPadPainterBase.h.
|
inlineoverrideprotectedvirtual |
Reimplemented from TPadPainterBase.
Definition at line 64 of file TGLPadPainter.h.
|
overridevirtual |
Indicate that TTF can be used for text metrics Drawing done with FTGL which is based on Freetype library.
Reimplemented from TVirtualPadPainter.
Definition at line 705 of file TGLPadPainter.cxx.
|
overridevirtual |
Init gl-pad painter:
Reimplemented from TVirtualPadPainter.
Definition at line 277 of file TGLPadPainter.cxx.
|
overridevirtual |
When TPad::Range for gPad is called, projection must be changed in OpenGL.
Reimplemented from TVirtualPadPainter.
Definition at line 316 of file TGLPadPainter.cxx.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Reimplemented in TPadPainterPS, and TWebPadPainter.
Definition at line 130 of file TPadPainterBase.h.
|
overridevirtual |
Returns true when cocoa backend is used.
Reimplemented from TVirtualPadPainter.
Definition at line 177 of file TGLPadPainter.cxx.
|
private |
Returns true when invert mode is configured and painter in locked state Used when non-opaque of objects moving is involved.
Definition at line 607 of file TGLPadPainter.cxx.
|
inlineoverridevirtual |
Reimplemented from TVirtualPadPainter.
Definition at line 128 of file TGLPadPainter.h.
|
inlineoverridevirtual |
Reimplemented from TVirtualPadPainter.
Definition at line 132 of file TGLPadPainter.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 54 of file TPadPainterBase.h.
|
overridevirtual |
Locked state of painter means, that GL context can be invalid, so no GL calls can be executed.
Reimplemented from TVirtualPadPainter.
Definition at line 333 of file TGLPadPainter.cxx.
|
inlinevirtualinherited |
Reimplemented in TPadPainterPS.
Definition at line 117 of file TVirtualPadPainter.h.
|
overridevirtual |
Select pad where current painting will be performed.
Reimplemented from TVirtualPadPainter.
Definition at line 90 of file TGLPadPainter.cxx.
|
private |
|
staticinherited |
Create a pad painter of specified type.
Definition at line 62 of file TVirtualPadPainter.cxx.
Resize a gVirtualX Pixmap.
Reimplemented from TVirtualPadPainter.
Definition at line 152 of file TGLPadPainter.cxx.
|
private |
Restore the modelview matrix.
Attention! GL_MODELVIEW will become the current matrix after this call!
Definition at line 840 of file TGLPadPainter.cxx.
|
private |
Restore the projection matrix.
Attention! GL_PROJECTION will become the current matrix after this call!
Definition at line 818 of file TGLPadPainter.cxx.
|
private |
Restore the saved viewport.
Definition at line 857 of file TGLPadPainter.cxx.
|
overridevirtual |
Using TImage save frame-buffer contents as a picture.
Implements TVirtualPadPainter.
Definition at line 878 of file TGLPadPainter.cxx.
|
private |
Save the modelview matrix.
Attention! GL_MODELVIEW will become the current matrix after this call!
Definition at line 829 of file TGLPadPainter.cxx.
|
private |
Save the projection matrix.
Attention! GL_PROJECTION will become the current matrix after this call!
Definition at line 807 of file TGLPadPainter.cxx.
|
private |
Extract and save the current viewport.
Definition at line 849 of file TGLPadPainter.cxx.
|
overridevirtual |
For gVirtualX this means select pixmap (or window) and all subsequent drawings will go into this pixmap.
For OpenGL this means the change of coordinate system and viewport.
Implements TVirtualPadPainter.
Definition at line 206 of file TGLPadPainter.cxx.
Select specified font/size.
Definition at line 681 of file TGLPadPainter.cxx.
Set fill attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 101 of file TGLPadPainter.cxx.
Set line attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 115 of file TGLPadPainter.cxx.
|
overridevirtual |
Set marker attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 127 of file TGLPadPainter.cxx.
Set text attributes.
Reimplemented from TVirtualPadPainter.
Reimplemented in TPadPainterPS.
Definition at line 111 of file TPadPainterBase.h.
Set double buffer mode for specified device, redirect to gVirtualX.
Reimplemented in TPadPainter.
Definition at line 198 of file TVirtualPadPainter.cxx.
Set drawing mode for specified device.
Reimplemented from TVirtualPadPainter.
Definition at line 258 of file TGLPadPainter.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 56 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 57 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 47 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 48 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 49 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 79 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 81 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Definition at line 80 of file TPadPainterBase.h.
|
overridevirtual |
Delegate to gVirtualX.
Implements TVirtualPadPainter.
Definition at line 73 of file TGLPadPainter.cxx.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 67 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 68 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 69 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 70 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 71 of file TPadPainterBase.h.
|
inlineoverridevirtualinherited |
Implements TVirtualPadPainter.
Definition at line 72 of file TPadPainterBase.h.
|
overridevirtualinherited |
Reimplemented from TVirtualPadPainter.
Reimplemented in TPadPainterPS, and TWebPadPainter.
|
inlineinherited |
Definition at line 130 of file TPadPainterBase.h.
|
overridevirtual |
Call low-level update of selected drawable, redirect to gVirtualX.
Reimplemented from TVirtualPadPainter.
Definition at line 248 of file TGLPadPainter.cxx.
|
protectedinherited |
current fill attributes
Definition at line 28 of file TPadPainterBase.h.
|
protectedinherited |
current line attributes
Definition at line 29 of file TPadPainterBase.h.
|
protectedinherited |
current marker attributes
Definition at line 30 of file TPadPainterBase.h.
|
protectedinherited |
current text attributes
Definition at line 31 of file TPadPainterBase.h.
|
private |
Definition at line 41 of file TGLPadPainter.h.
|
private |
Definition at line 40 of file TGLPadPainter.h.
if transformed fill attributes fully transparent
Definition at line 32 of file TPadPainterBase.h.
|
private |
Definition at line 36 of file TGLPadPainter.h.
|
private |
Definition at line 45 of file TGLPadPainter.h.
|
private |
Definition at line 33 of file TGLPadPainter.h.
|
private |
Definition at line 47 of file TGLPadPainter.h.
|
protectedinherited |
Definition at line 26 of file TPadPainterBase.h.
|
private |
Definition at line 31 of file TGLPadPainter.h.
|
private |
Definition at line 32 of file TGLPadPainter.h.
|
private |
Definition at line 43 of file TGLPadPainter.h.
|
private |
Definition at line 38 of file TGLPadPainter.h.
|
private |
Definition at line 35 of file TGLPadPainter.h.