| 
| enum class   | BlendType {  
  kNone = 0
, kNormal = 1
, kLayer = 2
, kMultiply = 3
,  
  kScreen = 4
, kLighten = 5
, kDarken = 6
, kDifference = 7
,  
  kAdd = 8
, kSubtract = 9
, kInvert = 10
, kAlpha = 11
,  
  kErase = 12
, kOverlay = 13
, kHardLight = 14
 
 } | 
|   | 
| enum class   | ResizeImageType { kRGBToRGB
, kRGBAToRGBA
, kRGBToRGBA
, kGray
 } | 
|   | 
| enum class   | VertexFormat {  
  kNone = 0
, kXY16i = 1 << 1
, kXY32f = 1 << 2
, kXY16iC32 = 1 << 3
,  
  kXY16iCF32 = 1 << 4
 
 } | 
|   | 
| enum class   | IndexFormat { kNone = 0
, k16 = 1
, k32 = 2
 } | 
|   | 
| enum class   | RenderCapBits {  
  kNone = 0
, kCacheDataUse = 1 << 0
, kIndex16 = 1 << 2
, kIndex32 = 1 << 3
,  
  kRenderStats = 1 << 4
, kRenderTargets = 1 << 5
, kRenderTargetPrePass = 1 << 6
, kRenderTargetNonPow2 = 1 << 7
,  
  kFillGouraud = 1 << 8
, kFillGouraudTex = 1 << 9
, kCxformAdd = 1 << 12
, kNestedMasks = 1 << 13
,  
  kTexNonPower2 = 1 << 14
, kTexNonPower2Wrap = 1 << 15
, kCanLoseData = 1 << 16
, kKeepVertexData = 1 << 17
,  
  kNoTexOverwrite = 1 << 18
, kTexNonPower2Mip = 1 << 19
, kThreadedTextureCreation = 1 << 20
, kRenderTargetMip = 1 << 21
,  
  kFilter_Blurs = 1 << 22
, kFilter_ColorMatrix = 1 << 23
 
 } | 
|   | 
| enum class   | StereoDisplay { kStereoCenter
, kStereoLeft
, kStereoRight
 } | 
|   | 
| enum class   | CachedDataType { kVertex = 1
, kIndex = 2
, kBitmapList = 3
 } | 
|   | 
| enum class   | UserDataPropertyFlag { kNone
, kHasString
, kHasFloat
, kHasMatrix
 } | 
|   | 
| enum class   | BitmapWrapMode { kRepeat
, kClamp
 } | 
|   | 
| enum class   | BitmapSampleMode { kPoint
, kLinear
 } | 
|   | 
| enum class   | GouraudFillType {  
  kColor
, k1Texture
, k1TextureColor
, k2Texture
,  
  k2TextureColor
, k3Texture
 
 } | 
|   | 
| enum class   | SubmitMaskMode { kClear
, kIncrement
, kDecrement
 } | 
|   | 
| enum class   | FilterModes {  
  kBlur = 1 << 0
, kShadow = 1 << 1
, kHighlight = 1 << 2
, Filter_Knockout = 1 << 8
,  
  Filter_Inner = 1 << 9
, Filter_HideObject = 1 << 10
, Filter_UserModes = 0xFFFF
, Filter_SkipLastPass = 1 << 16
,  
  Filter_LastPassOnly = 1 << 17
 
 } | 
|   | 
| enum class   | FilterSupport { kNone = 0
, kOk = 1 << 0
, kMultipass = 1 << 1
, kSlow = 1 << 2
 } | 
|   | 
| using  | Handle = void * | 
|   | 
| using  | Matrix = GMatrix2D | 
|   | 
| using  | Point = GPointF | 
|   | 
| using  | Rect = GRectF | 
|   | 
| enum   |  | 
|   | 
 | 
|   | ~GRenderer () override | 
|   | 
| virtual bool  | GetRenderCaps (RenderCaps *a_caps)=0 | 
|   | 
| virtual GTexture *  | CreateTexture ()=0 | 
|   | 
| virtual GTexture *  | CreateTextureYUV ()=0 | 
|   | 
| virtual void  | BeginFrame () | 
|   | 
| virtual void  | EndFrame () | 
|   | 
| virtual GRenderTarget *  | CreateRenderTarget ()=0 | 
|   | 
| virtual void  | SetDisplayRenderTarget (GRenderTarget *a_renderTarget, bool a_setstate=true)=0 | 
|   | 
| virtual void  | PushRenderTarget (const GRectF &a_frameRect, GRenderTarget *a_renderTarget)=0 | 
|   | 
| virtual void  | PopRenderTarget ()=0 | 
|   | 
| virtual GTexture *  | PushTempRenderTarget (const GRectF &a_frameRect, std::uint32_t a_targetW, std::uint32_t a_targetH)=0 | 
|   | 
| virtual void  | ReleaseTempRenderTargets (std::uint32_t a_keepArea) | 
|   | 
| virtual void  | BeginDisplay (GColor a_backgroundColor, const GViewport &a_viewport, float a_x0, float a_x1, float a_y0, float a_y1)=0 | 
|   | 
| virtual void  | EndDisplay ()=0 | 
|   | 
| virtual void  | SetMatrix (const Matrix &a_matrix)=0 | 
|   | 
| virtual void  | SetUserMatrix (const Matrix &a_matrix)=0 | 
|   | 
| virtual void  | SetCxform (const Cxform &a_cxForm)=0 | 
|   | 
| virtual void  | PushBlendMode (BlendType a_mode)=0 | 
|   | 
| virtual void  | PopBlendMode ()=0 | 
|   | 
| virtual bool  | PushUserData (UserData *a_data) | 
|   | 
| virtual void  | PopUserData () | 
|   | 
| virtual void  | SetPerspective3D (const GMatrix3D &a_projMatIn)=0 | 
|   | 
| virtual void  | SetView3D (const GMatrix3D &a_viewMatIn)=0 | 
|   | 
| virtual void  | SetWorld3D (const GMatrix3D *a_worldMatIn)=0 | 
|   | 
| virtual void  | MakeViewAndPersp3D (const GRectF &a_visFrameRectInTwips, GMatrix3D &a_matView, GMatrix3D &a_matPersp, float a_perspFOV, bool a_InvertY=false) | 
|   | 
| virtual void  | SetStereoParams (StereoParams a_params) | 
|   | 
| virtual void  | SetStereoDisplay (StereoDisplay a_display, bool a_setstate=false) | 
|   | 
| virtual void  | SetVertexData (const void *a_vertices, std::int32_t a_numVertices, VertexFormat a_vtxFmt, CacheProvider *a_cache=0)=0 | 
|   | 
| virtual void  | SetIndexData (const void *a_indices, std::int32_t a_numIndices, IndexFormat a_idxFmt, CacheProvider *a_cache=0)=0 | 
|   | 
| virtual void  | ReleaseCachedData (CachedData *a_data, CachedDataType a_type)=0 | 
|   | 
| virtual void  | DrawIndexedTriList (std::int32_t a_baseVertexIndex, std::int32_t a_minVertexIndex, std::int32_t a_numVertices, std::int32_t a_startIndex, std::int32_t a_triangleCount)=0 | 
|   | 
| virtual void  | DrawLineStrip (std::int32_t a_baseVertexIndex, std::int32_t a_lineCount)=0 | 
|   | 
| virtual void  | LineStyleDisable ()=0 | 
|   | 
| virtual void  | LineStyleColor (GColor a_color)=0 | 
|   | 
| virtual void  | FillStyleDisable ()=0 | 
|   | 
| virtual void  | FillStyleColor (GColor a_color)=0 | 
|   | 
| virtual void  | FillStyleBitmap (const FillTexture *a_fill)=0 | 
|   | 
| virtual void  | FillStyleGouraud (GouraudFillType a_fillType, const FillTexture *a_texture0=0, const FillTexture *a_texture1=0, const FillTexture *a_texture2=0)=0 | 
|   | 
| virtual void  | DrawBitmaps (BitmapDesc *a_bitmapList, std::int32_t a_listSize, std::int32_t a_startIndex, std::int32_t a_count, const GTexture *a_texture, const Matrix &a_matrix, CacheProvider *a_cache=0)=0 | 
|   | 
| virtual void  | DrawDistanceFieldBitmaps (BitmapDesc *a_bitmapList, std::int32_t a_listSize, std::int32_t a_startIndex, std::int32_t a_count, const GTexture *a_texture, const Matrix &a_matrix, const DistanceFieldParams &a_params, CacheProvider *a_cache=0) | 
|   | 
| virtual void  | BeginSubmitMask (SubmitMaskMode a_maskMode=SubmitMaskMode::kClear)=0 | 
|   | 
| virtual void  | EndSubmitMask ()=0 | 
|   | 
| virtual void  | DisableMask ()=0 | 
|   | 
| virtual std::uint32_t  | CheckFilterSupport (const BlurFilterParams &a_params)=0 | 
|   | 
| virtual void  | DrawBlurRect (GTexture *a_srcIn, const GRectF &a_inSrcRect, const GRectF &a_inDstRect, const BlurFilterParams &a_params)=0 | 
|   | 
| virtual void  | DrawColorMatrixRect (GTexture *a_srcIn, const GRectF &a_inSrcRect, const GRectF &a_dstRect, const float *a_matrix)=0 | 
|   | 
| virtual void  | GetRenderStats (Stats *a_stats, bool a_resetStats=0)=0 | 
|   | 
| virtual void  | GetStats (GStatBag *a_bag, bool a_reset=true)=0 | 
|   | 
| virtual void  | ReleaseResources ()=0 | 
|   | 
| virtual bool  | AddEventHandler (GRendererEventHandler *a_handler) | 
|   | 
| virtual void  | RemoveEventHandler (GRendererEventHandler *a_handler) | 
|   | 
| void  | FillStyleBitmap (GTexture *a_texture, const Matrix &a_matrix, BitmapWrapMode a_wrapMode, BitmapSampleMode a_sampleMode) | 
|   | 
|   | GFC_MEMORY_REDEFINE_NEW_IMPL (GRefCountImpl, GFC_REFCOUNTALLOC_CHECK_DELETE, StatType) | 
|   | 
|   | ~GRefCountImpl () override=default | 
|   | 
| void  | AddRef () | 
|   | 
| void  | Release () | 
|   |