CrossGL SDK Features Matrix
General Imaging Features
|
Pixel geometry
|
•
| |
24bit - RGB, BGR
|
•
| |
32bit - RGBA, BGRA, ARGB, ABGR
|
•
| |
Foundations for implementing support for different pixel geometries
|
•
| |
HLS bitmap class
|
|
Alpha blending
|
•
| |
256 levels of transparency
|
|
Surface operations
|
•
| |
Attaching to various surfaces (bitmaps, frame buffers)
|
•
| |
Cleaning surface with color including alpha transparency
|
|
Raster Graphics Features
|
Raster file formats support
|
•
| |
Loading & Saving: JPEG, PNG, JNG
|
|
Basic bitmap operations
|
•
| |
Creating, Mapping, Cloning, Cropping, Tiling, Filling, Resizing (Linear & Fast Bilinear),
Color count, Palette support, Pixel & Scanline access
|
|
Basic image operations
|
•
| |
Creating, Streaming, Cloning
|
•
| |
Support for frames (animated images)
|
•
| |
File format conversions
|
|
Color depth conversions
|
•
| |
Increasing color depth
|
•
| |
Decreasing color depth - Octree quantization, Floyd-steinberg dithering, Matching to color palette,
Grayscale & Monochromatic conversion
|
|
Color names management
|
•
| |
Color value retrieval by name
|
•
| |
Embeddable custom color lists
|
•
| |
Built-in color families: VGA, Html, X11, SVG, WebSafeColors
|
|
Bitmap filters altering Alpha channel
|
•
| |
Flip, Flop, HShift, VShift, Blend, AlphaBlend, RotateSize, Rotate, RotateWrap, RotateSmooth, RotateSmoothWrap,
Wave, WaveWrap, FishEye, Twist, Shake, Marble, RippleRandom, RippleTooth, RippleTriangle, Triangles,
SplitBlur, GaussianBlur, Sharpen, SharpenMore, Antialias, AntialiasRect, Spray, HeightMap, Plasma, Mosaic,
Zoom, Mandelbrot
|
|
Bitmap filters preserving Alpha channel
|
•
| |
Solorize, Posterize, Seamless, Emboss, Buttonize, GradientRect, MandelJulia, RGBShift, ExtractColor,
ExcludeColor, Grayscale, Invert, Darkness, Lightness, Saturation, Contrast, SplitLight, ColorNoise,
MonoNoise, KeepRed, KeepGreen, KeepBlue, DigitalConvolution (Blur, Sharp, Edge, EmbossColor, Enhance3D,
HighPass, Focus, Trace )
|
|
Vector Graphics Features
|
Vector file formats support
|
•
| |
Loading: SVG Cliparts -> plain SVG (no CSS), elements: title, g, path, rect, ellipse, circle,
line, polyline, polygon, defs, mask, linearGradient, radialGradient, stop
|
|
Anti-aliasing
|
•
| |
256 levels of anti-aliasing
|
•
| |
Gamma corrections
|
•
| |
Anti-aliasing can be turned off
|
|
Subpixel accuracy
|
•
| |
256 levels of subpixel positioning
|
|
Coordinate systems
|
•
| |
Top to Bottom on Y-axis
|
•
| |
Bottom to Top on Y-axis
|
•
| |
Coordinates alignment
|
|
Rendering engine states
|
•
| |
Get, Set & Reset whole engine State
|
•
| |
Get, Set & Reset (partial): Pen, Fill, Shadow, Transformations, Clipping, MasterParameters,
BitmapParameters, TextParameters
|
|
Master rendering modes
|
•
| |
Full -> gradients, patterns & distortions
|
•
| |
Draft -> just solid colors
|
•
| |
Outline -> all shapes drawn with outlines, no fills
|
•
| |
Wireframe -> all shapes drawn with single lines, no fills
|
•
| |
Modes individuably configurable for Pen, Fill & Shadow
|
•
| |
Optional single color of whole scene for Wireframe mode
|
|
Composition modes for surfaces with Alpha channel
|
•
| |
Alpha, Invert, Invert RGB
|
•
| |
SVG Compliant: Clear, Src, Dst, Scr Over, Dst Over, Src In ,Dst In, Src Out, Dst Out, Src Atop,
Dst Atop, Xor, Plus, Minus, Multiply, Screen, Overlay, Darken, Lighten, Color Dodge, Color Burn,
Hard Light, Soft Light, Difference, Exclusion, Contrast
|
•
| |
Composition modes can be set also for bitmap rendering against some color value
|
|
Transformations (primary)
|
•
| |
Viewport, Translation, Rotation, Scaling, Skewing, Reflection, Perspective, Bilinear,
WarpMagnify, Matrix
|
•
| |
Transformations are stackable, so two non-multipliable transformations such as Perspective
or Warp are applicable more times after each other
|
•
| |
UserToSurface & SurfaceToUser conversions
|
|
2nd level of transformations
|
•
| |
Whole rendering scene can be transformed on top of existing stacked transformations by multiplying
with Current System Transformation Matrix (CSTM)
|
|
Clipping (primary)
|
•
| |
Clipping area can consist of any number of Rectangles, Ellipses, Paths and PathGroups
|
•
| |
Clipping rule (NonZero or EvenOdd) applies to clipping shapes
|
•
| |
Clipping area can be inverted, combined or cleared
|
•
| |
Clipping Bounds
|
•
| |
Clipping transforms with 2nd level of transformations (rotates, shifts, skews, etc.)
|
|
Cropping
|
•
| |
Besides Clipping (where rendering is filtered by Clipping Mask), Rendering Surface can
be constrained to some rectangular area
|
•
| |
Cropping in CrossGL can be considered as a 2nd level of Clipping (Clips also primary Clipping)
|
|
Tiling
|
•
| |
Allows custom definition of rendering origin with respect to preservation of used coordinate
system. In combination with Cropping allows rendering of just exact portions of whole scene.
|
|
Pen (stroke) properties
|
•
| |
Pen type: Solid, Dash, Pattern
|
•
| |
Pen paint type for Solid & Dash: Single color or Gradient
|
•
| |
Pen cap: Butt, Square, Round
|
•
| |
Pen join: Miter, Round, Bevel
|
•
| |
Pen width centers on path
|
•
| |
Pen above or behind fill
|
•
| |
Pen scaling (if PenScale is off, pen width keeps same regardless of primary transformations zoom - good for cartography)
|
•
| |
Pen outline mode (not filling the width of pen, just pen contours, applies to dash pattern also)
|
•
| |
Pen dash - custom definition of dash pattern with dash start offset
|
•
| |
Pen pattern - from Bitmap or any custom CrossGL drawing sequence, with pattern start offset
|
•
| |
Pen head & tail arrows - fully customizable shapes
|
•
| |
Pen markers (at vertices) - fully customizable shape and color
|
|
Fill (brush) properties
|
•
| |
Fill type: Solid (Single color), Pattern, Gradient
|
•
| |
Fill rule: NonZero or EvenOdd
|
•
| |
Fill pattern - from Bitmap or any custom CrossGL drawing sequence, with pattern start offset,
pattern mode (Repeat or Reflect) and possibility to tie or not tie to the coordinates system origin
|
•
| |
Fill distortion: Wave, Swirl & combinations (animatable for flowing like effects)
|
|
Gradients
|
•
| |
LinearX, LinearY, Radial, Radial Focus, Conic, Conic Angle, Diamond, XY, Sqrt XY, Contour,
Auto Contour, Bitmap, Gouraud Triangles, Gouraud Rectangles
|
•
| |
Gradient patterns: None, Repeat, Reflect
|
|
Shadows
|
•
| |
Shadow type: Drop, 3D, Zoom
|
•
| |
Shadow effect: Single color, Blurred Color, Gradient Ramp
|
|
Drawing primitives
|
•
| |
Line, Polyline, Polygon
|
•
| |
Triangle, Multigon, Star
|
•
| |
Rectangle, RoundedRectangle
|
•
| |
Ellipse, Arc, Spiral, Circle, Chord, Pie
|
•
| |
BSpline, QuadCurve, CubicCurve
|
|
Path
|
•
| |
Path commands (SVG compliant) - MoveTo, MoveToRel, LineTo, LineToRel, HorLineTo, HorLineToRel, VerLineTo,
VerLineToRel, ArcTo, ArcToRel, QuadCurveTo, QuadCurveToRel,
CubicCurveTo, CubicCurveToRel
|
•
| |
Reusable path objects
|
•
| |
Path -> Width, Height, Transform, Hit, Clone, Append
|
|
Path groups
|
•
| |
Ability to record desired parts of drawing routine into one Path Group object, later reuse
that object as single drawing entity
|
|
Text rendering
|
String = Non I18N char (1 byte) sequences
Text & Paragraph = Full I18N char (1 byte), wide (2 bytes), full (4 bytes) & Unicode sequences
•
| |
String, StringWidth, StringBounds
|
•
| |
String can have individual rotation
|
•
| |
StringOnPath (+Bounds)
|
•
| |
StringOnDoublePath (+Bounds)
|
•
| |
Text, TextWidth, TextBounds
|
•
| |
Text can have individual rotation
|
•
| |
TextOnPath (+Bounds)
|
•
| |
TextOnDoublePath (+Bounds)
|
•
| |
Paragraph (+Bounds)
|
•
| |
Paragraph Width, Align on X & Y axis, line spacing, individual whole paragraph rotation
|
•
| |
Text rendering mode: Flat (Single color), Full (Pen + Fill + Shadow)
|
•
| |
Text XY origin align: Left, Right, Center, Top, Bottom
|
•
| |
Hinting & Kerning
|
•
| |
Text background color (applies also to the OnPath & OnDoublePath)
|
•
| |
Underline, Underline just words, Underline with Pen
(applies also to the OnPath & OnDoublePath)
|
•
| |
Strike, Strike just words, Strike with Pen
(applies also to the OnPath & OnDoublePath)
|
•
| |
Font engine selection: FreeType (all platforms) or Windows True Type (only Windows)
|
|
Complex text
|
•
| |
Rich text capabilities provided with TemlCode markup
|
•
| |
font face, font size (pixels, points), font style (bold, italic, strike, underline),
flat | outlined text, text color, background color, pen color, fill color, paragraph
align X (top, center, bottom) align Y (left, right, center, justify, width), paragraph
spacing, hypertext link, subsections
|
|
Bitmap rendering
|
•
| |
Render by: Coordinates, Parallelogram
|
•
| |
Stretching, Cropping
|
•
| |
Render to Path
|
•
| |
Applicable resampling filters: Bilinear, Hanning, Hermite, Quadric, Bicubic, Catrom, Spline,
Blackman, Lanczos
|
|
Special renderings
|
•
| |
DrawSVG (+Bounds)
|
•
| |
DrawGouraudShape
|
|
Interactions support
|
•
| |
Hit testing available for all drawing elements (Primitives, Path, PathGroups, Text, Bitmap & Special renderings)
|
•
| |
Hit testing for Bitmap rendering can respect Bitmap transparency
|
•
| |
Configurable hit detection areas (outlines inner, polygons inner, just markers, XY tolerance, clipping)
|
|
I18N & L10N Features
|
Supported encodings
|
•
| |
Focused on Unicode: UTF8, UTF16, UTF16LE, UTF32, UTF32LE
|
•
| |
Base classes for SBCS, DBCS & MBCS encodings
|
•
| |
SBCS encodings: Windows1250, Windows1251, Windows1252, Windows1253, Windows1254, Windows1255,
Windows1256, Windows1257, Windows1258, Windows874, Windows28591, Windows28592, Windows28593,
Windows28594, Windows28595, Windows28596, Windows28597, Windows28598, Windows28599, Windows28605,
OEM437, OEM720, OEM737, OEM775, OEM850, OEM852, OEM855, OEM857, OEM858, OEM862, OEM866, ISO8859-1,
ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-15
|
•
| |
MBCS encodings: ShiftJIS, Korean, TraditionalBig5, SimplifiedGBK
|
•
| |
Foundations for implementing any encoding
|
|
Supported scripts
|
•
| |
Arabic, Armenian, Balinese, Bengali, Bopomofo, Braille, Buginese, Buhid, Cham, Cherokee, Chinese,
Cirth, Coptic, Cuneiform (Sumero-Akkadian), Cypriot, Cyrillic, Cyrillic (Old Church Slavonic),
Deseret, Devanagari, Ethiopic, Georgian, Glagolitic, Gothic, Greek, Gujarati, Gurmukhi, Hangul,
Hanunoo, Hebrew, Hiragana, Katakana, Kannada, Kayah Li, Kharoshti, Khmer, Korean, Lao, Latin, Lepcha,
Limbu, Linear B, Malaylam, Mongolian, Myanmar (Burmese), N'Ko, New Tai Lue, Ogham, Old Italic,
Old Persian, Oriya, Osmanya, Phagspa, Phoenician, Runic, Shavian, Simplified Chinese, Sinhala,
Syloti Nagri, Syriac, Tagalog, Tagbanwa, Tai Le, Tamil, Telugu, Tengwar, Thaana, Thai, Tibetan,
Tifinagh, Traditional Chinese, Ugaritic, Unified Canadian Aboriginal Syllabic, Yi
|
|
Text rendering
|
•
| |
Rendering of text (also complex layouts) encoded in any supported (or additionaly implemented)
encoding with respect to BiDi rules
|
•
| |
Rendering of ICU's UnicodeString class
|
|
I18N functionality
|
•
| |
Collation, Normalization, Case Conversion, Transliteration and many more provided by directly
calling ICU API
|
|
Non-imaging Crossplatform Features
|
General
|
•
| |
CrossTypes - unified base types naming & definition common to all platforms
|
•
| |
Memory lists management classes
|
•
| |
Sorting algorithms for memory lists: Insertion, Shell, Heap, Quick, Custom
|
•
| |
Data streaming classes (Abstract, Memory, File)
|
•
| |
zLib compression / decompression routines
|
•
| |
Date, Time & Timer routines
|
•
| |
Exception handling classes & routines
|
•
| |
Fullstring support routines
|
•
| |
String formatting & conversion routines
|
•
| |
TemlCode parser with Tree Structures
|
|
File functionality
|
•
| |
FileName class
|
•
| |
File & Text handles
|
•
| |
File streaming class
|
•
| |
File handle: Open, Create, Close, Read block, Write block, Insert block, Delete block, Crop, Size,
Offset, Seek, Eof, Copy, Move, Remove, Rename, Exists, Attributes (get & set)
|
•
| |
Text handle: Open, Create, Append, Close, Readln, Writeln
|
•
| |
Directory: Create, Remove, Rename, Change, Current, Temporary, Startup, Exists
|
•
| |
Volume: Type, FreeSpace, TotalSpace
|
•
| |
FindFirst + FindNext
|
|
Tell Us What You Think
|