CRM64Pro GDK v0.18.0
A free cross-platform game development kit built on top of SDL 3.0
Loading...
Searching...
No Matches

Description

GFX module providing generic graphics primitives and utilities [v26.05.0].

Overview

The GFX module provides a collection of generic graphics methods for drawing primitives and performing color conversions. Drawing methods are optimized for real-time effects when rendering to screens, though rendering to images has different performance characteristics.

Key features

  • Pixel operations: Direct pixel access on images and screens
  • Line primitives: Horizontal, vertical and arbitrary line drawing
  • Shape primitives: Rectangles, round rectangles, circles, ellipses and polygons
  • Fill modes: Outlined and filled variants for all shapes
  • Color conversion: Multiple color space transformations

Pixel operations

Get pixelRead individual pixel color from an image or screen
Set pixelWrite individual pixel color to an image or screen

Drawing primitives

LinesHorizontal line, vertical line and arbitrary line
RectangleOutlined and filled rectangle
Round rectangleOutlined and filled rectangle with rounded corners
CircleOutlined and filled circle
EllipseOutlined and filled ellipse
PolygonOutlined and filled polygon with arbitrary vertices

Color conversions

RGB ↔ HSVRed-Green-Blue to Hue-Saturation-Value
RGB ↔ YUVRed-Green-Blue to Luminance-Chrominance
RGB ↔ YCCRed-Green-Blue to Luminance-Chroma

Performance considerations

Screen targetFast enough for real-time effects
Image targetSlower performance; not intended for real-time effects. Occasional use is acceptable, but heavy usage will impact performance

Best practices

  • Prefer rendering to screens over images for real-time drawing effects
  • Use horizontal and vertical line methods when applicable, they are faster than arbitrary lines
  • Use filled primitives sparingly on images as they are more expensive than outlined versions
  • Leverage color conversions for dynamic color manipulation effects (e.g., HSV for hue shifting)
  • Pre-render complex shapes to images during loading rather than drawing them every frame
  • Access the module exclusively through Main::gfx()
Note
The GFX module is a singleton, automatically created once Main is instantiated. You can get a reference to this module using Main::gfx() method.
The GFX module is automatically released when Main::terminate() is called. At this time, any resource still loaded will be released, avoiding resource leaks.

Classes

class  CRM64Pro::GFX
 GFX class. More...

Functions

bool CRM64Pro::GFX::info (Sint32 iMode=0) override
 Request GFX module information.
bool CRM64Pro::GFX::setSurfacePixel (float fX, float fY, Uint32 iColor, SDL_Surface *pSurface)
 Draw a pixel in a surface.
Uint32 CRM64Pro::GFX::getSurfacePixel (float fX, float fY, SDL_Surface *pSurface) const
 Get a pixel color from a surface.
bool CRM64Pro::GFX::setPixel (float fX, float fY, Uint32 iColor, Sint32 idRes=0)
 Draw a pixel.
bool CRM64Pro::GFX::setPixel (float fX, float fY, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a pixel.
Uint32 CRM64Pro::GFX::getPixel (float fX, float fY, Sint32 idRes=0) const
 Get a pixel color.
bool CRM64Pro::GFX::lineH (float fX1, float fX2, float fY, Uint32 iColor, Sint32 idRes=0)
 Draw a horizontal line.
bool CRM64Pro::GFX::lineH (float fX1, float fX2, float fY, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a horizontal line.
bool CRM64Pro::GFX::lineV (float fX, float fY1, float fY2, Uint32 iColor, Sint32 idRes=0)
 Draw a vertical line.
bool CRM64Pro::GFX::lineV (float fX, float fY1, float fY2, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a vertical line.
bool CRM64Pro::GFX::line (float fX1, float fY1, float fX2, float fY2, Uint32 iColor, Sint32 idRes=0)
 Draw a line.
bool CRM64Pro::GFX::line (float fX1, float fY1, float fX2, float fY2, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a line.
bool CRM64Pro::GFX::rect (float fX1, float fY1, float fX2, float fY2, Uint32 iColor, Sint32 idRes=0)
 Draw an outlined rectangle.
bool CRM64Pro::GFX::rect (float fX1, float fY1, float fX2, float fY2, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw an outlined rectangle.
bool CRM64Pro::GFX::rectFilled (float fX1, float fY1, float fX2, float fY2, Uint32 iColor, Sint32 idRes=0)
 Draw a filled rectangle.
bool CRM64Pro::GFX::rectFilled (float fX1, float fY1, float fX2, float fY2, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a filled rectangle.
bool CRM64Pro::GFX::rectRound (float fX1, float fY1, float fX2, float fY2, float fRad, Uint32 iColor, Sint32 idRes=0)
 Draw a round outlined rectangle.
bool CRM64Pro::GFX::rectRound (float fX1, float fY1, float fX2, float fY2, float fRad, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a round outlined rectangle.
bool CRM64Pro::GFX::rectFilledRound (float fX1, float fY1, float fX2, float fY2, float fRad, Uint32 iColor, Sint32 idRes=0)
 Draw a round filled rectangle.
bool CRM64Pro::GFX::rectFilledRound (float fX1, float fY1, float fX2, float fY2, float fRad, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a round filled rectangle.
bool CRM64Pro::GFX::arc (float fX, float fY, float fRad, float fStart, float fEnd, Uint32 iColor, Sint32 idRes=0)
 Draw an arc.
bool CRM64Pro::GFX::arc (float fX, float fY, float fRad, float fStart, float fEnd, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw an arc.
bool CRM64Pro::GFX::circle (float fX, float fY, float fRad, Uint32 iColor, Sint32 idRes=0)
 Draw an outlined circle.
bool CRM64Pro::GFX::circle (float fX, float fY, float fRad, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw an outlined circle.
bool CRM64Pro::GFX::circleFilled (float fX, float fY, float fRad, Uint32 iColor, Sint32 idRes=0)
 Draw a filled circle.
bool CRM64Pro::GFX::circleFilled (float fX, float fY, float fRad, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a filled circle.
bool CRM64Pro::GFX::ellipse (float fX, float fY, float fRadX, float fRadY, Uint32 iColor, Sint32 idRes=0)
 Draw an outlined ellipse.
bool CRM64Pro::GFX::ellipse (float fX, float fY, float fRadX, float fRadY, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw an outlined ellipse.
bool CRM64Pro::GFX::ellipseFilled (float fX, float fY, float fRadX, float fRadY, Uint32 iColor, Sint32 idRes=0)
 Draw a filled ellipse.
bool CRM64Pro::GFX::ellipseFilled (float fX, float fY, float fRadX, float fRadY, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a filled ellipse.
bool CRM64Pro::GFX::polygon (float *fVX, float *fVY, Sint32 iNV, Uint32 iColor, Sint32 idRes=0)
 Draw an outlined polygon.
bool CRM64Pro::GFX::polygon (float *fVX, float *fVY, Sint32 iNV, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw an outlined polygon.
bool CRM64Pro::GFX::polygonFilled (float *fVX, float *fVY, Sint32 iNV, Uint32 iColor, Sint32 idRes=0)
 Draw a filled polygon.
bool CRM64Pro::GFX::polygonFilled (float *fVX, float *fVY, Sint32 iNV, Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, Sint32 idRes=0)
 Draw a filled polygon.
bool CRM64Pro::GFX::rgbToHSV (Uint8 iR, Uint8 iG, Uint8 iB, float *fH, float *fS, float *fV)
 Color conversion from RGB to HSV.
bool CRM64Pro::GFX::hsvToRGB (float fH, float fS, float fV, Uint8 *iR, Uint8 *iG, Uint8 *iB)
 Color conversion from HSV to RGB.
bool CRM64Pro::GFX::rgbToYUV (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 *iY, Uint8 *iU, Uint8 *iV)
 Color conversion from RGB to YUV.
bool CRM64Pro::GFX::yuvToRGB (Uint8 iY, Uint8 iU, Uint8 iV, Uint8 *iR, Uint8 *iG, Uint8 *iB)
 Color conversion from YUV to RGB.
bool CRM64Pro::GFX::rgbToYCC (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 *iY, Uint8 *iCb, Uint8 *iCr)
 Color conversion from RGB to YCC.
bool CRM64Pro::GFX::yccToRGB (Uint8 iY, Uint8 iCb, Uint8 iCr, Uint8 *iR, Uint8 *iG, Uint8 *iB)
 Color conversion from YCC to RGB.

Function Documentation

◆ info()

bool CRM64Pro::GFX::info ( Sint32 iMode = 0)
override

Request GFX module information.

Writes information to the default log.

Parameters
iModeReserved for future use. Pass 0.
Returns
true on success, or false on failure.

◆ setSurfacePixel()

bool CRM64Pro::GFX::setSurfacePixel ( float fX,
float fY,
Uint32 iColor,
SDL_Surface * pSurface )

Draw a pixel in a surface.

Parameters
fXX (horizontal) coordinate of the pixel.
fYY (vertical) coordinate of the pixel.
iColorThe color value of the pixel to draw (0xAARRGGBB).
pSurfaceSDL_Surface pointer.
Returns
true on success, or false on failure.
Note
No bounds checking is performed for performance.

◆ getSurfacePixel()

Uint32 CRM64Pro::GFX::getSurfacePixel ( float fX,
float fY,
SDL_Surface * pSurface ) const

Get a pixel color from a surface.

Parameters
fXX (horizontal) coordinate of the pixel.
fYY (vertical) coordinate of the pixel.
pSurfaceSDL_Surface pointer.
Returns
A Uint32 iValue with the pixel value in the surface format.
Note
No bounds checking is performed for performance.

◆ setPixel() [1/2]

bool CRM64Pro::GFX::setPixel ( float fX,
float fY,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a pixel.

Parameters
fXX (horizontal) coordinate of the pixel.
fYY (vertical) coordinate of the pixel.
iColorThe color value of the pixel to draw (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ setPixel() [2/2]

bool CRM64Pro::GFX::setPixel ( float fX,
float fY,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a pixel.

Parameters
fXX (horizontal) coordinate of the pixel.
fYY (vertical) coordinate of the pixel.
iRThe red color value of the pixel to draw.
iGThe green color value of the pixel to draw.
iBThe blue color value of the pixel to draw.
iAThe alpha value of the pixel to draw.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ getPixel()

Uint32 CRM64Pro::GFX::getPixel ( float fX,
float fY,
Sint32 idRes = 0 ) const

Get a pixel color.

Parameters
fXX (horizontal) coordinate of the pixel.
fYY (vertical) coordinate of the pixel.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
A Uint32 iValue with the RGBA pixel value.
Note
This method is a bit slow when accessing to an image handle or VERY slow when doing it on a screen.

◆ lineH() [1/2]

bool CRM64Pro::GFX::lineH ( float fX1,
float fX2,
float fY,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a horizontal line.

Parameters
fX1X coordinate of the first point of the line.
fX2X coordinate of the second point of the line.
fYY coordinate of the points of the line.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ lineH() [2/2]

bool CRM64Pro::GFX::lineH ( float fX1,
float fX2,
float fY,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a horizontal line.

Parameters
fX1X coordinate of the first point of the line.
fX2X coordinate of the second point of the line.
fYY coordinate of the points of the line.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ lineV() [1/2]

bool CRM64Pro::GFX::lineV ( float fX,
float fY1,
float fY2,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a vertical line.

Parameters
fXX coordinate of the points of the line.
fY1Y coordinate of the first point of the line.
fY2Y coordinate of the second point of the line.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ lineV() [2/2]

bool CRM64Pro::GFX::lineV ( float fX,
float fY1,
float fY2,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a vertical line.

Parameters
fXX coordinate of the points of the line.
fY1Y coordinate of the first point of the line.
fY2Y coordinate of the second point of the line.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ line() [1/2]

bool CRM64Pro::GFX::line ( float fX1,
float fY1,
float fX2,
float fY2,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a line.

Parameters
fX1X coordinate of the first point of the line.
fY1Y coordinate of the first point of the line.
fX2X coordinate of the second point of the line.
fY2Y coordinate of the second point of the line.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ line() [2/2]

bool CRM64Pro::GFX::line ( float fX1,
float fY1,
float fX2,
float fY2,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a line.

Parameters
fX1X coordinate of the first point of the line.
fY1Y coordinate of the first point of the line.
fX2X coordinate of the second point of the line.
fY2Y coordinate of the second point of the line.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rect() [1/2]

bool CRM64Pro::GFX::rect ( float fX1,
float fY1,
float fX2,
float fY2,
Uint32 iColor,
Sint32 idRes = 0 )

Draw an outlined rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rect() [2/2]

bool CRM64Pro::GFX::rect ( float fX1,
float fY1,
float fX2,
float fY2,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw an outlined rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectFilled() [1/2]

bool CRM64Pro::GFX::rectFilled ( float fX1,
float fY1,
float fX2,
float fY2,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a filled rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectFilled() [2/2]

bool CRM64Pro::GFX::rectFilled ( float fX1,
float fY1,
float fX2,
float fY2,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a filled rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectRound() [1/2]

bool CRM64Pro::GFX::rectRound ( float fX1,
float fY1,
float fX2,
float fY2,
float fRad,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a round outlined rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
fRadRadius in pixels of the corner arc.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectRound() [2/2]

bool CRM64Pro::GFX::rectRound ( float fX1,
float fY1,
float fX2,
float fY2,
float fRad,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a round outlined rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
fRadRadius in pixels of the corner arc.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectFilledRound() [1/2]

bool CRM64Pro::GFX::rectFilledRound ( float fX1,
float fY1,
float fX2,
float fY2,
float fRad,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a round filled rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
fRadRadius in pixels of the corner arc.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rectFilledRound() [2/2]

bool CRM64Pro::GFX::rectFilledRound ( float fX1,
float fY1,
float fX2,
float fY2,
float fRad,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a round filled rectangle.

Parameters
fX1X coordinate of the first point of the rectangle.
fY1Y coordinate of the first point of the rectangle.
fX2X coordinate of the second point of the rectangle.
fY2Y coordinate of the second point of the rectangle.
fRadRadius in pixels of the corner arc.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ arc() [1/2]

bool CRM64Pro::GFX::arc ( float fX,
float fY,
float fRad,
float fStart,
float fEnd,
Uint32 iColor,
Sint32 idRes = 0 )

Draw an arc.

Parameters
fXX coordinate of the center of the arc.
fYY coordinate of the center of the arc.
fRadRadius in pixels of the arc.
fStartStarting radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
fEndEnding radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ arc() [2/2]

bool CRM64Pro::GFX::arc ( float fX,
float fY,
float fRad,
float fStart,
float fEnd,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw an arc.

Parameters
fXX coordinate of the center of the arc.
fYY coordinate of the center of the arc.
fRadRadius in pixels of the arc.
fStartStarting radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
fEndEnding radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ circle() [1/2]

bool CRM64Pro::GFX::circle ( float fX,
float fY,
float fRad,
Uint32 iColor,
Sint32 idRes = 0 )

Draw an outlined circle.

Parameters
fXX coordinate of the center of the circle.
fYY coordinate of the center of the circle.
fRadRadius in pixels of the circle.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ circle() [2/2]

bool CRM64Pro::GFX::circle ( float fX,
float fY,
float fRad,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw an outlined circle.

Parameters
fXX coordinate of the center of the circle.
fYY coordinate of the center of the circle.
fRadRadius in pixels of the circle.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ circleFilled() [1/2]

bool CRM64Pro::GFX::circleFilled ( float fX,
float fY,
float fRad,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a filled circle.

Parameters
fXX coordinate of the center of the circle.
fYY coordinate of the center of the circle.
fRadRadius in pixels of the circle.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ circleFilled() [2/2]

bool CRM64Pro::GFX::circleFilled ( float fX,
float fY,
float fRad,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a filled circle.

Parameters
fXX coordinate of the center of the circle.
fYY coordinate of the center of the circle.
fRadRadius in pixels of the circle.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ ellipse() [1/2]

bool CRM64Pro::GFX::ellipse ( float fX,
float fY,
float fRadX,
float fRadY,
Uint32 iColor,
Sint32 idRes = 0 )

Draw an outlined ellipse.

Parameters
fXX coordinate of the center of the ellipse.
fYY coordinate of the center of the ellipse.
fRadXhorizontal radius in pixels of the ellipse.
fRadYvertical radius in pixels of the ellipse.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ ellipse() [2/2]

bool CRM64Pro::GFX::ellipse ( float fX,
float fY,
float fRadX,
float fRadY,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw an outlined ellipse.

Parameters
fXX coordinate of the center of the ellipse.
fYY coordinate of the center of the ellipse.
fRadXhorizontal radius in pixels of the ellipse.
fRadYvertical radius in pixels of the ellipse.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ ellipseFilled() [1/2]

bool CRM64Pro::GFX::ellipseFilled ( float fX,
float fY,
float fRadX,
float fRadY,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a filled ellipse.

Parameters
fXX coordinate of the center of the ellipse.
fYY coordinate of the center of the ellipse.
fRadXhorizontal radius in pixels of the ellipse.
fRadYvertical radius in pixels of the ellipse.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ ellipseFilled() [2/2]

bool CRM64Pro::GFX::ellipseFilled ( float fX,
float fY,
float fRadX,
float fRadY,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a filled ellipse.

Parameters
fXX coordinate of the center of the ellipse.
fYY coordinate of the center of the ellipse.
fRadXhorizontal radius in pixels of the ellipse.
fRadYvertical radius in pixels of the ellipse.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ polygon() [1/2]

bool CRM64Pro::GFX::polygon ( float * fVX,
float * fVY,
Sint32 iNV,
Uint32 iColor,
Sint32 idRes = 0 )

Draw an outlined polygon.

Parameters
fVXVertex array containing X coordinates of the points of the polygon.
fVYVertex array containing Y coordinates of the points of the polygon.
iNVNumber of points in the vertex array. From a minimum number of 3 up to 32.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ polygon() [2/2]

bool CRM64Pro::GFX::polygon ( float * fVX,
float * fVY,
Sint32 iNV,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw an outlined polygon.

Parameters
fVXVertex array containing X coordinates of the points of the polygon.
fVYVertex array containing Y coordinates of the points of the polygon.
iNVNumber of points in the vertex array. From a minimum number of 3 up to 31.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ polygonFilled() [1/2]

bool CRM64Pro::GFX::polygonFilled ( float * fVX,
float * fVY,
Sint32 iNV,
Uint32 iColor,
Sint32 idRes = 0 )

Draw a filled polygon.

Parameters
fVXVertex array containing X coordinates of the points of the polygon.
fVYVertex array containing Y coordinates of the points of the polygon.
iNVNumber of points in the vertex array. From a minimum number of 3 up to 32.
iColorThe color value (0xRRGGBBAA).
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ polygonFilled() [2/2]

bool CRM64Pro::GFX::polygonFilled ( float * fVX,
float * fVY,
Sint32 iNV,
Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 iA,
Sint32 idRes = 0 )

Draw a filled polygon.

Parameters
fVXVertex array containing X coordinates of the points of the polygon.
fVYVertex array containing Y coordinates of the points of the polygon.
iNVNumber of points in the vertex array. From a minimum number of 3 up to 32.
iRThe red color value.
iGThe green color value.
iBThe blue color value.
iAThe alpha value.
idResa valid screen or image handle. By default it tries to use the default screen.
Returns
true on success, or false on failure.

◆ rgbToHSV()

bool CRM64Pro::GFX::rgbToHSV ( Uint8 iR,
Uint8 iG,
Uint8 iB,
float * fH,
float * fS,
float * fV )

Color conversion from RGB to HSV.

Parameters
iRRed component.
iGGreen component.
iBBlue component.
fHpointer to Hue component.
fSpointer to Saturation component.
fVpointer to Value component.
Returns
true on success, or false on failure.

◆ hsvToRGB()

bool CRM64Pro::GFX::hsvToRGB ( float fH,
float fS,
float fV,
Uint8 * iR,
Uint8 * iG,
Uint8 * iB )

Color conversion from HSV to RGB.

Parameters
fHHue component.
fSSaturation component.
fVValue component.
iRpointer to Red component.
iGpointer to Green component.
iBpointer to Blue component.
Returns
true on success, or false on failure.

◆ rgbToYUV()

bool CRM64Pro::GFX::rgbToYUV ( Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 * iY,
Uint8 * iU,
Uint8 * iV )

Color conversion from RGB to YUV.

Parameters
iRRed component.
iGGreen component.
iBBlue component.
iYpointer to luma component.
iUpointer to chrominance U component.
iVpointer to chrominance V component.
Returns
true on success, or false on failure.

◆ yuvToRGB()

bool CRM64Pro::GFX::yuvToRGB ( Uint8 iY,
Uint8 iU,
Uint8 iV,
Uint8 * iR,
Uint8 * iG,
Uint8 * iB )

Color conversion from YUV to RGB.

Parameters
iYluma component.
iUchrominance U component.
iVchrominance V component.
iRpointer to Red component.
iGpointer to Green component.
iBpointer to Blue component.
Returns
true on success, or false on failure.

◆ rgbToYCC()

bool CRM64Pro::GFX::rgbToYCC ( Uint8 iR,
Uint8 iG,
Uint8 iB,
Uint8 * iY,
Uint8 * iCb,
Uint8 * iCr )

Color conversion from RGB to YCC.

Parameters
iRRed component.
iGGreen component.
iBBlue component.
iYpointer to luma component.
iCbpointer to chrominance blue component.
iCrpointer to chrominance red component.
Returns
true on success, or false on failure.

◆ yccToRGB()

bool CRM64Pro::GFX::yccToRGB ( Uint8 iY,
Uint8 iCb,
Uint8 iCr,
Uint8 * iR,
Uint8 * iG,
Uint8 * iB )

Color conversion from YCC to RGB.

Parameters
iYluma component.
iCbchrominance blue component.
iCrchrominance red component.
iRpointer to Red component.
iGpointer to Green component.
iBpointer to Blue component.
Returns
true on success, or false on failure.