LibreOffice Module vcl (master)  1
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
OpenGLSalGraphicsImpl Class Referenceabstract

#include <openglgdiimpl.hxx>

Inheritance diagram for OpenGLSalGraphicsImpl:
[legend]
Collaboration diagram for OpenGLSalGraphicsImpl:
[legend]

Public Types

enum  XOROption {
  IGNORE_XOR,
  IMPLEMENT_XOR
}
 Oddly not all operations obey the XOR option. More...
 

Public Member Functions

bool UseProgram (const OUString &rVertexShader, const OUString &rFragmentShader, const OString &preamble="")
 
bool UseSolid (Color nColor, sal_uInt8 nTransparency)
 
bool UseSolid (Color nColor, double fTransparency)
 
bool UseSolid (Color nColor)
 
void UseSolid ()
 
bool UseLine (Color nColor, double fTransparency, GLfloat fLineWidth, bool bUseAA)
 
void UseLine (GLfloat fLineWidth, bool bUseAA)
 
bool UseInvert50 ()
 
bool UseInvert (SalInvert nFlags)
 
void DrawConvexPolygon (sal_uInt32 nPoints, const SalPoint *pPtAry, bool blockAA=false)
 
void DrawConvexPolygon (const tools::Polygon &rPolygon, bool blockAA)
 
void DrawTrapezoid (const basegfx::B2DTrapezoid &trapezoid, bool blockAA)
 
void DrawRect (long nX, long nY, long nWidth, long nHeight)
 
void DrawRect (const tools::Rectangle &rRect)
 
void DrawPolygon (sal_uInt32 nPoints, const SalPoint *pPtAry)
 
void DrawLineSegment (float x1, float y1, float x2, float y2)
 
void DrawPolyPolygon (const basegfx::B2DPolyPolygon &rPolyPolygon, bool blockAA=false)
 
void DrawRegionBand (const RegionBand &rRegion)
 
void DrawTextureRect (const SalTwoRect &rPosAry)
 
void DrawTexture (OpenGLTexture &rTexture, const SalTwoRect &rPosAry, bool bInverted=false)
 
void DrawTransformedTexture (OpenGLTexture &rTexture, OpenGLTexture &rMask, const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY)
 
void DrawAlphaTexture (OpenGLTexture &rTexture, const SalTwoRect &rPosAry, bool bInverted, bool pPremultiplied)
 
void DrawTextureDiff (OpenGLTexture &rTexture, OpenGLTexture &rMask, const SalTwoRect &rPosAry, bool bInverted)
 
void DrawTextureWithMask (OpenGLTexture &rTexture, OpenGLTexture &rMask, const SalTwoRect &rPosAry)
 
void DrawBlendedTexture (OpenGLTexture &rTexture, OpenGLTexture &rMask, OpenGLTexture &rAlpha, const SalTwoRect &rPosAry)
 
void DrawMask (OpenGLTexture &rTexture, Color nMaskColor, const SalTwoRect &rPosAry)
 
void DrawLinearGradient (const Gradient &rGradient, const tools::Rectangle &rRect)
 
void DrawAxialGradient (const Gradient &rGradient, const tools::Rectangle &rRect)
 
void DrawRadialGradient (const Gradient &rGradient, const tools::Rectangle &rRect)
 
void DeferredTextDraw (OpenGLTexture const &rTexture, const Color nMaskColor, const SalTwoRect &rPosAry)
 
void FlushDeferredDrawing ()
 
void FlushLinesOrTriangles (DrawShaderType eType, RenderParameters const &rParameters)
 
GLfloat GetWidth () const
 
GLfloat GetHeight () const
 
bool IsOffscreen () const
 check whether this instance is used for offscreen (Virtual Device) rendering ie. More...
 
void InitializePreDrawState (XOROption eOpt)
 
void PreDraw (XOROption eOpt=IGNORE_XOR)
 
void PostDraw ()
 
void PostBatchDraw ()
 
 OpenGLSalGraphicsImpl (SalGraphics &pParent, SalGeometryProvider *pProvider)
 
virtual ~OpenGLSalGraphicsImpl () override
 
rtl::Reference< OpenGLContextGetOpenGLContext ()
 
virtual void Init () override
 
virtual void DeInit () override
 
virtual void freeResources () override
 
const vcl::RegiongetClipRegion () const
 
virtual bool setClipRegion (const vcl::Region &) override
 
virtual sal_uInt16 GetBitCount () const override
 
virtual long GetGraphicsWidth () const override
 
virtual void ResetClipRegion () override
 
virtual void SetLineColor () override
 
virtual void SetLineColor (Color nColor) override
 
virtual void SetFillColor () override
 
virtual void SetFillColor (Color nColor) override
 
virtual void SetXORMode (bool bSet, bool bInvertOnly) override
 
virtual void SetROPLineColor (SalROPColor nROPColor) override
 
virtual void SetROPFillColor (SalROPColor nROPColor) override
 
virtual void drawPixel (long nX, long nY) override
 
virtual void drawPixel (long nX, long nY, Color nColor) override
 
virtual void drawLine (long nX1, long nY1, long nX2, long nY2) override
 
virtual void drawRect (long nX, long nY, long nWidth, long nHeight) override
 
virtual void drawPolyLine (sal_uInt32 nPoints, const SalPoint *pPtAry) override
 
virtual void drawPolygon (sal_uInt32 nPoints, const SalPoint *pPtAry) override
 
virtual void drawPolyPolygon (sal_uInt32 nPoly, const sal_uInt32 *pPoints, PCONSTSALPOINT *pPtAry) override
 
virtual bool drawPolyPolygon (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolyPolygon &, double fTransparency) override
 
virtual bool drawPolyLine (const basegfx::B2DHomMatrix &rObjectToDevice, const basegfx::B2DPolygon &, double fTransparency, const basegfx::B2DVector &rLineWidths, basegfx::B2DLineJoin, css::drawing::LineCap, double fMiterMinimumAngle, bool bPixelSnapHairline) override
 
virtual bool drawPolyLineBezier (sal_uInt32 nPoints, const SalPoint *pPtAry, const PolyFlags *pFlgAry) override
 
virtual bool drawPolygonBezier (sal_uInt32 nPoints, const SalPoint *pPtAry, const PolyFlags *pFlgAry) override
 
virtual bool drawPolyPolygonBezier (sal_uInt32 nPoly, const sal_uInt32 *pPoints, const SalPoint *const *pPtAry, const PolyFlags *const *pFlgAry) override
 
virtual void copyArea (long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth, long nSrcHeight, bool bWindowInvalidate) override
 
void DoCopyBits (const SalTwoRect &rPosAry, OpenGLSalGraphicsImpl &rSrcImpl)
 
virtual bool blendBitmap (const SalTwoRect &, const SalBitmap &rBitmap) override
 
virtual bool blendAlphaBitmap (const SalTwoRect &, const SalBitmap &rSrcBitmap, const SalBitmap &rMaskBitmap, const SalBitmap &rAlphaBitmap) override
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap) override
 
virtual void drawBitmap (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, const SalBitmap &rMaskBitmap) override
 
virtual void drawMask (const SalTwoRect &rPosAry, const SalBitmap &rSalBitmap, Color nMaskColor) override
 
virtual std::shared_ptr< SalBitmapgetBitmap (long nX, long nY, long nWidth, long nHeight) override
 
virtual Color getPixel (long nX, long nY) override
 
virtual void invert (long nX, long nY, long nWidth, long nHeight, SalInvert nFlags) override
 
virtual void invert (sal_uInt32 nPoints, const SalPoint *pPtAry, SalInvert nFlags) override
 
virtual bool drawEPS (long nX, long nY, long nWidth, long nHeight, void *pPtr, sal_uInt32 nSize) override
 
virtual bool drawAlphaBitmap (const SalTwoRect &, const SalBitmap &rSourceBitmap, const SalBitmap &rAlphaBitmap) override
 Render bitmap with alpha channel. More...
 
virtual bool drawTransformedBitmap (const basegfx::B2DPoint &rNull, const basegfx::B2DPoint &rX, const basegfx::B2DPoint &rY, const SalBitmap &rSourceBitmap, const SalBitmap *pAlphaBitmap) override
 draw transformed bitmap (maybe with alpha) where Null, X, Y define the coordinate system More...
 
virtual bool drawAlphaRect (long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency) override
 Render solid rectangle with given transparency. More...
 
virtual bool drawGradient (const tools::PolyPolygon &rPolygon, const Gradient &rGradient) override
 
void flush ()
 queue an idle flush of contents of the back-buffer to the screen More...
 
void doFlush ()
 do flush of contents of the back-buffer to the screen & swap. More...
 
- Public Member Functions inherited from SalGraphicsImpl
virtual ~SalGraphicsImpl ()
 
virtual void copyBits (const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)=0
 

Protected Member Functions

void ImplInitClipRegion ()
 
void ImplSetClipBit (const vcl::Region &rClip, GLuint nMask)
 
void ImplDrawLineAA (double nX1, double nY1, double nX2, double nY2, bool edge)
 
void CheckOffscreenTexture ()
 
void ApplyProgramMatrices (float fPixelOffset=0.0)
 
bool AcquireContext (bool bForceCreate=false)
 
void ReleaseContext ()
 
virtual rtl::Reference< OpenGLContextCreateWinContext ()=0
 create a new context for rendering to the underlying window More...
 

Static Protected Member Functions

static bool UseContext (const rtl::Reference< OpenGLContext > &pContext)
 check whether the given context can be used for off-screen rendering More...
 

Protected Attributes

rtl::Reference< OpenGLContextmpWindowContext
 This context is solely for blitting maOffscreenTex. More...
 
rtl::Reference< OpenGLContextmpContext
 This context is whatever is most convenient to render to maOffscreenTex with. More...
 
SalGraphicsmrParent
 
SalGeometryProvidermpProvider
 Pointer to the SalFrame or SalVirtualDevice. More...
 
OpenGLProgrammpProgram
 
std::unique_ptr< OpenGLFlushIdle > mpFlush
 This idle handler is used to swap buffers after rendering. More...
 
vcl::Region maClipRegion
 
bool mbUseScissor
 
bool mbUseStencil
 
bool mbXORMode
 
bool mbAcquiringOpenGLContext
 
OpenGLTexture maOffscreenTex
 All rendering happens to this off-screen texture. More...
 
Color mnLineColor
 
Color mnFillColor
 
bool mProgramIsSolidColor
 
sal_uInt32 mnDrawCount
 
sal_uInt32 mnDrawCountAtFlush
 
Color mProgramSolidColor
 
double mProgramSolidTransparency
 
std::unique_ptr< RenderListmpRenderList
 

Friends

class OpenGLTests
 

Detailed Description

Definition at line 58 of file openglgdiimpl.hxx.

Member Enumeration Documentation

Oddly not all operations obey the XOR option.

Enumerator
IGNORE_XOR 
IMPLEMENT_XOR 

Definition at line 163 of file openglgdiimpl.hxx.

Constructor & Destructor Documentation

OpenGLSalGraphicsImpl::OpenGLSalGraphicsImpl ( SalGraphics pParent,
SalGeometryProvider pProvider 
)
virtual OpenGLSalGraphicsImpl::~OpenGLSalGraphicsImpl ( )
overridevirtual

Member Function Documentation

bool OpenGLSalGraphicsImpl::AcquireContext ( bool  bForceCreate = false)
protected
void OpenGLSalGraphicsImpl::ApplyProgramMatrices ( float  fPixelOffset = 0.0)
protected
virtual bool OpenGLSalGraphicsImpl::blendAlphaBitmap ( const SalTwoRect ,
const SalBitmap rSrcBitmap,
const SalBitmap rMaskBitmap,
const SalBitmap rAlphaBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::blendBitmap ( const SalTwoRect ,
const SalBitmap rBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::CheckOffscreenTexture ( )
protected
virtual void OpenGLSalGraphicsImpl::copyArea ( long  nDestX,
long  nDestY,
long  nSrcX,
long  nSrcY,
long  nSrcWidth,
long  nSrcHeight,
bool  bWindowInvalidate 
)
overridevirtual

Implements SalGraphicsImpl.

virtual rtl::Reference<OpenGLContext> OpenGLSalGraphicsImpl::CreateWinContext ( )
protectedpure virtual

create a new context for rendering to the underlying window

Implemented in WinOpenGLSalGraphicsImpl, and X11OpenGLSalGraphicsImpl.

void OpenGLSalGraphicsImpl::DeferredTextDraw ( OpenGLTexture const &  rTexture,
const Color  nMaskColor,
const SalTwoRect rPosAry 
)
virtual void OpenGLSalGraphicsImpl::DeInit ( )
overridevirtual

Reimplemented from SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DoCopyBits ( const SalTwoRect rPosAry,
OpenGLSalGraphicsImpl rSrcImpl 
)
void OpenGLSalGraphicsImpl::doFlush ( )

do flush of contents of the back-buffer to the screen & swap.

virtual bool OpenGLSalGraphicsImpl::drawAlphaBitmap ( const SalTwoRect ,
const SalBitmap rSourceBitmap,
const SalBitmap rAlphaBitmap 
)
overridevirtual

Render bitmap with alpha channel.

Parameters
rSourceBitmapSource bitmap to blit
rAlphaBitmapAlpha channel to use for blitting
Returns
true, if the operation succeeded, and false otherwise. In this case, clients should try to emulate alpha compositing themselves

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawAlphaRect ( long  nX,
long  nY,
long  nWidth,
long  nHeight,
sal_uInt8  nTransparency 
)
overridevirtual

Render solid rectangle with given transparency.

Parameters
nXTop left coordinate of rectangle
nYBottom right coordinate of rectangle
nWidthWidth of rectangle
nHeightHeight of rectangle
nTransparencyTransparency value (0-255) to use. 0 blits and opaque, 255 a fully transparent rectangle
Returns
true if successfully drawn, false if not able to draw rectangle

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawAlphaTexture ( OpenGLTexture rTexture,
const SalTwoRect rPosAry,
bool  bInverted,
bool  pPremultiplied 
)
void OpenGLSalGraphicsImpl::DrawAxialGradient ( const Gradient rGradient,
const tools::Rectangle rRect 
)
virtual void OpenGLSalGraphicsImpl::drawBitmap ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::drawBitmap ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap,
const SalBitmap rMaskBitmap 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawBlendedTexture ( OpenGLTexture rTexture,
OpenGLTexture rMask,
OpenGLTexture rAlpha,
const SalTwoRect rPosAry 
)
void OpenGLSalGraphicsImpl::DrawConvexPolygon ( sal_uInt32  nPoints,
const SalPoint pPtAry,
bool  blockAA = false 
)
void OpenGLSalGraphicsImpl::DrawConvexPolygon ( const tools::Polygon rPolygon,
bool  blockAA 
)
virtual bool OpenGLSalGraphicsImpl::drawEPS ( long  nX,
long  nY,
long  nWidth,
long  nHeight,
void pPtr,
sal_uInt32  nSize 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawGradient ( const tools::PolyPolygon rPolygon,
const Gradient rGradient 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::drawLine ( long  nX1,
long  nY1,
long  nX2,
long  nY2 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawLinearGradient ( const Gradient rGradient,
const tools::Rectangle rRect 
)
void OpenGLSalGraphicsImpl::DrawLineSegment ( float  x1,
float  y1,
float  x2,
float  y2 
)
void OpenGLSalGraphicsImpl::DrawMask ( OpenGLTexture rTexture,
Color  nMaskColor,
const SalTwoRect rPosAry 
)
virtual void OpenGLSalGraphicsImpl::drawMask ( const SalTwoRect rPosAry,
const SalBitmap rSalBitmap,
Color  nMaskColor 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::drawPixel ( long  nX,
long  nY 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::drawPixel ( long  nX,
long  nY,
Color  nColor 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawPolygon ( sal_uInt32  nPoints,
const SalPoint pPtAry 
)
virtual void OpenGLSalGraphicsImpl::drawPolygon ( sal_uInt32  nPoints,
const SalPoint pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawPolygonBezier ( sal_uInt32  nPoints,
const SalPoint pPtAry,
const PolyFlags pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::drawPolyLine ( sal_uInt32  nPoints,
const SalPoint pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawPolyLine ( const basegfx::B2DHomMatrix rObjectToDevice,
const basegfx::B2DPolygon ,
double  fTransparency,
const basegfx::B2DVector rLineWidths,
basegfx::B2DLineJoin  ,
css::drawing::LineCap  ,
double  fMiterMinimumAngle,
bool  bPixelSnapHairline 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawPolyLineBezier ( sal_uInt32  nPoints,
const SalPoint pPtAry,
const PolyFlags pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawPolyPolygon ( const basegfx::B2DPolyPolygon rPolyPolygon,
bool  blockAA = false 
)
virtual void OpenGLSalGraphicsImpl::drawPolyPolygon ( sal_uInt32  nPoly,
const sal_uInt32 *  pPoints,
PCONSTSALPOINT pPtAry 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawPolyPolygon ( const basegfx::B2DHomMatrix rObjectToDevice,
const basegfx::B2DPolyPolygon ,
double  fTransparency 
)
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::drawPolyPolygonBezier ( sal_uInt32  nPoly,
const sal_uInt32 *  pPoints,
const SalPoint *const *  pPtAry,
const PolyFlags *const *  pFlgAry 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawRadialGradient ( const Gradient rGradient,
const tools::Rectangle rRect 
)
void OpenGLSalGraphicsImpl::DrawRect ( long  nX,
long  nY,
long  nWidth,
long  nHeight 
)
void OpenGLSalGraphicsImpl::DrawRect ( const tools::Rectangle rRect)
virtual void OpenGLSalGraphicsImpl::drawRect ( long  nX,
long  nY,
long  nWidth,
long  nHeight 
)
overridevirtual

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawRegionBand ( const RegionBand rRegion)
void OpenGLSalGraphicsImpl::DrawTexture ( OpenGLTexture rTexture,
const SalTwoRect rPosAry,
bool  bInverted = false 
)
void OpenGLSalGraphicsImpl::DrawTextureDiff ( OpenGLTexture rTexture,
OpenGLTexture rMask,
const SalTwoRect rPosAry,
bool  bInverted 
)
void OpenGLSalGraphicsImpl::DrawTextureRect ( const SalTwoRect rPosAry)
void OpenGLSalGraphicsImpl::DrawTextureWithMask ( OpenGLTexture rTexture,
OpenGLTexture rMask,
const SalTwoRect rPosAry 
)
virtual bool OpenGLSalGraphicsImpl::drawTransformedBitmap ( const basegfx::B2DPoint rNull,
const basegfx::B2DPoint rX,
const basegfx::B2DPoint rY,
const SalBitmap rSourceBitmap,
const SalBitmap pAlphaBitmap 
)
overridevirtual

draw transformed bitmap (maybe with alpha) where Null, X, Y define the coordinate system

Implements SalGraphicsImpl.

void OpenGLSalGraphicsImpl::DrawTransformedTexture ( OpenGLTexture rTexture,
OpenGLTexture rMask,
const basegfx::B2DPoint rNull,
const basegfx::B2DPoint rX,
const basegfx::B2DPoint rY 
)
void OpenGLSalGraphicsImpl::DrawTrapezoid ( const basegfx::B2DTrapezoid trapezoid,
bool  blockAA 
)
void OpenGLSalGraphicsImpl::flush ( )

queue an idle flush of contents of the back-buffer to the screen

void OpenGLSalGraphicsImpl::FlushDeferredDrawing ( )
void OpenGLSalGraphicsImpl::FlushLinesOrTriangles ( DrawShaderType  eType,
RenderParameters const &  rParameters 
)
virtual void OpenGLSalGraphicsImpl::freeResources ( )
overridevirtual

Implements SalGraphicsImpl.

virtual sal_uInt16 OpenGLSalGraphicsImpl::GetBitCount ( ) const
overridevirtual

Implements SalGraphicsImpl.

virtual std::shared_ptr<SalBitmap> OpenGLSalGraphicsImpl::getBitmap ( long  nX,
long  nY,
long  nWidth,
long  nHeight 
)
overridevirtual

Implements SalGraphicsImpl.

const vcl::Region& OpenGLSalGraphicsImpl::getClipRegion ( ) const
virtual long OpenGLSalGraphicsImpl::GetGraphicsWidth ( ) const
overridevirtual

Implements SalGraphicsImpl.

GLfloat OpenGLSalGraphicsImpl::GetHeight ( ) const
inline

Definition at line 154 of file openglgdiimpl.hxx.

References SalGeometryProvider::GetHeight().

rtl::Reference<OpenGLContext> OpenGLSalGraphicsImpl::GetOpenGLContext ( )
virtual Color OpenGLSalGraphicsImpl::getPixel ( long  nX,
long  nY 
)
overridevirtual

Implements SalGraphicsImpl.

GLfloat OpenGLSalGraphicsImpl::GetWidth ( ) const
inline

Definition at line 151 of file openglgdiimpl.hxx.

References SalGeometryProvider::GetWidth().

void OpenGLSalGraphicsImpl::ImplDrawLineAA ( double  nX1,
double  nY1,
double  nX2,
double  nY2,
bool  edge 
)
protected
void OpenGLSalGraphicsImpl::ImplInitClipRegion ( )
protected
void OpenGLSalGraphicsImpl::ImplSetClipBit ( const vcl::Region rClip,
GLuint  nMask 
)
protected
virtual void OpenGLSalGraphicsImpl::Init ( )
overridevirtual
void OpenGLSalGraphicsImpl::InitializePreDrawState ( XOROption  eOpt)
virtual void OpenGLSalGraphicsImpl::invert ( long  nX,
long  nY,
long  nWidth,
long  nHeight,
SalInvert  nFlags 
)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::invert ( sal_uInt32  nPoints,
const SalPoint pPtAry,
SalInvert  nFlags 
)
overridevirtual

Implements SalGraphicsImpl.

bool OpenGLSalGraphicsImpl::IsOffscreen ( ) const
inline

check whether this instance is used for offscreen (Virtual Device) rendering ie.

does it need its own context.

Definition at line 160 of file openglgdiimpl.hxx.

References SalGeometryProvider::IsOffScreen().

void OpenGLSalGraphicsImpl::PostBatchDraw ( )
void OpenGLSalGraphicsImpl::PostDraw ( )
void OpenGLSalGraphicsImpl::PreDraw ( XOROption  eOpt = IGNORE_XOR)
void OpenGLSalGraphicsImpl::ReleaseContext ( )
protected
virtual void OpenGLSalGraphicsImpl::ResetClipRegion ( )
overridevirtual

Implements SalGraphicsImpl.

virtual bool OpenGLSalGraphicsImpl::setClipRegion ( const vcl::Region )
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetFillColor ( )
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetFillColor ( Color  nColor)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetLineColor ( )
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetLineColor ( Color  nColor)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetROPFillColor ( SalROPColor  nROPColor)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetROPLineColor ( SalROPColor  nROPColor)
overridevirtual

Implements SalGraphicsImpl.

virtual void OpenGLSalGraphicsImpl::SetXORMode ( bool  bSet,
bool  bInvertOnly 
)
overridevirtual

Implements SalGraphicsImpl.

static bool OpenGLSalGraphicsImpl::UseContext ( const rtl::Reference< OpenGLContext > &  pContext)
inlinestaticprotected

check whether the given context can be used for off-screen rendering

Definition at line 184 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::UseInvert ( SalInvert  nFlags)
bool OpenGLSalGraphicsImpl::UseInvert50 ( )
bool OpenGLSalGraphicsImpl::UseLine ( Color  nColor,
double  fTransparency,
GLfloat  fLineWidth,
bool  bUseAA 
)
void OpenGLSalGraphicsImpl::UseLine ( GLfloat  fLineWidth,
bool  bUseAA 
)
bool OpenGLSalGraphicsImpl::UseProgram ( const OUString &  rVertexShader,
const OUString &  rFragmentShader,
const OString &  preamble = "" 
)
bool OpenGLSalGraphicsImpl::UseSolid ( Color  nColor,
sal_uInt8  nTransparency 
)
bool OpenGLSalGraphicsImpl::UseSolid ( Color  nColor,
double  fTransparency 
)
bool OpenGLSalGraphicsImpl::UseSolid ( Color  nColor)
void OpenGLSalGraphicsImpl::UseSolid ( )

Friends And Related Function Documentation

friend class OpenGLTests
friend

Definition at line 60 of file openglgdiimpl.hxx.

Member Data Documentation

vcl::Region OpenGLSalGraphicsImpl::maClipRegion
protected

Definition at line 79 of file openglgdiimpl.hxx.

OpenGLTexture OpenGLSalGraphicsImpl::maOffscreenTex
protected

All rendering happens to this off-screen texture.

For non-virtual devices, ie. windows - we will blit it and swapBuffers later.

Definition at line 92 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::mbAcquiringOpenGLContext
protected

Definition at line 85 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::mbUseScissor
protected

Definition at line 80 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::mbUseStencil
protected

Definition at line 81 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::mbXORMode
protected

Definition at line 83 of file openglgdiimpl.hxx.

sal_uInt32 OpenGLSalGraphicsImpl::mnDrawCount
protected

Definition at line 99 of file openglgdiimpl.hxx.

sal_uInt32 OpenGLSalGraphicsImpl::mnDrawCountAtFlush
protected

Definition at line 100 of file openglgdiimpl.hxx.

Color OpenGLSalGraphicsImpl::mnFillColor
protected

Definition at line 95 of file openglgdiimpl.hxx.

Color OpenGLSalGraphicsImpl::mnLineColor
protected

Definition at line 94 of file openglgdiimpl.hxx.

rtl::Reference<OpenGLContext> OpenGLSalGraphicsImpl::mpContext
protected

This context is whatever is most convenient to render to maOffscreenTex with.

Definition at line 68 of file openglgdiimpl.hxx.

std::unique_ptr<OpenGLFlushIdle> OpenGLSalGraphicsImpl::mpFlush
protected

This idle handler is used to swap buffers after rendering.

Definition at line 76 of file openglgdiimpl.hxx.

OpenGLProgram* OpenGLSalGraphicsImpl::mpProgram
protected

Definition at line 73 of file openglgdiimpl.hxx.

SalGeometryProvider* OpenGLSalGraphicsImpl::mpProvider
protected

Pointer to the SalFrame or SalVirtualDevice.

Definition at line 72 of file openglgdiimpl.hxx.

std::unique_ptr<RenderList> OpenGLSalGraphicsImpl::mpRenderList
protected

Definition at line 104 of file openglgdiimpl.hxx.

bool OpenGLSalGraphicsImpl::mProgramIsSolidColor
protected

Definition at line 97 of file openglgdiimpl.hxx.

Color OpenGLSalGraphicsImpl::mProgramSolidColor
protected

Definition at line 101 of file openglgdiimpl.hxx.

double OpenGLSalGraphicsImpl::mProgramSolidTransparency
protected

Definition at line 102 of file openglgdiimpl.hxx.

rtl::Reference<OpenGLContext> OpenGLSalGraphicsImpl::mpWindowContext
protected

This context is solely for blitting maOffscreenTex.

Definition at line 64 of file openglgdiimpl.hxx.

SalGraphics& OpenGLSalGraphicsImpl::mrParent
protected

Definition at line 70 of file openglgdiimpl.hxx.


The documentation for this class was generated from the following file: