TinyLine SVG: Implementation Status

Changes in the TinyLine SVG 2.1

  • Uses TinyLine 2D 2.1 Renderer.
  • The assignment of 'descent' attributes is fixed in SVGFontElem.
  • The calculations of getDevBounds() are corrected in SVGNode. Now it takes the stroking parameters into consideration.
  • The problem with SVG document transform calculations is solved.
    The API changes include removing: SVGRaster.setCamera() SVGRaster.view SVGRaster.origview
    All above API elements were used for zooming and panning SVG document - modifying root.transform via camera transform.
    The function that was corrected is SVGSVGElem.recalcViewXform() that calculates the SVG document transform SVGSVGElem.cameraXform that has the following components:
    • The current translate to the point (tx, ty) (TinyMatrix) root.cameraXform.data[0]
    • The current scale factor (TinyMatrix) root.cameraXform.data[1]
    The correction also simplifies zoom and pan calculations and the corresponding changes could be found in com.tinyline.app.PlayerListener, tinyapp.MouseHandler and other examples.

Changes in the TinyLine SVG 2.0_HFA_1

  • Uses TinyLine 2D 2.0_HFA_1 Renderer
    that solves the "circle stroking problem" - rounding error occurred when stoking circles.

Changes in the TinyLine SVG 2.0

  • Uses TinyLine 2D 2.0 Renderer
  • Improved SMIL animations support
  • Optimized SVGEventQueue
  • Programming Guide updated to cover 2.0 API

Changes in the TinyLine SVG 1.10

  • The Gradient Module support
  • The Opacity Module support
  • The correct viewport rendering (BUG FIX)
  • The correct use element rendering (BUG FIX)

Changes in the TinyLine SVG 1.9

  • Programmer's Guide to TinyLine SVG API
  • The 3GPP SMIL Profile Animations support
  • The new renderer TinyLine 2D 1.9 based
  • The correct transparent PNG rendering (BUG FIX)
  • The correct text element bounds (BUG FIX)
  • The very simple SVG Node tree API close to what we have at TinyLine 2D 1.9.

Changes in the TinyLine SVG 1.8.2

  • The missing glyph and white space handling improved. The number of coordinate units on the 'em' square corrected. Several bugs fixed.
  • Better support for JPEG and PNG image formats. The images cashing is implemented.
  • The 'use' element handling corrected.
  • The GZIPInputStream updated to version 1.8.2

Changes in the TinyLine SVG 1.8

  • Precise and accurate SVG Tiny rendering
  • Conforming Dynamic SVGT Viewer.
  • Conforming Static SVGT Library SDK.
  • Bugs are fixed.

Changes in the TinyLine SVG 1.7

  • The 'switch' element is added.
  • The single thread processing model.
  • A new internal model is implemented for the future uDOM support.
  • The full support of animations and events.
  • The support of raster images embedded in SVG (64 encoded URI data stream).
  • Many bugs are fixed.

Changes in the TinyLine SVG 1.6

  • New high-class rendering.
  • An improved support of animations.
  • An improved support of events.

Changes in the TinyLine SVG 1.5 Beta

  • TinyLine now supports <use> element and SVG events.
  • The TinyLine 2D library is now a thread safe.
  • The TinyLine 2G graphics tree supports node cloning.
  • The SVG loader provides a dynamic way to load SVG fragments and incrementally update previously loaded SVG documents.
  • TinyLine GZIP for J2ME is included. It allows to read SVG gzipped files or streams on J2ME devices.
  • Java APIs for TinyLine SVG, TinyLine 2D and TinyLine GZIP are provided.
  • TinyLine SVG Viewers with source codes for Nokia Series 60 devices , J2ME MIDP 2.0, J2ME Personal Profile are provided.
  • The results of TinyLine 1.5 tested against the SVG Conformance Test Suite (Tiny) are included.

Changes in the TinyLine SVG 1.3 Beta

The major advances over the previous version 1.2 are:
  • Core classes of the TinyLine SVG now CLDC/MIDP based. It means that the TinyLine can run over virtually all J2ME profiles.
  • Java APIs for TinyLine SVG and TinyLine 2D are provided.
  • TinyLine SVG Viewers with source codes for J2ME MIDP 2.0 and J2ME Personal Profile are provided.
  • The results of TinyLine tested against the SVG Conformance Test Suite (Tiny) are included.

SVG Conformance Test results

Follow this link to see the results of TinyLine tested against the SVG Conformance Test Suite (Tiny).

Document Structure

TinyLine supports the <svg> , <title>, <desc> <defs> , <use> and <metadata> elements as defined in SVGT.
TinyLine supports the JPEG, PNG and GIF formats on the <image> element depending on which J2ME profile it is running.
The <switch> element is not supported.

Styling

TinyLine does not support CSS (Cascading Style Sheets).
In order to simplify parsing TinyLine uses presentation attributes and property inheritance rules.

Coordinate Systems, Transformations and Units

Coordinate systems in TinyLine are fixed point numbers as well as angles scales and other attributes. The finite useable coordinate range is defined by the scope of signed 16-bit integers. TinyLine supports 22.8 and 15.15 fixed point numbers.

TinyLine supports nesting of transformations. The types of transformations that are allowed are generic transformation matrices, or simple operations such as rotation, scaling, skewing, and translation.

Shapes

TinyLine supports all SVGT/SVGB path commands, except the elliptical arc curve command ("A"(absolute) and "a"(relative)).
It also supports the basic shapes (rectangles, circles, ellipses, lines, polylines, and polygons)

Text

TinyLine represents text with Unicode characters. It supports the SVGT <text> element.

Color

TinyLine supports colors defined by 'color' property in sRGB color space using '#FFFFFF' and '#FFF' notations , and 16 color keywords defined in HTML.

Fonts

In order to use fonts across platforms TinyLine supports SVG fonts with glyph outlines expressed using the "d" attribute on the <glyph> element.
TinyLine doesn't use system fonts.

Interactivity

SVG content can be interactive (i.e., responsive to user-initiated events) by utilizing SVG events.

Linking

TinyLine supports hyperlink activation from SVG content to other Web resources through the <a> element.

Animation

TinyLine supports the subset of SMIL 2.0 Basic Profile animations as it defined in SVG Tiny.

References

[Mobile SVG]
Mobile SVG Profiles: SVG Tiny and SVG Basic Tolga K. Capin, editor, W3C, W3C Candidate Recommendation 30 April 2002 See http://www.w3.org/TR/SVGMobile
[SMIL20]
Synchronized Multimedia Integration Language (SMIL 2.0) Specification.W3C Recommendation. Available at http://www.w3.org/TR/smil20/
[SVG 1.0]
Scalable Vector Graphics (SVG) 1.0 Specification, Jon Ferraiolo, editor, W3C, 9 September 2001 (Recommendation). See http://www.w3.org/TR/2001/REC-SVG-20010904/
[SVG 1.1/2.0 Requirements]
SVG 1.1/2.0 Requirements Document, Dean Jackson, editor, W3C, 3 August 2001. See http://www.w3.org/TR/SVG2Reqs
[SVG 1.1]
Scalable Vector Graphics (SVG) Version 1.1 Working Draft, Dean Jackson, editor, W3C, 15 February 2002. See http://www.w3.org/TR/2002/WD-SVG11-20020215/
© 2009 TinyLine. All rights reserved.