"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 Member Functions | |
| TGLPadPainter () | |
| void | ClearDrawable () override |
| Do nothing, sub-pads not cleared in GL. | |
| void | ClearWindow (Int_t device) override |
| Clear specified window - calling gVirtualX->ClearWindowW. | |
| void | CopyDrawable (Int_t device, Int_t px, Int_t py) override |
| Not required at the moment. | |
| Int_t | CreateDrawable (UInt_t w, UInt_t h) override |
| Not required at the moment. | |
| void | DestroyDrawable (Int_t device) override |
| Not required at the moment. | |
| void | DrawBox (Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode) override |
| Draw filled or hollow box. | |
| void | DrawFillArea (Int_t n, const Double_t *x, const Double_t *y) override |
| Draw tesselated polygon (probably, outline only). | |
| void | DrawFillArea (Int_t n, const Float_t *x, const Float_t *y) override |
| Draw tesselated polygon (never called, probably, since TPad::PaintFillArea for floats is deprecated). | |
| void | DrawLine (Double_t x1, Double_t y1, Double_t x2, Double_t y2) override |
| Draw line segment. | |
| void | DrawLineNDC (Double_t u1, Double_t v1, Double_t u2, Double_t v2) override |
| Draw line segment in NDC coordinates. | |
| void | DrawPixels (const unsigned char *pixelData, UInt_t width, UInt_t height, Int_t dstX, Int_t dstY, Bool_t enableBlending) override |
| void | DrawPolyLine (Int_t n, const Double_t *x, const Double_t *y) override |
| Draw poly-line in user coordinates. | |
| void | DrawPolyLine (Int_t n, const Float_t *x, const Float_t *y) override |
| Never called? | |
| void | DrawPolyLineNDC (Int_t n, const Double_t *u, const Double_t *v) override |
| Poly line in NDC. | |
| void | DrawPolyMarker (Int_t n, const Double_t *x, const Double_t *y) override |
| Poly-marker. | |
| void | DrawPolyMarker (Int_t n, const Float_t *x, const Float_t *y) override |
| Poly-marker. | |
| void | DrawText (Double_t x, Double_t y, const char *text, ETextMode mode) override |
| Draw text. | |
| void | DrawText (Double_t, Double_t, const wchar_t *, ETextMode) override |
| Draw text. | |
| template<class Char> | |
| void | DrawTextHelper (Double_t x, Double_t y, const Char *text, ETextMode) |
| Helper function to draw text. | |
| void | DrawTextNDC (Double_t x, Double_t y, const char *text, ETextMode mode) override |
| Draw text in NDC. | |
| void | DrawTextNDC (Double_t, Double_t, const wchar_t *, ETextMode) override |
| Draw text in NDC. | |
| UInt_t | GetTextAdvance (Font_t font, Double_t size, const char *text, Bool_t kern) override |
| Get text advance. | |
| void | GetTextAscentDescent (Font_t font, Double_t size, UInt_t &a, UInt_t &d, const char *mess) override |
| Get text extent. | |
| void | GetTextAscentDescent (Font_t font, Double_t size, UInt_t &a, UInt_t &d, const wchar_t *mess) override |
| Get text extent. | |
| void | GetTextExtent (Font_t font, Double_t size, UInt_t &w, UInt_t &h, const char *mess) override |
| Get text extent. | |
| void | GetTextExtent (Font_t font, Double_t size, UInt_t &w, UInt_t &h, const wchar_t *mess) override |
| Get text extent. | |
| Float_t | GetTextMagnitude () const override |
| Delegate to gVirtualX. | |
| void | InitPainter () override |
| Init gl-pad painter: | |
| void | InvalidateCS () override |
| When TPad::Range for gPad is called, projection must be changed in OpenGL. | |
| Bool_t | IsCocoa () const override |
| Returns true when cocoa backend is used. | |
| Bool_t | IsNative () const override |
| Bool_t | IsSupportAlpha () const override |
| void | LockPainter () override |
| Locked state of painter means, that GL context can be invalid, so no GL calls can be executed. | |
| void | OnPad (TVirtualPad *) override |
| Select pad where current painting will be performed. | |
| Int_t | ResizeDrawable (Int_t device, UInt_t w, UInt_t h) override |
| Resize a gVirtualX Pixmap. | |
| void | SaveImage (TVirtualPad *pad, const char *fileName, Int_t type) const override |
| Using TImage save frame-buffer contents as a picture. | |
| void | SelectDrawable (Int_t device) override |
| For gVirtualX this means select pixmap (or window) and all subsequent drawings will go into this pixmap. | |
| void | SetAttFill (const TAttFill &att) override |
| Set fill attributes. | |
| void | SetAttLine (const TAttLine &att) override |
| Set line attributes. | |
| void | SetAttMarker (const TAttMarker &att) override |
| Set marker attributes. | |
| void | SetDrawMode (Int_t device, Int_t mode) override |
| Set drawing mode for specified device. | |
| void | SetOpacity (Int_t percent) override |
| Delegate to gVirtualX. | |
| void | UpdateDrawable (Int_t mode) override |
| Call low-level update of selected drawable, redirect to gVirtualX. | |
Public Member Functions inherited from TPadPainterBase | |
| const TAttFill & | GetAttFill () const override |
| const TAttLine & | GetAttLine () const override |
| Get line attributes. | |
| const TAttMarker & | GetAttMarker () const override |
| Get marker attributes. | |
| const TAttText & | GetAttText () const override |
| Get text attributes. | |
| Color_t | GetFillColor () const override |
| Style_t | GetFillStyle () const override |
| Color_t | GetLineColor () const override |
| Style_t | GetLineStyle () const override |
| Width_t | GetLineWidth () const override |
| Color_t | GetMarkerColor () const override |
| Size_t | GetMarkerSize () const override |
| Style_t | GetMarkerStyle () const override |
| UInt_t | GetTextAdvance (Font_t font, Double_t size, const char *text, Bool_t kern) override |
| Returns text advance. | |
| Short_t | GetTextAlign () const override |
| Float_t | GetTextAngle () const override |
| void | GetTextAscentDescent (Font_t font, Double_t size, UInt_t &a, UInt_t &d, const char *mess) override |
| Returns text accent / descent. | |
| void | GetTextAscentDescent (Font_t font, Double_t size, UInt_t &a, UInt_t &d, const wchar_t *mess) override |
| Returns text accent / descent. | |
| Color_t | GetTextColor () const override |
| void | GetTextExtent (Font_t font, Double_t size, UInt_t &w, UInt_t &h, const char *mess) override |
| Returns text extend. | |
| void | GetTextExtent (Font_t font, Double_t size, UInt_t &w, UInt_t &h, const wchar_t *mess) override |
| Returns text extend. | |
| Font_t | GetTextFont () const override |
| Float_t | GetTextMagnitude () const override |
| Float_t | GetTextSize () const override |
| TClass * | IsA () const override |
| Bool_t | IsTransparent () const override |
| void | SetAttFill (const TAttFill &att) override |
| Set fill attributes. | |
| void | SetAttLine (const TAttLine &att) override |
| Set line attributes. | |
| void | SetAttMarker (const TAttMarker &att) override |
| Set marker attributes. | |
| void | SetAttText (const TAttText &att) override |
| Set text attributes. | |
| void | SetFillColor (Color_t fcolor) override |
| void | SetFillStyle (Style_t fstyle) override |
| void | SetLineColor (Color_t lcolor) override |
| void | SetLineStyle (Style_t lstyle) override |
| void | SetLineWidth (Width_t lwidth) override |
| void | SetMarkerColor (Color_t mcolor) override |
| void | SetMarkerSize (Size_t msize) override |
| void | SetMarkerStyle (Style_t mstyle) override |
| void | SetTextAlign (Short_t align) override |
| void | SetTextAngle (Float_t tangle) override |
| void | SetTextColor (Color_t tcolor) override |
| void | SetTextFont (Font_t tfont) override |
| void | SetTextSize (Float_t tsize) override |
| void | SetTextSizePixels (Int_t npixels) override |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TVirtualPadPainter | |
| virtual | ~TVirtualPadPainter () |
| Virtual dtor. | |
| virtual void | DrawSegments (Int_t n, Double_t *x, Double_t *y) |
| Draw N segments on the pad Exclude segments where both points match. | |
| virtual void | DrawSegmentsNDC (Int_t n, Double_t *u, Double_t *v) |
| Draw N segments in NDC coordinates on the pad Exclude segments where both points match. | |
| virtual void | DrawTextUrl (Double_t x, Double_t y, const char *text, const char *url) |
| Draw text with url link By default only text is drawn. | |
| virtual TVirtualPS * | GetPS () const |
| virtual Bool_t | HasTTFonts () const |
| Return true if TTF font can be used. | |
| virtual void | NewPage () |
| virtual void | SetCursor (Int_t win, ECursor cursor) |
| Set cursor for specified device, redirect to gVirtualX. | |
| virtual void | SetDoubleBuffer (Int_t device, Int_t mode) |
| Set double buffer mode for specified device, redirect to gVirtualX. | |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
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. | |
| void | DrawPolyMarker () |
| Poly-marker. | |
| 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) |
| 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. | |
| template<class Char_t> | |
| void | TextAscentDescentHelper (Font_t font, Double_t size, UInt_t &a, UInt_t &d, const Char_t *text) |
| Helper function to get text ascent / descent. | |
| template<class Char_t> | |
| void | TextExtentHelper (Font_t font, Double_t size, UInt_t &w, UInt_t &h, const Char_t *text) |
| Helper function to get text extent. | |
Private Attributes | |
| TGLFont | fF |
| TGLFontManager | fFM |
| TAttFill | fGlFillAtt |
| Bool_t | fIsHollowArea |
| Rgl::Pad::GLLimits | fLimits |
| Bool_t | fLocked |
| Rgl::Pad::MarkerPainter | fMarker |
| std::vector< TPoint > | fPoly |
| Rgl::Pad::PolygonStippleSet | fSSet |
| Rgl::Pad::Tesselator | fTess |
| Int_t | fVp [4] |
| std::vector< Double_t > | fVs |
| WinContext_t | fWinContext |
Additional Inherited Members | |
Public Types inherited from TVirtualPadPainter | |
| enum | EBoxMode { kHollow , kFilled } |
| enum | ETextMode { kClear , kOpaque } |
Static Public Member Functions inherited from TPadPainterBase | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Static Public Member Functions inherited from TVirtualPadPainter | |
| 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 inherited from TPadPainterBase | |
| TAttFill | GetAttFillInternal (Bool_t with_transparency) |
| Returns fill attributes after modification Checks for special fill styles 4000 . | |
Protected Attributes inherited from TPadPainterBase | |
| 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 | |
#include <TGLPadPainter.h>
| TGLPadPainter::TGLPadPainter | ( | ) |
Definition at line 60 of file TGLPadPainter.cxx.
|
private |
|
overridevirtual |
Do nothing, sub-pads not cleared in GL.
Implements TVirtualPadPainter.
Definition at line 159 of file TGLPadPainter.cxx.
|
overridevirtual |
Clear specified window - calling gVirtualX->ClearWindowW.
Reimplemented from TVirtualPadPainter.
Definition at line 166 of file TGLPadPainter.cxx.
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 184 of file TGLPadPainter.cxx.
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 142 of file TGLPadPainter.cxx.
|
overridevirtual |
Not required at the moment.
Implements TVirtualPadPainter.
Definition at line 192 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw filled or hollow box.
Implements TVirtualPadPainter.
Definition at line 421 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw tesselated polygon (probably, outline only).
Implements TVirtualPadPainter.
Definition at line 462 of file TGLPadPainter.cxx.
Draw tesselated polygon (never called, probably, since TPad::PaintFillArea for floats is deprecated).
Implements TVirtualPadPainter.
Definition at line 492 of file TGLPadPainter.cxx.
|
private |
Definition at line 1395 of file TGLPadPainter.cxx.
|
private |
Definition at line 1218 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 1088 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 1166 of file TGLPadPainter.cxx.
|
overridevirtual |
Draw poly-line in user coordinates.
Implements TVirtualPadPainter.
Definition at line 524 of file TGLPadPainter.cxx.
|
private |
Poly-marker.
Definition at line 633 of file TGLPadPainter.cxx.
Definition at line 1516 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 878 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 892 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 807 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 906 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 965 of file TGLPadPainter.cxx.
|
overridevirtual |
Get text advance.
Reimplemented from TVirtualPadPainter.
Definition at line 950 of file TGLPadPainter.cxx.
|
overridevirtual |
Get text extent.
Reimplemented from TVirtualPadPainter.
Definition at line 934 of file TGLPadPainter.cxx.
|
overridevirtual |
Get text extent.
Reimplemented from TVirtualPadPainter.
Definition at line 942 of file TGLPadPainter.cxx.
|
overridevirtual |
Get text extent.
Reimplemented from TVirtualPadPainter.
Definition at line 918 of file TGLPadPainter.cxx.
|
overridevirtual |
Get text extent.
Reimplemented from TVirtualPadPainter.
Definition at line 926 of file TGLPadPainter.cxx.
|
overridevirtual |
Delegate to gVirtualX.
Implements TVirtualPadPainter.
Definition at line 81 of file TGLPadPainter.cxx.
|
overridevirtual |
Init gl-pad painter:
Reimplemented from TVirtualPadPainter.
Definition at line 276 of file TGLPadPainter.cxx.
|
overridevirtual |
When TPad::Range for gPad is called, projection must be changed in OpenGL.
Reimplemented from TVirtualPadPainter.
Definition at line 315 of file TGLPadPainter.cxx.
|
overridevirtual |
Returns true when cocoa backend is used.
Reimplemented from TVirtualPadPainter.
Definition at line 176 of file TGLPadPainter.cxx.
|
inlineoverridevirtual |
Reimplemented from TVirtualPadPainter.
Definition at line 126 of file TGLPadPainter.h.
|
inlineoverridevirtual |
Reimplemented from TVirtualPadPainter.
Definition at line 130 of file TGLPadPainter.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 332 of file TGLPadPainter.cxx.
|
overridevirtual |
Select pad where current painting will be performed.
Reimplemented from TVirtualPadPainter.
Definition at line 89 of file TGLPadPainter.cxx.
|
private |
Resize a gVirtualX Pixmap.
Reimplemented from TVirtualPadPainter.
Definition at line 151 of file TGLPadPainter.cxx.
|
private |
Restore the modelview matrix.
Attention! GL_MODELVIEW will become the current matrix after this call!
Definition at line 1012 of file TGLPadPainter.cxx.
|
private |
Restore the projection matrix.
Attention! GL_PROJECTION will become the current matrix after this call!
Definition at line 990 of file TGLPadPainter.cxx.
|
private |
Restore the saved viewport.
Definition at line 1029 of file TGLPadPainter.cxx.
|
overridevirtual |
Using TImage save frame-buffer contents as a picture.
Implements TVirtualPadPainter.
Definition at line 1037 of file TGLPadPainter.cxx.
|
private |
Save the modelview matrix.
Attention! GL_MODELVIEW will become the current matrix after this call!
Definition at line 1001 of file TGLPadPainter.cxx.
|
private |
Save the projection matrix.
Attention! GL_PROJECTION will become the current matrix after this call!
Definition at line 979 of file TGLPadPainter.cxx.
|
private |
Extract and save the current viewport.
Definition at line 1021 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 205 of file TGLPadPainter.cxx.
Select specified font/size.
Definition at line 783 of file TGLPadPainter.cxx.
|
overridevirtual |
Set fill attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 100 of file TGLPadPainter.cxx.
|
overridevirtual |
Set line attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 114 of file TGLPadPainter.cxx.
|
overridevirtual |
Set marker attributes.
Reimplemented from TVirtualPadPainter.
Definition at line 126 of file TGLPadPainter.cxx.
Set drawing mode for specified device.
Reimplemented from TVirtualPadPainter.
Definition at line 257 of file TGLPadPainter.cxx.
|
overridevirtual |
Delegate to gVirtualX.
Implements TVirtualPadPainter.
Definition at line 72 of file TGLPadPainter.cxx.
|
private |
Helper function to get text ascent / descent.
Definition at line 858 of file TGLPadPainter.cxx.
|
private |
Helper function to get text extent.
Definition at line 840 of file TGLPadPainter.cxx.
|
overridevirtual |
Call low-level update of selected drawable, redirect to gVirtualX.
Reimplemented from TVirtualPadPainter.
Definition at line 247 of file TGLPadPainter.cxx.
|
private |
Definition at line 42 of file TGLPadPainter.h.
|
private |
Definition at line 41 of file TGLPadPainter.h.
|
private |
Definition at line 37 of file TGLPadPainter.h.
|
private |
Definition at line 47 of file TGLPadPainter.h.
|
private |
Definition at line 34 of file TGLPadPainter.h.
|
private |
Definition at line 49 of file TGLPadPainter.h.
|
private |
Definition at line 33 of file TGLPadPainter.h.
|
private |
Definition at line 46 of file TGLPadPainter.h.
|
private |
Definition at line 31 of file TGLPadPainter.h.
|
private |
Definition at line 32 of file TGLPadPainter.h.
|
private |
Definition at line 44 of file TGLPadPainter.h.
|
private |
Definition at line 39 of file TGLPadPainter.h.
|
private |
Definition at line 36 of file TGLPadPainter.h.