Guiliani  Version 2.5 revision 7293 (documentation build 13)
CGfxWrapGL Class Referenceabstract

OpenGL graphic wrapper base class. This is the base class for all OpenGL related graphic wrappers (OpenGL and OpenGL-ES). More...

#include <GfxWrapGL.h>

Inheritance diagram for CGfxWrapGL:

Public Member Functions

virtual void Arc (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
 
void BindBuffer (const eC_UInt &eType, const eC_UInt &uiBuffer)
 
void BindTexture (const eC_UInt &eType, const eC_UInt &uiTextureID)
 
void CreateScreen (const eC_UInt &uiWidth, const eC_UInt &uiHeight)
 
eC_UInt CreateTexture ()
 
void DeleteTexture (const eC_UInt &uiTextureID)
 
void DisableBlending ()
 disable blending
 
virtual eC_Bool DrawToBitmap (GUIBitmapPlaneID_t uiBitmapID)
 
virtual eC_Bool DrawToScreen ()
 
virtual void Ellipse (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Bool &bFilled)
 
void EnableBlending ()
 enable blending
 
virtual void FilledRect (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
 
CGUIImageDataGLGetImageData (const ImageResource_t &eImageID)
 
virtual eC_UInt GetPhysicalScreenHeight ()
 
virtual eC_UInt GetPhysicalScreenWidth ()
 
const eC_UInt GetTextureID (const ImageResource_t &eImageID)
 
eC_UInt GetVBO () const
 
virtual eC_UInt GetVirtualScreenHeight ()
 
virtual eC_UInt GetVirtualScreenWidth ()
 
virtual eC_Bool ImageExists (const ImageResource_t eID) const
 
void InitGLProcs ()
 
virtual eC_Bool InitView ()
 
eC_Bool IsFBOSupported () const
 
virtual void Line (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
 
virtual void ReadTextureData (const eC_UInt &uiTexID, const eC_UInt &uiXPos, const eC_UInt &uiYPos, const eC_UInt &uiWidth, const eC_UInt &uiHeight, void *pkData)=0
 
virtual void Rect (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2)
 
virtual void RestoreWrapperState ()
 
virtual void Ring (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vRingWidth, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
 
void Set2DView ()
 
void Set2DView (const eC_UInt uiWidth, const eC_UInt uiHeight)
 
void SetClientStates (const eC_Bool &bVertexEnabled, const eC_Bool &bTextureCoordsEnabled)
 
virtual void SetCliprect (const CGUIRect &rkNewClipRect)
 
virtual void SetForegroundColorImpl (const eC_UByte &ubRed, const eC_UByte &ubGreen, const eC_UByte &ubBlue, const eC_UByte &ubAlpha=255)
 
virtual eC_Value SetLineWidth (const eC_Value &vWidth)
 
void SetMixTextureWithColor (const eC_Bool &bMixWithColor)
 
void SetPerspectiveProjection (const eC_Value &vFovy, const eC_Value &vAspect, const eC_Value &vNear, const eC_Value &vFar)
 
virtual void SetScreenSize (const eC_UInt &uiWidth, const eC_UInt &uiHeight)
 
void SetTexturingActive (const eC_Bool &bTexturingActive)
 
virtual void StoreWrapperState ()
 
- Public Member Functions inherited from CGfxWrap
void ForceRefresh ()
 
eC_Bool GetDoubleBufferingEnforcesFlipping ()
 
virtual eC_UInt GetNOFImages ()
 
virtual eC_UInt GetPhysicalScreenHeight ()=0
 
virtual eC_UInt GetPhysicalScreenWidth ()=0
 
CGUICommonEnums::ImageType_t GetScreenFormat () const
 
virtual eC_UInt GetScreenHorizontalPPI () const
 
virtual eC_UInt GetScreenVerticalPPI () const
 
virtual eC_UInt GetVirtualScreenHeight ()=0
 
virtual eC_UInt GetVirtualScreenWidth ()=0
 
virtual eC_UByte * GetWorkingMemory (const eC_UInt &uiSize)
 
eC_String GetWrapperName () const
 
virtual eC_Bool ImageExists (const ImageResource_t eID) const =0
 
virtual void ReleaseWorkingMemory (eC_UByte *pkMemory)
 
virtual void ResetWorkingMemory ()
 
virtual void RestoreWrapperState ()
 
void SetDoubleBufferingEnforcesFlipping (const eC_Bool bDoubleBufferingEnforcesFlipping)
 
virtual void SetFilteredBlit (const eC_Bool &bFilteredBlit)
 
void SetGfxEnv (CGfxEnv *pkGfxEnv)
 
virtual void SetOptimizedBlit (const eC_Bool &bOptimizedBlit)
 
void SetScreenFormat (const CGUICommonEnums::ImageType_t &uiScreenFormat)
 
virtual void SetScreenSize (const eC_UInt &uiWidth, const eC_UInt &uiHeight)
 
virtual void SetWindowCaption (const eC_String &kText)
 
virtual void StoreWrapperState ()
 
virtual void SyncWorkingMemory ()
 
void SetForegroundColor (const eC_UByte &ubRed, const eC_UByte &ubGreen, const eC_UByte &ubBlue, const eC_UByte &ubAlpha=255)
 
void SetForegroundColor (const eC_UInt &uiCol)
 
void UpdateGlobalAlpha (const eC_UByte &ubAlpha)
 
void SetGlobalAlpha (const eC_UByte &ubAlpha)
 
eC_UInt GetForegroundColor () const
 
eC_UByte GetGlobalAlpha () const
 
eC_UByte ApplyGlobalAlpha (const eC_UByte ubAlpha) const
 
void Line (const CGUIRect &kAbsRect)
 
void Rect (const CGUIRect &kAbsRect)
 
void FilledRect (const CGUIRect &kAbsRect)
 
void Ellipse (const CGUIRect &kAbsRect, const eC_Bool &bFilled)
 
void Arc (const CGUIRect &kAbsRect, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
 
void Ring (const CGUIRect &kAbsRect, const eC_Value &vRingWidth, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)
 
void Text (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_String *const lpString)
 
virtual void RedrawGUI ()
 
virtual void ResetCliprect ()
 Resets the clipping rectangle.
 
virtual void GetCliprect (CGUIRect &AbsClipRect) const
 
void InvalidateRect (const CGUIRect &kInvalidRect)
 
void InvalidateRect (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2)
 
const CGUIRectGetInvalidatedRect () const
 
virtual void ClearInvalidRect ()
 
void BlitImg (const ImageResource_t &eID, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY)
 
void BlitImg (const CGUIImageData &kImageData, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY)
 
void BlitImgExt (const ImageResource_t &eID, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY, const eC_Value &vWidth, const eC_Value &vHeight, const eC_Bool &bStretch=true, const eC_UByte &ubAlpha=255)
 
void BlitImgNinePatch (const ImageResource_t &eID, const CGUIRect &kAbsRect, const CGUINinePatch &kNinePatch, const eC_UByte &ubAlpha=255)
 
void BlitImgExt (const ImageResource_t &eID, const CGUIRect &kAbsRect, const eC_Bool &bStretch=true, const eC_UByte &ubAlpha=255)
 
void BlitImgExt (const ImageResource_t &eID, const CGUIRect &kSrcAbsRect, const CGUIRect &kDstAbsRect, const eC_UByte &ubAlpha=255)
 
void BlitImgExt (const ImageResource_t &eID, const eC_UInt &uiAbsSrcX, const eC_UInt &uiAbsSrcY, const eC_UInt &uiSrcWidth, const eC_UInt &uiSrcHeight, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY, const eC_Value &vDestWidth, const eC_Value &vDestHeight, const eC_UByte &ubAlpha=255, const eC_Value &vAngle=eC_FromFloat(0), const eC_Value &vRotCenterX=eC_FromFloat(0.5), const eC_Value &vRotCenterY=eC_FromFloat(0.5))
 
eC_UInt GetImgWidth (const ImageResource_t &eID) const
 
eC_UInt GetImgHeight (const ImageResource_t &eID) const
 
CGUIRect GetImgOriginRect (const ImageResource_t &eID) const
 
void SetFont (const FontResource_t &eID)
 
void SetFontSpacing (const eC_Float &fSpacing)
 
void RequiredSpace (const eC_String *const pkText, eC_Value &vWidth, eC_Value &vHeight)
 
void FittingNumChars (const eC_String *const pkText, eC_Value vWidthMax, eC_UInt &uiNumChars, const eC_Bool &bStartAtEnd=false)
 
eC_Int GetAscender () const
 
eC_Int GetDescender () const
 
eC_Int GetInternalLeading () const
 
void GetGlyphMetrics (const eC_Char cChar, CFntWrap::GlyphMetrics_t &kMetrics)
 
eC_Value GetTextXPosAdjustment (const CGUIText::HorAligned_t eHorAlignment)
 
eC_Value GetTextYPosAdjustment (const CGUIText::VerAligned_t eVerAlignment)
 
eC_Bool SetNOFFonts (const eC_UInt uiNOFFonts)
 
eC_UInt GetNOFFonts ()
 
void ChangeFont (const FontResource_t &eFontID, const eC_Char *const pcPath, const eC_UInt &uiFontSize, const CFntWrap::GUIFont_t &eFontStyle)
 
void LoadFont (const FontResource_t &eFontID)
 
void UnloadFont (const FontResource_t &eFontID)
 
virtual eC_Bool SupportCompressedFonts () const
 
virtual void LoadGlyphData (CGUIImageData *pkImageData, const eC_UInt &uiGlyphWidth, const eC_UInt &uiGlyphHeight, eC_UByte *pkGlyphBitmap)
 
virtual void UnloadGlyphData (CGUIImageData *pkImageData)
 
virtual eC_TArray< eC_UByte > * GetBitmapPlaneData (const GUIBitmapPlaneID_t &eBitmapPlaneID)
 
virtual void SetTargetLayer (const eC_UInt &uiLayerID)
 
virtual void SetRenderingOffset (const eC_Value &vOffsetX, const eC_Value &vOffsetY)
 
void GetRenderingOffset (eC_Value &vOffsetX, eC_Value &vOffsetY)
 
virtual GUIBitmapPlaneID_t CreateBitmapPlane (const CGUIObject &rkParentObject, const eC_Value &vWidth, const eC_Value &vHeight)
 
void DeleteBitmapPlane (const GUIBitmapPlaneID_t uiBitmapID)
 
void DeleteBitmapPlanes (const CGUIObject *pkObject)
 
CGUIBitmapPlaneGetBitmapPlane (const GUIBitmapPlaneID_t uiBitmapID)
 
GUIBitmapPlaneID_t GetUsedBitmapPlaneID () const
 

Static Public Member Functions

static eC_Bool CheckGLError (const eC_String &kCallingMethod, const eC_String &kFunction="")
 
- Static Public Member Functions inherited from CGfxWrap
static void DeleteInstance ()
 Delete the graphics wrapper instance.
 
static eC_UInt GetNextPowerOf2 (const eC_Value &vValue)
 

Static Public Attributes

static const eC_Value cvPixelCenterOffset
 

Protected Member Functions

 CGfxWrapGL (void)
 Constructor.
 
virtual ~CGfxWrapGL (void)
 Destructor.
 
virtual void BlitImgExtImpl (const CGUIImageData &kImageData, const eC_Value &vAbsDestX, const eC_Value &vAbsDestY)
 
virtual void BlitImgExtImpl (const ImageResource_t &eID, const eC_UInt &uiSrcX, const eC_UInt &uiSrcY, const eC_UInt &uiSrcWidth, const eC_UInt &uiSrcHeight, const eC_Value &vDestX, const eC_Value &vDestY, const eC_Value &vDestWidth, const eC_Value &vDestHeight, const eC_UByte &ubAlpha=255, const eC_Value &vAngle=eC_FromFloat(0), const eC_Value &vRotCenterX=eC_FromFloat(0.5), const eC_Value &vRotCenterY=eC_FromFloat(0.5))
 
virtual void BlitImgNinePatch (const ImageResource_t &eID, const CGUIRect &kAbsRect, const eC_UInt uiTopBorder, const eC_UInt uiBottomBorder, const eC_UInt uiLeftBorder, const eC_UInt uiRightBorder, const eC_UByte &ubAlpha)
 
void BlitNinePatchExt ()
 helper for blitting ninepatch
 
virtual CGUIBitmapPlaneCreateGfxDependentBitmap (GUIBitmapPlaneID_t uiNewBitmapID, const CGUIObject &rkParentObject, const eC_Value &vWidth, const eC_Value &vHeight)
 
void DeInit (void)
 
void DrawRect (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Bool bFilled)
 
void GenerateTexture (const ImageResource_t &eImageID)
 
virtual eC_UInt GetImageSize (const ImageResource_t &eID) const
 
virtual eC_UInt GetImgHeightImpl (const ImageResource_t &eID) const
 
virtual eC_UInt GetImgWidthImpl (const ImageResource_t &eID) const
 
eC_Value GetZCorrection ()
 
void IncreaseZCorrection ()
 
void Init (void)
 
virtual void LoadImgImpl (const eC_String &psPath, const ImageResource_t &eID)
 
virtual void LoadImgImpl (void *pkMemory, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_UInt &eImageType, const ImageResource_t &eID)
 
virtual void RestoreBackBuffer (const eC_Value vWidth, const eC_Value vHeight)
 
void SetCliprect (const CGUIRect &rkNewClipRect, const eC_Bool &bRotate)
 
eC_Bool SetNOFImagesImpl (const eC_UInt uiNOFImages)
 
void SetScissor (const eC_Bool &bEnabled, const eC_Int &iX=0, const eC_Int &iY=0, const eC_Int &iWidth=0, const eC_Int &iHeight=0)
 
virtual void UnloadImg (const ImageResource_t &eID)
 
- Protected Member Functions inherited from CGfxWrap
 CGfxWrap ()
 Constructor.
 
virtual ~CGfxWrap (void)
 Destructor.
 
virtual void Arc (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)=0
 
void DeInit ()
 Deinitialization.
 
virtual void Ellipse (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2, const eC_Bool &bFilled)=0
 
virtual void FilledRect (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2)=0
 
virtual void Line (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2)=0
 the following methods are protected to prevent calling them directly More...
 
virtual void Rect (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2)=0
 
virtual void Ring (const eC_Value &vX1, const eC_Value &vY1, const eC_Value &vX2, const eC_Value &vY2, const eC_Value &vRingWidth, const eC_Value &vStartAngle, const eC_Value &vEndAngle, const eC_Value &vRotationAngle, const eC_Bool &bFilled)=0
 
virtual void SetForegroundColorImpl (const eC_UByte &ubRed, const eC_UByte &ubGreen, const eC_UByte &ubBlue, const eC_UByte &ubAlpha=255)=0
 
virtual eC_Bool Refresh (const RefreshCall_t eRefreshCallType)=0
 
virtual void StartHandleDraw (const CGUIRect &crkClipRect)
 
virtual void StartRedrawGUI ()
 
virtual void EndRedrawGUI ()
 Callback which is called at the end of RedrawGUI() after all Invalidated areas were drawn and refreshed.
 
virtual void DestroyScreen ()
 Method to clean and release the screen which was created via the CreateScreen Method. More...
 
eC_Bool SetNOFImages (const eC_UInt uiNOFImages)
 
void LoadImg (const eC_String &kPath, const ImageResource_t &eID)
 
void LoadImg (void *pkMemory, const eC_UInt &uiWidth, const eC_UInt &uiHeight, const eC_UInt &eImageType, const ImageResource_t &eID)
 
virtual void RefreshImage (const ImageResource_t &eID, void *pkMemory)
 
void SetInvalidatedRect (const eC_Value &vAbsX1, const eC_Value &vAbsY1, const eC_Value &vAbsX2, const eC_Value &vAbsY2)
 
void SetInvalidatedRect (const CGUIRect &NewAbsRect)
 
void ResetInvalidatedRect ()
 Resets the invalidated rectangle.
 
CGUIBitmapPlaneGetDummyBitmap ()
 
virtual eC_Bool FinishDrawToBitmap ()
 

Protected Attributes

eC_TArray< CGUIImageDataGL * > m_apTextures
 used textures
 
Matrix3D_t m_avTransMat
 transition matrix
 
eC_Bool m_bFBOSupported
 < Indicates if FrameBufferObjects are supported on this machine
 
eC_UInt m_uiVertexVBO
 vertex buffer object
 
eC_Value m_vAlpha
 alpha
 
eC_Value m_vAspect
 aspect-ratio
 
eC_Value m_vBlue
 blue
 
eC_Value m_vDepthCorrection
 depth-corretion
 
eC_Value m_vFar
 far-plane
 
eC_Value m_vFovy
 fov
 
eC_Value m_vGreen
 green
 
eC_Value m_vNear
 near-plane
 
eC_Value m_vRed
 red
 
- Protected Attributes inherited from CGfxWrap
eC_Bool m_bDoubleBufferingEnforcesFlipping
 
eC_Bool m_bFilteredBlit
 if filtered blit is active
 
eC_Bool m_bInvalidationInLastFrame
 
eC_Bool m_bOptimizedBlit
 if optimized blit is active
 
CGUIRect m_kClippingRect
 
eC_Semaphore m_kGfxWrapSemaphore
 Semaphore to lock access to methods used in a multi thread context.
 
CGUIRect m_kInvalidatedRect
 
eC_TListDoubleLinked< CGUIRectm_kInvalidatedRectList
 This is the list of invalidated rectangular regions within the GUI.
 
eC_TListDoubleLinked< CGUIRectm_kLastFrameInvalidatedRectList
 This is the list of regions which have been invalidated during the LAST frame.
 
eC_String m_kWrapperName
 name of the wrapper
 
CGfxEnvm_pkGfxEnv
 pointer to the graphics-environment
 
eC_UByte m_ubAlpha
 Currently set global alpha value.
 
eC_UInt m_uiColor
 Currently set foreground color.
 
eC_UInt m_uiNOFImages
 total number of image-objects
 
eC_UInt m_uiScreenHeight
 Screen height.
 
eC_UInt m_uiScreenWidth
 Screen width.
 
eC_Value m_vGlobalAlphaFactor
 
eC_Value m_vLineWidth
 Line width in pixels.
 
eC_Value m_vRenderingOffsetX
 offset in x-direction
 
eC_Value m_vRenderingOffsetY
 offset in y-direction
 

Friends

class CGUIBitmapPlane_GL
 

Additional Inherited Members

- Public Types inherited from CGfxWrap
enum  RefreshCall_t {
  SINGLE_REFRESH , FIRST_REFRESH_OF_FRAME , INTERMEDIATE_REFRESH , LAST_REFRESH_OF_FRAME ,
  FORCED_REFRESH
}
 
- Static Protected Attributes inherited from CGfxWrap
static const eC_Value cvTwoPi
 constant for 2 PI
 

Detailed Description

OpenGL graphic wrapper base class. This is the base class for all OpenGL related graphic wrappers (OpenGL and OpenGL-ES).

To understand how Guiliani is handling coordinatesystems under OpenGL please

See also
cvPixelCenterOffset.

Member Function Documentation

◆ Arc()

virtual void CGfxWrapGL::Arc ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2,
const eC_Value &  vStartAngle,
const eC_Value &  vEndAngle,
const eC_Value &  vRotationAngle,
const eC_Bool &  bFilled 
)
virtual

Draws an arc which is completly inside the rectangle described through the rectangle the top left edge at (vAbsX1, vAbsY1) and bottom right edge at (vAbsX2, vAbsY2). The arc will be filled out if the last parameter is true

Parameters
vX1X-coordinate of bounding rectangle's top left corner
vY1Y-Coordinate of bounding rectangle's top left corner
vX2X-coordinate of bounding rectangle's bottom right corner
vY2Y-Coordinate of bounding rectangle's bottom right corner
vStartAnglestart-angle
vEndAngleend-angle
vRotationAnglerotation-angle
bFilledSpecifies whether the arc will be drawn outlined (false) or filled (true)

Implements CGfxWrap.

◆ BindBuffer()

void CGfxWrapGL::BindBuffer ( const eC_UInt &  eType,
const eC_UInt &  uiBuffer 
)

Bind buffer

Parameters
eType
uiBuffer

◆ BindTexture()

void CGfxWrapGL::BindTexture ( const eC_UInt &  eType,
const eC_UInt &  uiTextureID 
)

Bind texture

Parameters
eType
uiTextureID

◆ BlitImgExtImpl() [1/2]

virtual void CGfxWrapGL::BlitImgExtImpl ( const CGUIImageData kImageData,
const eC_Value &  vAbsDestX,
const eC_Value &  vAbsDestY 
)
inlineprotectedvirtual

Blits an image. This MUST be implemented by all graphics wrappers. It is ensured that the supplied image ID is in the valid range and is not DUMMY_IMAGE. For detailed explanations, please refer to CGfxWrap::BlitImgExt

Parameters
kImageDataImageData
vAbsDestXDestination X position in absolute coordinates
vAbsDestYDestination Y position in absolute coordinates

Implements CGfxWrap.

◆ BlitImgExtImpl() [2/2]

virtual void CGfxWrapGL::BlitImgExtImpl ( const ImageResource_t eID,
const eC_UInt &  uiAbsSrcX,
const eC_UInt &  uiAbsSrcY,
const eC_UInt &  uiSrcWidth,
const eC_UInt &  uiSrcHeight,
const eC_Value &  vAbsDestX,
const eC_Value &  vAbsDestY,
const eC_Value &  vDestWidth,
const eC_Value &  vDestHeight,
const eC_UByte &  ubAlpha = 255,
const eC_Value &  vAngle = eC_FromFloat(0),
const eC_Value &  vRotCenterX = eC_FromFloat(0.5),
const eC_Value &  vRotCenterY = eC_FromFloat(0.5) 
)
protectedvirtual

Blits an image. This MUST be implemented by all graphics wrappers. It is ensured that the supplied image ID is in the valid range and is not DUMMY_IMAGE. For detailed explanations, please refer to CGfxWrap::BlitImgExt

Parameters
eIDIdentifier of the image to be blitted.
uiAbsSrcXX coordinate of upper left corner of the relevant area within the source image
uiAbsSrcYY coordinate of upper left corner of the relevant area within the source image
uiSrcWidthWidth of the relevant area within the source image
uiSrcHeightHeight of the relevant area within the source image
vAbsDestXDestination X position in absolute coordinates
vAbsDestYDestination Y position in absolute coordinates
vDestWidthDestination width
vDestHeightDestination height
ubAlphaDegree of transparency. 0=transparent 255=opaque Default is opaque.
vAngleAngle in degrees by which the image will be rotated
vRotCenterXRotation center X. In range of 0 to 1 (like U/V coordinates)
vRotCenterYRotation center Y. In range of 0 to 1 (like U/V coordinates)

Implements CGfxWrap.

◆ BlitImgNinePatch()

virtual void CGfxWrapGL::BlitImgNinePatch ( const ImageResource_t eID,
const CGUIRect kAbsRect,
const eC_UInt  uiTopBorder,
const eC_UInt  uiBottomBorder,
const eC_UInt  uiLeftBorder,
const eC_UInt  uiRightBorder,
const eC_UByte &  ubAlpha 
)
protectedvirtual

Nine-Patch blit of an image. Performs an intelligent 9-patch stretch blit of the image associated with the supplied Image Identifier. The image will be blitted to the position given by the upper left corner of the supplied rectangle and stretched to the desired width and height. To reduce visual artifacts during stretching, the image will automatically be split up into 9 parts. The four corners will be left unscaled, the four edges are each scaled in one axis, and the middle part is stretched in both axes. The two parameters uiXBorder and uiYBorder specify the width/height of the sections in pixels.

See also
CGUINinePatch
Parameters
eIDIdentifier of the image to be blitted.
kAbsRectRectangle describing the destination position and size of the image on the screen
uiTopBorderHeight of the topmost three sections of the Nine-patch in pixels
uiBottomBorderHeight of the lowermost three sections of the Nine-patch in pixels
uiLeftBorderWidth of the leftmost three sections of the Nine-patch in pixels
uiRightBorderWidth of the rightmost three sections of the Nine-patch in pixels
ubAlphaDegree of transparency. 0=transparent 255=opaque. Default is opaque.

Reimplemented from CGfxWrap.

◆ CheckGLError()

static eC_Bool CGfxWrapGL::CheckGLError ( const eC_String &  kCallingMethod,
const eC_String &  kFunction = "" 
)
static

Checks for occurency of OpenGL Erros. All OpenGL errors (error code and text) since the last call of this function (or glGetError) are log in the Guiliani Log.

Parameters
kCallingMethodString which will be added to the Log entry.
kFunctionname of function
Returns
True if successful, False otherwise

◆ CreateGfxDependentBitmap()

virtual CGUIBitmapPlane * CGfxWrapGL::CreateGfxDependentBitmap ( GUIBitmapPlaneID_t  uiNewBitmapID,
const CGUIObject rkParentObject,
const eC_Value &  vWidth,
const eC_Value &  vHeight 
)
protectedvirtual

Method which will be called by CreateBitmap to instantiate a new Bitmap-Object. This Method needs to be implemented by every derived GfxWrapper. If a GfxWrapper does not support Bitmap-Handling, he may create an CGUIBaseBitmap

See also
Bitmap planes
Parameters
uiNewBitmapIDID of the new BitmapPlane
rkParentObjectreference to the GUIObject which will be the parent of the bitmap
vWidthwidth of the new bitmap
vHeightheight of the new bitmap
Returns
pointer to the new created BitmapObject

Reimplemented from CGfxWrap.

Reimplemented in CGfxWrapOGL, CGfxWrapOGLES1_1, and CGfxWrapOGLES2.

◆ CreateScreen()

void CGfxWrapGL::CreateScreen ( const eC_UInt &  uiWidth,
const eC_UInt &  uiHeight 
)

create screen

Parameters
uiWidth
uiHeight

◆ CreateTexture()

eC_UInt CGfxWrapGL::CreateTexture ( )

Create texture

Returns
texture-id

◆ DeInit()

void CGfxWrapGL::DeInit ( void  )
protected

Method to give the graphic library the opportunity to clean up

◆ DeleteTexture()

void CGfxWrapGL::DeleteTexture ( const eC_UInt &  uiTextureID)

delete texture

Parameters
uiTextureID

◆ DrawRect()

void CGfxWrapGL::DrawRect ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2,
const eC_Bool  bFilled 
)
protected

Draws a rectangle

Parameters
vX1X position of corner 1
vY1Y position of corner 1
vX2X position of corner 2
vY2Y position of corner 2
bFilledWhether to draw a filled rectangle

◆ DrawToBitmap()

virtual eC_Bool CGfxWrapGL::DrawToBitmap ( GUIBitmapPlaneID_t  uiBitmapID)
virtual

Changes the RenderTarget to the BitmapPlane with the given ID. All successive GfxWrap draw commands will be done in the bitmap of this plane instead of within the framebuffer

Parameters
uiBitmapIDID of the BitmapPlane in which will be drawn.
Returns
True if the BitmapPlane with given ID exists, otherwise False

Reimplemented from CGfxWrap.

◆ DrawToScreen()

virtual eC_Bool CGfxWrapGL::DrawToScreen ( )
virtual

Activates the Screen as active RenderTarget again

Returns
True if the changing was successful, otherwise False

Reimplemented from CGfxWrap.

◆ Ellipse()

virtual void CGfxWrapGL::Ellipse ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2,
const eC_Bool &  bFilled 
)
virtual

Draws an ellipse which is complete inside the rectangle described through the rectangle the top left edge at (vX1, vY1) and bottom right edge at (vX2, vY2). The ellipse will be filled out if the last parameter is true

Parameters
vX1X-Coordinate of bounding rectangle's top left corner
vY1Y-Coordinate of bounding rectangle's top left corner
vX2X-Coordinate of bounding rectangle's bottom right corner
vY2Y-Coordinate of bounding rectangle's bottom right corner
bFilledSpecifies whether the ellipse will be drawn outlined (false) or filled (true)

Implements CGfxWrap.

◆ FilledRect()

virtual void CGfxWrapGL::FilledRect ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2 
)
virtual

Draws a filled rectangle with the top left edge at (vX1, vY1) and bottom right edge at (vX2, vY2)

Parameters
vX1X-Coordinate of top left corner
vY1Y-Coordinate of top left corner
vX2X-Coordinate of bottom right corner
vY2Y-Coordinate of bottom right corner

Implements CGfxWrap.

◆ GenerateTexture()

void CGfxWrapGL::GenerateTexture ( const ImageResource_t eImageID)
protected

Generates a texture of matching (power of 2) size for the given image ID and copies the image into it

Parameters
eImageIDImageID for which the texture should be created.

◆ GetImageData()

CGUIImageDataGL * CGfxWrapGL::GetImageData ( const ImageResource_t eImageID)

Gets pointer to an image data object.

Parameters
eImageIDImage data object to be returned.
Returns
Pointer to image data object.

◆ GetImageSize()

virtual eC_UInt CGfxWrapGL::GetImageSize ( const ImageResource_t eID) const
protectedvirtual

Returns the amount of memory taken up by an image.

Parameters
eIDID of the image to be measured.
Returns
Size of the image in byte.

Implements CGfxWrap.

◆ GetImgHeightImpl()

virtual eC_UInt CGfxWrapGL::GetImgHeightImpl ( const ImageResource_t eID) const
protectedvirtual

Gets the height of an image.

Parameters
eIDIdentifier of the image.
Returns
The height of the image in pixels.

Implements CGfxWrap.

◆ GetImgWidthImpl()

virtual eC_UInt CGfxWrapGL::GetImgWidthImpl ( const ImageResource_t eID) const
protectedvirtual

Gets the width of an image.

Parameters
eIDIdentifier of the image.
Returns
The width of the image in pixels.

Implements CGfxWrap.

◆ GetPhysicalScreenHeight()

virtual eC_UInt CGfxWrapGL::GetPhysicalScreenHeight ( )
virtual

Returns the screen height. Will always return the physical screen height with which the GfxWrap was originally initialized. Regardless of whether the virtual screen size has been modified e.g. while drawing into a CGUIBitmapPlane.

Returns
Physical screen height

Implements CGfxWrap.

◆ GetPhysicalScreenWidth()

virtual eC_UInt CGfxWrapGL::GetPhysicalScreenWidth ( )
virtual

Returns the screen width. Will always return the physical screen width with which the GfxWrap was originally initialized. Regardless of whether the virtual screen size has been modified e.g. while drawing into a CGUIBitmapPlane.

Returns
Physical screen width

Implements CGfxWrap.

◆ GetTextureID()

const eC_UInt CGfxWrapGL::GetTextureID ( const ImageResource_t eImageID)

Returns the TextureID and generates the texture if needed

Parameters
eImageIDThe image ID
Returns
The texture ID

◆ GetVBO()

eC_UInt CGfxWrapGL::GetVBO ( ) const
inline

Returns the currently used vertex buffer object.

Returns
Vertex buffer object.

◆ GetVirtualScreenHeight()

virtual eC_UInt CGfxWrapGL::GetVirtualScreenHeight ( )
virtual

Returns the screen height in pixels, may vary if DrawToBitmap is active. It will then return the active BitmapPlane's height instead.

See also
GetPhysicalScreenHeight()
Returns
eC_UInt The screen height

Implements CGfxWrap.

◆ GetVirtualScreenWidth()

virtual eC_UInt CGfxWrapGL::GetVirtualScreenWidth ( )
virtual

Returns the screen width in pixels, may vary if DrawToBitmap is active. It will then return the active BitmapPlane's width instead.

See also
GetPhysicalScreenWidth()
Returns
eC_UInt The screen width

Implements CGfxWrap.

◆ GetZCorrection()

eC_Value CGfxWrapGL::GetZCorrection ( )
protected

Accessing the Z-Correction for current render target. Render targets may be the screen or any BitmapPlane.

Returns
returns the current z-correction for the active render target.

◆ ImageExists()

virtual eC_Bool CGfxWrapGL::ImageExists ( const ImageResource_t  eID) const
virtual

Returns whether the image with the given ID currently is loaded within the Graphics Wrapper. This interface must be implemented by derived graphics wrappers.

Parameters
eIDThe ID to check
Returns
True if the image with the given ID is currently loaded, False otherwise.

Implements CGfxWrap.

◆ IncreaseZCorrection()

void CGfxWrapGL::IncreaseZCorrection ( )
protected

Increases the Z-Correction for the current render target. The render target may be the screen or any BitmapPlane.

◆ Init()

void CGfxWrapGL::Init ( void  )
protected

Method to initialize the graphic library

◆ InitGLProcs()

void CGfxWrapGL::InitGLProcs ( )

Initialize function pointers to gl-functions

◆ InitView()

virtual eC_Bool CGfxWrapGL::InitView ( )
virtual

Helper for initialization

Returns

◆ IsFBOSupported()

eC_Bool CGfxWrapGL::IsFBOSupported ( ) const
inline

Check if FBO is supported

Returns

◆ Line()

virtual void CGfxWrapGL::Line ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2 
)
virtual

Draws a line from (vX1, vY1) to (vX2, vY2)

Parameters
vX1X-Coordinate of starting point
vY1Y-Coordinate of starting point
vX2X-Coordinate of ending point
vY2Y-Coordinate of ending point

Implements CGfxWrap.

◆ LoadImgImpl() [1/2]

virtual void CGfxWrapGL::LoadImgImpl ( const eC_String &  psPath,
const ImageResource_t eID 
)
protectedvirtual

Loads an image. This loads an image from the given path and associates it with an Image-Identifier.

Parameters
psPathComplete path and filename of the image to be loaded.
eIDID by which the image will later be accessible.

Implements CGfxWrap.

◆ LoadImgImpl() [2/2]

virtual void CGfxWrapGL::LoadImgImpl ( void *  pkMemory,
const eC_UInt &  uiWidth,
const eC_UInt &  uiHeight,
const eC_UInt &  eImageType,
const ImageResource_t eID 
)
protectedvirtual

Loads an image file from disk. Internally called by ResourceManager.

Parameters
pkMemorymemory-location
uiWidth
uiHeight
eImageType
eIDimage-id which will be set

Implements CGfxWrap.

◆ ReadTextureData()

virtual void CGfxWrapGL::ReadTextureData ( const eC_UInt &  uiTexID,
const eC_UInt &  uiXPos,
const eC_UInt &  uiYPos,
const eC_UInt &  uiWidth,
const eC_UInt &  uiHeight,
void *  pkData 
)
pure virtual

Read data from texture

Parameters
uiTexID
uiXPos
uiYPos
uiWidth
uiHeight
pkData

Implemented in CGfxWrapOGL, CGfxWrapOGLES1_1, and CGfxWrapOGLES2.

◆ Rect()

virtual void CGfxWrapGL::Rect ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2 
)
virtual

Draws a rectangle with the top left edge at (vX1, vY1) and bottom right edge at (vX2, vY2)

Parameters
vX1X-Coordinate of top left corner
vY1Y-Coordinate of top left corner
vX2X-Coordinate of bottom right corner
vY2Y-Coordinate of bottom right corner

Implements CGfxWrap.

◆ RestoreBackBuffer()

virtual void CGfxWrapGL::RestoreBackBuffer ( const eC_Value  vWidth,
const eC_Value  vHeight 
)
protectedvirtual

Restores the Backbuffer of the display after it has been used for texture rendering Always begins in LOWER LEFT of screen!

Parameters
vWidthof the area to restore.
vHeightof the area to restore.

◆ RestoreWrapperState()

virtual void CGfxWrapGL::RestoreWrapperState ( )
virtual

Restores a previously saved state for the Graphics-Wrapper. Any change in the underlying API will be purged.

Reimplemented from CGfxWrap.

◆ Ring()

virtual void CGfxWrapGL::Ring ( const eC_Value &  vX1,
const eC_Value &  vY1,
const eC_Value &  vX2,
const eC_Value &  vY2,
const eC_Value &  vRingWidth,
const eC_Value &  vStartAngle,
const eC_Value &  vEndAngle,
const eC_Value &  vRotationAngle,
const eC_Bool &  bFilled 
)
virtual

Draws a ring which is completly inside the rectangle described through the rectangle the top left edge at (vAbsX1, vAbsY1) and bottom right edge at (vAbsX2, vAbsY2). The ring will be filled out if the last parameter is true 0-degrees is at the mathematically correct position on the unit-circle angles are increasing in counter-clockwise direction. rotation-angle is increasing in clockwise direction, i.e. rotating by 90 degrees will result in the 0-degress being at the bottom-center

Parameters
vX1X-coordinate of bounding rectangle's top left corner
vY1Y-Coordinate of bounding rectangle's top left corner
vX2X-coordinate of bounding rectangle's bottom right corner
vY2Y-Coordinate of bounding rectangle's bottom right corner
vRingWidthwidth of the ring
vStartAnglestart-angle
vEndAngleend-angle
vRotationAnglerotation-angle
bFilledSpecifies whether the ring will be drawn outlined (false) or filled (true)

Implements CGfxWrap.

◆ Set2DView() [1/2]

void CGfxWrapGL::Set2DView ( )

Sets the default 2D view used by the gfx wrapper for 2D drawing operations. This method uses the dimensions returned by GetVirtualScreenWidth() and GetVirtualScreenHeight().

◆ Set2DView() [2/2]

void CGfxWrapGL::Set2DView ( const eC_UInt  uiWidth,
const eC_UInt  uiHeight 
)

Sets the default 2D view used by the gfx wrapper for 2D drawing operations.

Parameters
uiWidthWidth of Viewport
uiHeightHeight of Viewport

◆ SetClientStates()

void CGfxWrapGL::SetClientStates ( const eC_Bool &  bVertexEnabled,
const eC_Bool &  bTextureCoordsEnabled 
)

set client-sates

Parameters
bVertexEnabled
bTextureCoordsEnabled

◆ SetCliprect() [1/2]

virtual void CGfxWrapGL::SetCliprect ( const CGUIRect rkNewClipRect)
virtual

Sets a clipping rectangle. All drawing operations will be limited to the region within the clipping rectangle. This is very useful for advanded features such as soft-scrolling. Note that the clipping rectangle is not allowed to exceed the invalidated rectangle, since this would lead to visual artifacts.

Parameters
rkNewClipRectA normalised rectangle that includes all pixels that could be drawn by the functions of the graphics wrapper. The rectangle includes the border. All pixels outside will be left untouched.

Implements CGfxWrap.

◆ SetCliprect() [2/2]

void CGfxWrapGL::SetCliprect ( const CGUIRect rkNewClipRect,
const eC_Bool &  bRotate 
)
protected

This SetCliprect version is used for an anti-clockwise rotation of the GUI. E.g. in GfxWrapEAGL implementation, if the iOS device is rotated.

Parameters
rkNewClipRectA normalised rectangle that includes all pixels that could be drawn by the functions of the graphics wrapper. The rectangle includes the border. All pixels outside will be left untouched.
bRotateSet this true to set glScissor rotated anti-clockwise.

◆ SetForegroundColorImpl()

virtual void CGfxWrapGL::SetForegroundColorImpl ( const eC_UByte &  ubRed,
const eC_UByte &  ubGreen,
const eC_UByte &  ubBlue,
const eC_UByte &  ubAlpha = 255 
)
virtual

Sets the foreground color via r, g and b values and an alpha value

Parameters
ubRedRed intensity within a range of 0 - 255
ubGreenGreen intensity within a range of 0 - 255
ubBlueBlue intensity within a range of 0 - 255
ubAlphaalpha value

Implements CGfxWrap.

◆ SetLineWidth()

virtual eC_Value CGfxWrapGL::SetLineWidth ( const eC_Value &  vWidth)
virtual

Sets the line width in pixels

Parameters
vWidthwidth of lines
Returns
The previous line width.

Reimplemented from CGfxWrap.

◆ SetMixTextureWithColor()

void CGfxWrapGL::SetMixTextureWithColor ( const eC_Bool &  bMixWithColor)

Set color-mixing

Parameters
bMixWithColor

◆ SetNOFImagesImpl()

eC_Bool CGfxWrapGL::SetNOFImagesImpl ( const eC_UInt  uiNOFImages)
protectedvirtual

Sets the total number of images. This is called internally by the ResourceManager when dynamically allocated image resources require the total number of images to be raised. Derived classes will have to override this method and resize their internal image-storage structures according to the new number of images which will have to be stored.

Parameters
uiNOFImagesThe number of images
Returns
True if internal storage has been successfully adapted to support the requested number of images. False otherwise.

Reimplemented from CGfxWrap.

◆ SetPerspectiveProjection()

void CGfxWrapGL::SetPerspectiveProjection ( const eC_Value &  vFovy,
const eC_Value &  vAspect,
const eC_Value &  vNear,
const eC_Value &  vFar 
)

Applies a perspective projection matrix to current GL_PROJECTION. Old projection matrix will be overwritten. Projection matrices are used to project 3D space coordinates to a 2D screen.

OpenGL and OpenGL-ES provides projection matrix creation for parallel projection mode (glOrtho), but for perspective projection invokation of the GLU library is needed. To avoid this dependency, this implementation provides this.

The matrix is calculated the following way:

(1/w) (0) ( 0 ) ( 0 ) M = (0) (1/h) ( 0 ) ( 0 ) (0) (0) (-(near+far)/d) (-2*near*far/d) (0) (0) ( -1 ) ( 0 )

where:

h = tan(fovy/2) w = aspectRatio * h d = far - near

Parameters
vFovyField of view in the vertical direction in DEG [0; 90].
vAspectAspect ratio of the viewport, which is width divided by height.
vNearDistance to front clipping plane.
vFarDistance to back clipping plane.

◆ SetScissor()

void CGfxWrapGL::SetScissor ( const eC_Bool &  bEnabled,
const eC_Int &  iX = 0,
const eC_Int &  iY = 0,
const eC_Int &  iWidth = 0,
const eC_Int &  iHeight = 0 
)
protected

Set scissor-area

Parameters
bEnabled
iX
iY
iWidth
iHeight

◆ SetScreenSize()

virtual void CGfxWrapGL::SetScreenSize ( const eC_UInt &  uiWidth,
const eC_UInt &  uiHeight 
)
virtual

Sets the new physical screen size.

Parameters
uiWidthNew screen width.
uiHeightNew screen height.

Reimplemented from CGfxWrap.

◆ SetTexturingActive()

void CGfxWrapGL::SetTexturingActive ( const eC_Bool &  bTexturingActive)

Set texturing active

Parameters
bTexturingActive

◆ StoreWrapperState()

virtual void CGfxWrapGL::StoreWrapperState ( )
virtual

Saves the current active state of the Graphics-Wrapper. This might be used to manipulate the underlying API (e.g. OpenGL) without interfering with Guiliani-internal state.

Reimplemented from CGfxWrap.

◆ UnloadImg()

virtual void CGfxWrapGL::UnloadImg ( const ImageResource_t eID)
protectedvirtual

Unloads an image. Unloads the image associated with the supplied Image-identifier and frees the memory formerly occupied by this image.

Parameters
eIDIdentifier of the image to be unloaded.

Reimplemented from CGfxWrap.

Friends And Related Function Documentation

◆ CGUIBitmapPlane_GL

friend class CGUIBitmapPlane_GL
friend

Member Data Documentation

◆ cvPixelCenterOffset

const eC_Value CGfxWrapGL::cvPixelCenterOffset
static

Offset to get from OpenGL's coordinates to the pixel center. Note: OpenGL Pixel Coordinates do not refer to the "center" of the pixel, but to the edges between them. This means 0/0 would not point to the center of the top/left pixel, but instead to the top/left corner of this pixel Therefore, we move the coordinates to the center of the pixel by adding 0.375 pixels because of better compatibility to more graphic cards.


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