diff options
Diffstat (limited to 'src/corelib/render/software/Agg2D.pas')
-rw-r--r-- | src/corelib/render/software/Agg2D.pas | 79 |
1 files changed, 76 insertions, 3 deletions
diff --git a/src/corelib/render/software/Agg2D.pas b/src/corelib/render/software/Agg2D.pas index 13aa7176..6a587b7e 100644 --- a/src/corelib/render/software/Agg2D.pas +++ b/src/corelib/render/software/Agg2D.pas @@ -70,11 +70,22 @@ uses {$ENDIF } Math , - {$IFDEF WINDOWS} - Windows , - {$ENDIF} Classes, SysUtils, + + // This allows for platform specific uses clauses + {$define uses_interface} + {$undef agg_platform_interface} + {$undef uses_implementation} + {$undef agg_platform_implementation} + {$IFDEF WINDOWS} + {$I agg_platform_gdi.inc} + {$ENDIF} + {$IFDEF UNIX} + {$I agg_platform_x11.inc} + {$ENDIF} + + fpg_base, fpg_main; { GLOBAL VARIABLES & CONSTANTS } @@ -326,6 +337,45 @@ type m_ifSpline16 : image_filter_spline16; m_ifSpline36 : image_filter_spline36; m_ifBlackman144 : image_filter_blackman144; + protected + + {$undef uses_interface} + {$define agg_platform_interface} + {$undef uses_implementation} + {$undef agg_platform_implementation} + {$IFDEF WINDOWS} + {$I agg_platform_gdi.inc} + {$ENDIF} + {$IFDEF UNIX} + {$I agg_platform_x11.inc} + {$ENDIF} + + // ------ TfpgCanvasBase implementation requirements --------- + procedure DoSetFontRes(fntres: TfpgFontResourceBase); override; + procedure DoSetTextColor(cl: TfpgColor); override; + procedure DoSetColor(cl: TfpgColor); override; + procedure DoSetLineStyle(awidth: integer; astyle: TfpgLineStyle); override; + procedure DoGetWinRect(out r: TfpgRect); override; + procedure DoFillRectangle(x, y, w, h: TfpgCoord); override; + procedure DoXORFillRectangle(col: TfpgColor; x, y, w, h: TfpgCoord); override; + procedure DoFillTriangle(x1, y1, x2, y2, x3, y3: TfpgCoord); override; + procedure DoDrawRectangle(x, y, w, h: TfpgCoord); override; + procedure DoDrawLine(x1, y1, x2, y2: TfpgCoord); override; + procedure DoDrawImagePart(x, y: TfpgCoord; img: TfpgImageBase; xi, yi, w, h: integer); override; + procedure DoDrawString(x, y: TfpgCoord; const txt: string); override; + procedure DoSetClipRect(const ARect: TfpgRect); override; + function DoGetClipRect: TfpgRect; override; + procedure DoAddClipRect(const ARect: TfpgRect); override; + procedure DoClearClipRect; override; + procedure DoBeginDraw(awin: TfpgWindowBase; buffered: boolean); override; + procedure DoPutBufferToScreen(x, y, w, h: TfpgCoord); override; + procedure DoEndDraw; override; + function GetPixel(X, Y: integer): TfpgColor; override; + procedure SetPixel(X, Y: integer; const AValue: TfpgColor); override; + procedure DoDrawArc(x, y, w, h: TfpgCoord; a1, a2: Extended); override; + procedure DoFillArc(x, y, w, h: TfpgCoord; a1, a2: Extended); override; + procedure DoDrawPolygon(Points: PPoint; NumPts: Integer; Winding: boolean = False); override; + // -------- TfpgCanvasBase end --------------- public constructor Create(awin: TfpgWindowBase); override; @@ -581,6 +631,17 @@ type IMPLEMENTATION uses + // This allows for platform specific uses clauses + {$undef uses_interface} + {$undef agg_platform_interface} + {$define uses_implementation} + {$undef agg_platform_implementation} + {$IFDEF WINDOWS} + {$I agg_platform_gdi.inc} + {$ENDIF} + {$IFDEF UNIX} + {$I agg_platform_x11.inc} + {$ENDIF} fpg_stringutils; { LOCAL VARIABLES & CONSTANTS } @@ -1086,6 +1147,18 @@ begin end; +{$undef uses_interface} +{$undef agg_platform_interface} +{$undef uses_implementation} +{$define agg_platform_implementation} +{$IFDEF WINDOWS} + {$I agg_platform_gdi.inc} +{$ENDIF} +{$IFDEF UNIX} + {$I agg_platform_x11.inc} +{$ENDIF} + + { CREATE } constructor TAgg2D.Create(awin: TfpgWindowBase); begin |