Unit BGRAGraphics

Description

Imports type from Graphics, if available, or defines equivalent types.

Uses

Overview

Classes, Interfaces, Objects and Records

Name Description
Class TBitmapHelper  
Class TBrush A class describing a brush
Class TCanvasHelper  
Class TFontHelper  
Class TGraphic A class containing any element that can be drawn within rectangular bounds
Class TPen  
Packed Record TTextStyle Styles to describe how a text is drawn in a rectangle

Functions and Procedures

operator :=(AClassesPoint: TClassesPoint): TPoint;
operator :=(AMSERect: TMSERect): TRect;
operator :=(ARect: TRect): TMSERect;
function clRgbBtnHighlight: TColor;
function clRgbBtnShadow: TColor;
function ColorToRGB(c: TColor): TColor;
function FPColorToTColor(const FPColor: TFPColor): TColor;
function GetScreenDPIX: integer;
function GetScreenDPIY: integer;
function MathRound(AValue: ValReal): Int64; inline;
function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer;
procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte);
function RGBToColor(R, G, B: Byte): TColor; inline;
function TColorToFPColor(const c: TColor): TFPColor;

Types

PColor = ˆTColor;
TAntialiasingMode = (...);
TBitmap = msebitmap.tbitmap;
TBrushStyle = (...);
TCanvas = msegraphics.tcanvas;
TColor = msegraphutils.colorty;
TFillMode = (...);
TFillStyle = (...);
TFont = msegraphics.tfont;
TFontQuality = (...);
TFontStyle = msegraphutils.fontstylety;
TFontStyles = msegraphutils.fontstylesty;
TGradientDirection = (...);
TPenEndCap = msegraphics.capstylety;
TPenJoinStyle = msegraphics.joinstylety;
TPenMode = msegraphics.rasteropty;
TPenStyle = msegraphics.dashesstringty;
TRawImage = TBitmap;
TTextLayout = (...);
TTransparentMode = (...);

Constants

clBlack = msegraphutils.cl_black;
clDefault = msegraphutils.cl_default;
clNone = msegraphutils.cl_none;
clWhite = msegraphutils.cl_white;
fsBold = msegraphutils.fs_bold;
fsItalic = msegraphutils.fs_italic;
fsStrikeOut = msegraphutils.fs_strikeout;
fsUnderline = msegraphutils.fs_underline;
pecFlat = msegraphics.cs_butt;
pecRound = msegraphics.cs_round;
pecSquare = msegraphics.cs_projecting;
pjsBevel = msegraphics.js_bevel;
pjsMiter = msegraphics.js_miter;
pjsRound = msegraphics.js_round;
pmBlack = msegraphics.rop_clear;
pmCopy = msegraphics.rop_copy;
pmMask = msegraphics.rop_and;
pmMaskNotPen = msegraphics.rop_andnot;
pmMaskPenNot = msegraphics.rop_notand;
pmMerge = msegraphics.rop_or;
pmMergeNotPen = msegraphics.rop_ornot;
pmMergePenNot = msegraphics.rop_notor;
pmNop = msegraphics.rop_nop;
pmNot = msegraphics.rop_not;
pmNotCopy = msegraphics.rop_notcopy;
pmNotMask = msegraphics.rop_nand;
pmNotMerge = msegraphics.rop_nor;
pmNotXor = msegraphics.rop_notxor;
pmWhite = msegraphics.rop_set;
pmXor = msegraphics.rop_xor;
psClear = TPenStyle(#0#0);
psDash = TPenStyle(#3#1);
psDashDot = TPenStyle(#3#1#1#1);
psDashDotDot = TPenStyle(#3#1#1#1#1#1);
psDot = TPenStyle(#1#1);
psPattern = TPenStyle(#0#0#0#0);
psSolid = TPenStyle('');

Description

Functions and Procedures

operator :=(AClassesPoint: TClassesPoint): TPoint;

This item has no description.

operator :=(AMSERect: TMSERect): TRect;

This item has no description.

operator :=(ARect: TRect): TMSERect;

This item has no description.

function clRgbBtnHighlight: TColor;

This item has no description.

function clRgbBtnShadow: TColor;

This item has no description.

function ColorToRGB(c: TColor): TColor;

This item has no description.

function FPColorToTColor(const FPColor: TFPColor): TColor;

Converts a TFPColor into a TColor value. Does not work on system color

function GetScreenDPIX: integer;

This item has no description.

function GetScreenDPIY: integer;

This item has no description.

function MathRound(AValue: ValReal): Int64; inline;

Round the number using math convention

function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer;

Multiply and divide the number allowing big intermediate number and rounding the result

procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte);

Extracts the RGB values of a TColor. Does not work on system color

function RGBToColor(R, G, B: Byte): TColor; inline;

Makes a TColor from the RGB values

function TColorToFPColor(const c: TColor): TFPColor;

Converts a TColor into a TFPColor value. Does not work on system color

Types

PColor = ˆTColor;

Pointer to a TColor value.

TColor contains a color stored as RGB. The red/green/blue values range from 0 to 255. The formula to get the color value is:

color = red + (green shl 8) + (blue shl 16)

except with fpGUI where it is:

color = (red shl 16) + (green shl 8) + blue

TAntialiasingMode = (...);

Antialiasing mode for a Canvas

Values
  • amDontCare: It does not matter if there is antialiasing or not
  • amOn: Antialiasing is required (BGRACanvas provide it)
  • amOff: Antialiasing is disabled
TBitmap = msebitmap.tbitmap;

This item has no description.

TBrushStyle = (...);

This item has no description.

Values
  • bsSolid
  • bsClear
  • bsHorizontal
  • bsVertical
  • bsFDiagonal
  • bsBDiagonal
  • bsCross
  • bsDiagCross
  • bsImage
  • bsPattern
TCanvas = msegraphics.tcanvas;

This item has no description.

TColor = msegraphutils.colorty;

SPDX-License-Identifier: LGPL-3.0-linking-exception

TFillMode = (...);

How to handle polygons that intersect with themselves and overlapping polygons

Values
  • fmAlternate: Each time a boundary is found, it enters or exit the filling zone
  • fmWinding: Adds or subtract 1 depending on the order of the points of the polygons (clockwise or counter clockwise) and fill when the result is non-zero. So, to draw a hole, you must specify the points of the hole in the opposite order
TFillStyle = (...);

Option for floodfill (used in BGRACanvas)

Values
  • fsSurface: Fill up to the color (it fills all except the specified color)
  • fsBorder: Fill the specified color (it fills only connected pixels of this color)
TFont = msegraphics.tfont;

This item has no description.

TFontQuality = (...);

This item has no description.

Values
  • fqDefault
  • fqNonAntialiased
  • fqAntialiased
  • fqCleartype
TFontStyle = msegraphutils.fontstylety;

This item has no description.

TFontStyles = msegraphutils.fontstylesty;

This item has no description.

TGradientDirection = (...);

Direction of change in a gradient

Values
  • gdVertical: Color changes vertically
  • gdHorizontal: Color changes horizontally
TPenEndCap = msegraphics.capstylety;

How to draw the end of line

TPenJoinStyle = msegraphics.joinstylety;

How to join segments. This makes sense only for geometric pens (that have a certain width)

TPenMode = msegraphics.rasteropty;

This item has no description.

TPenStyle = msegraphics.dashesstringty;

Style to use for the pen. The unit for the pattern is the width of the line

TRawImage = TBitmap;

This item has no description.

TTextLayout = (...);

Vertical position of a text

Values
  • tlTop
  • tlCenter
  • tlBottom
TTransparentMode = (...);

This item has no description.

Values
  • tmAuto
  • tmFixed

Constants

clBlack = msegraphutils.cl_black;

This item has no description.

clDefault = msegraphutils.cl_default;

This item has no description.

clNone = msegraphutils.cl_none;

This item has no description.

clWhite = msegraphutils.cl_white;

This item has no description.

fsBold = msegraphutils.fs_bold;

This item has no description.

fsItalic = msegraphutils.fs_italic;

This item has no description.

fsStrikeOut = msegraphutils.fs_strikeout;

This item has no description.

fsUnderline = msegraphutils.fs_underline;

This item has no description.

pecFlat = msegraphics.cs_butt;

The line ends exactly at the end point

pecRound = msegraphics.cs_round;

Draw a half-disk at the end of the line. The diameter of the disk is equal to the pen width.

pecSquare = msegraphics.cs_projecting;

Draw a half-square. The size of the square is equal to the pen width. This is visually equivalent to extend the line of half the pen width

pjsBevel = msegraphics.js_bevel;

Segments are joind by filling the gap with an intermediary segment

pjsMiter = msegraphics.js_miter;

Segments are joined by extending them up to their intersection. There is a miter limit so that if the intersection is too far, an intermediary segment is used

pjsRound = msegraphics.js_round;

Segments are joined by filling the gap with an arc

pmBlack = msegraphics.rop_clear;

This item has no description.

pmCopy = msegraphics.rop_copy;

This item has no description.

pmMask = msegraphics.rop_and;

This item has no description.

pmMaskNotPen = msegraphics.rop_andnot;

This item has no description.

pmMaskPenNot = msegraphics.rop_notand;

This item has no description.

pmMerge = msegraphics.rop_or;

This item has no description.

pmMergeNotPen = msegraphics.rop_ornot;

This item has no description.

pmMergePenNot = msegraphics.rop_notor;

This item has no description.

pmNop = msegraphics.rop_nop;

This item has no description.

pmNot = msegraphics.rop_not;

This item has no description.

pmNotCopy = msegraphics.rop_notcopy;

This item has no description.

pmNotMask = msegraphics.rop_nand;

This item has no description.

pmNotMerge = msegraphics.rop_nor;

This item has no description.

pmNotXor = msegraphics.rop_notxor;

This item has no description.

pmWhite = msegraphics.rop_set;

This item has no description.

pmXor = msegraphics.rop_xor;

This item has no description.

psClear = TPenStyle(#0#0);

Pen is not drawn

psDash = TPenStyle(#3#1);

Pen is dashed. The dash have a length of 3 unit and the gaps of 1 unit

psDashDot = TPenStyle(#3#1#1#1);

Pattern is a dash of length 3 followed by a dot of length 1, separated by a gap of length 1

psDashDotDot = TPenStyle(#3#1#1#1#1#1);

Dash of length 3, and two dots of length 1

psDot = TPenStyle(#1#1);

Pen is dotted. The dots have a length of 1 unit and the gaps of 1 unit

psPattern = TPenStyle(#0#0#0#0);

Custom pattern used

psSolid = TPenStyle('');

Pen is continuous