CrossGL SDK Overview
CrossGL is a brand new graphics API technology of our own production.
This product is not for sale. By this, we offer you an insight under
the hood so you can make a picture about technologies we created and
used in our other products.
CrossGL® is shared source, cross-platform, immediate-mode, high-fidelity,
Raster graphics imaging library.
Its central feature comprises of comprehensive and easy to use
API providing robust all-in-one solution to many underlying industry-proven technologies.
Its another aspect is portability. CrossGL runs seamlessly across different platforms such as
operating systems, programming languages and application frameworks, providing single
interface on all targets to achieve the same graphical output.
CrossGL produces in software high-quality anti-aliased 2D graphics with subpixel
accuracy (high-precision) covering the whole range of utilization domains such as business graphics, web graphics,
DTP, cartography, printing, user interface graphics, serverside rendering and many more.
CrossGL supports I18N and
can be used for L10N. Implemented is a strong
support for Unicode, but other encodings can be used and implemented as well.
CrossGL is abbreviation of Crossplatform Graphics Library.
CrossGL is a general purpose 2D Raster and Vector Graphics Library. It provides graphics imaging
utilizable in whole range of areas.
Here are some specific domains:
Business Graphics |
Usable for every business application for data visualizations from small businesses to large scale enterprises.
Native applications such as tax and accounting, ERP, CRM, CMS, service applications, corporate information systems,
database applications and so on are a primary area of use of CrossGL.
If there is a need to create different kind of documents such as reports, invoices, letters, delivery notes, charts, graphs,
diagrams, organizational charts, etc., CrossGL will display those documents on a screen and output them on a printer
in an appropriate scale dependent on device resolution.
Web Graphics and Serverside Rendering |
Render all kinds of web graphics such as buttons, backgrounds, icons, SVG cliparts, captchas, counters, graphic
menus etc. CrossGL can be either a part of an off-line CMS application or a part of on-line serverside multiuser
application, that renders web graphics in real-time on demand. All graphics elements on this page (gradient bars,
graphic menu, company & product logos, cliparts & images) were rendered with CrossGL.
Consumer Graphics & DTP |
Incorporate CrossGL as a graphics background engine for applications, where scalable high quality
graphic is desired. It is possible to create a full featured vector graphics editor and as a Technology
Showcase, we are providing one for free (look in Examples & Demos section for CrossGL Draw).
Scalable logo design is another area. Use your company or product logo in your custom applications generated
in desired sizes and forms from internal vectorial representation.
User Interface Graphics |
Replace custom controls rendering with CrossGL drawing routines and get scalable, anti-aliased, subpixel
positioned controls with transparency and full I18N support (please notice our animated buttons for
a user interface elements example). CrossGL is great for skinnable interfaces since it provides hit-detection
objects which work regardless of where particular graphics elements are positioned. Background application logic
functionality can be created without knowing in advance, where the appropriate graphics elements are rendered.
Surface Computing Applications |
Thanks to the 2nd level of transformations it is possible to create Surface Computing applications with CrossGL.
As an example, we created Surface Computing gadgets (calculator & clock) working in full 360° - you can
rotate and zoom them at any angle. Another cool feature you can deploy with CrossGL is full 360° Rotating Canvas
for your documents and graphics. We implemented this feature in CrossGL Draw - just try and see.
High Precision Graphics |
CrossGL graphics scene can be zoomed for very fine small detail up to a 1 million % (including raster images),
which provides unprecedented high-precision possibilities. By increasing zoom this way a maximum size of image, that
can be rendered with CrossGL, is approximately 9 million x 9 million pixels (81 MPix). For speed and memory efficiency
CrossGL can render just the pixel-aligned exact portion of scene visible just on screen. This technique is called
Tiling (usable also for larger-than device sheet printing). You can try this feature in CrossGL Draw (when zooming
so deep, please wait a few seconds for rasterizer to reconfigure).
Rich Client Applications |
CrossGL is ideal for client-side graphics rendering in network applications. Since CrossGL is a crossplatform, you
can deploy single graphics source code routines on multiple platforms ensuring identical graphical output on all
used platforms. Client-side rendering for network applications can increase your application usability, responsiveness
and overall user experience.
I18N, L10N & Complex Text Layout (RichText) |
Text related functions of CrossGL API are built around Encoding class, which virtualizes the way
its implementation works with user provided text strings data. Emphasis is laid on support
for Unicode and all of its processing algorithms. Due to the abstract nature of Encoding
class any other encoding of text data is possible to use with CrossGL. Another text processing feature
is a complex text layout rendering functionality with respect to underlying encoding and related
rules (BiDi for example). It is possible to create fully localizable applications by using custom controls
rendered with CrossGL.
Print Preview in WYSIWYG |
Design any vectorial or raster based graphics scene, display it on screen or output to a printer.
CrossGL takes care of proper device resolution scaling. Print preview with CrossGL can be the
traditional one, where the preview is shown in a single window with more or single pages,
or a live one, where the preview is as a standalone widget updating its contents as related
data in form changes. Thanks to the subpixel accuracy, scaled graphics doesn't snap to pixel boundaries
but instead continuosly zooms in and out, as there would be no pixel grid.
Tiled Printing (Large scenes) |
There are some certain scenarios, where the printing output is desired to be larger than a sheet of a paper.
CrossGL is able to handle requirements like this by letting the user define the tiled pages layout configuration
and system transformation that enlarges any graphics scene to the extents crossing the boundaries of
more (even many of) pages of printer device's maximum sheet size.
Interactive Graphics Editing |
CrossGL has basic graphics editing capabilities by providing Hit Testing class for every
drawing function element. It is possible to create a simple graphical interactive applications
reflecting to a mouse or other pointing input in an exact way. Transparency works on both
vectorial and raster objects. Whole scene can scale and rotate while preserving the Hit Testing
GIS & Cartography |
Well suited for graphical tasks related to GIS, map rendering and geographical applications.
Whether used as a part of web engine generating on demand requests or as a standalone application,
it provides functionality such as keeping the same width of certain lines while scaling the rest
of scene (road borders keep certain width at any zoom level for example), line patterns or text warping
(text on path & text along path) with I18N support.
Special Effects Graphics |
CrossGL is 2D graphics library, but the use of perspective transformation allows simulation of some limited 3D
like effects. Very popular web graphics element is a rendering of box of a software. This scenario can be achieved
in CrossGL quite easily. All that's needed is some math calculations and use of a few tricks to achieve
also rendering of the box's shadow and mirroring on the ground. Another nice graphics animated effects can be
created by using CrossGL fill distortions. We used this effect in our button control aqua-like implementation.
2D Games and Screensavers |
Usable for desktop game development, whether full screen or windowed. Depending on the scene complexity and caching
algorithms used, it is possible to achieve a smooth experience. There is a lot of little games and other web-graphics
in flash technology today and it is exactly the kind of stuff CrossGL is able to deliver too.
Raster Graphics Imaging |
CrossGL raster imaging capabilities are based on a true crossplatform Bitmap class (no OS dependancies) with support for
conversions to different Pixel Geometries. On top of that sits an Image class which abstracts the support for various
raster image formats. Conversion between different bitmap formats is a matter of a few lines of code in CrossGL. Also color
depth conversion is available for both expanding and decreasing the depth. For color depth decrease, methods such as
quantization and dithering are available. Raster imaging functionality is supported also by more than 30 various bitmap
filters such as Sharpen, Blur, Emboss, FishEye, Wave, Rotate, Noise and so on.
Tell Us What You Think