SG7 / CCSVG

Display SVG images on iOS using Cocos2D

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CCSVG - Display SVG images on iOS using Cocos2D

Overview

CCSVG provides an API for loading, displaying and animating SVG images on iOS using Cocos2D.

// load an svg image
CCSVGSource *source;
source = [CCSVGSource sourceWithFile:@"player_idle.svg"];

// display an svg image
CCSVGSprite *sprite;
sprite = [CCSVGSprite spriteWithSource:source];
sprite.position = ccp(240,160);

// create an svg animation
CCSVGAnimation *animation;
animation = [CCSVGAnimation animationWithSourcesNamed:@"player_walk_%04d.svg" 
                                                count:2 
                                                delay:1.0/15.0];

// run the animation on the sprite
CCSVGAnimate *animate;
animate = [CCSVGAnimate actionWithSVGAnimation:animation];
[sprite runAction:[CCRepeatForever actionWithAction:animate]]; 

Benefits

SVG images are displayed as vector data, not textures. Each file is tesselated and cached in a vertex buffer object, so the peformance penalty of tesselating and uploading the geometry to OpenGL only happens once when the file is first loaded.

  • Resolution-independence.
  • Smaller file size.
  • Smaller memory footprint.
  • Faster load times.

Drawbacks

There is a significant performance penalty for using images with transparent fills or strokes (drawing them properly means turning on blending in OpenGL). Avoid them where possible.

  • Incomplete SVG support (see what is implemented in MonkVG).
  • Antialiasing requires multisampling to be enabled, which has a performance penalty.

Installation

git clone git@github.com:lukelutman/CCSVG.git
git submodule init
git submodule update

Dependencies

Resources

About

Display SVG images on iOS using Cocos2D

License:MIT License