Latest 1.0.65
License BSD
Platforms ios 5.0

A Cross-platform framework using C++ for 2D vector drawing frameworks such as vgios, vgandroid and vgwpf.



TouchVGCore contains the following cross-platform modules:

  • geom: Math and geometry module.
  • graph: 2D Graphics interface module using geom module.
  • gshape: 2D Shape module using geom module.
  • shape: 2D Shape module using geom, graph and gshape modules.
  • shapedoc: Shape document module using above modules.
  • jsonstorage: A storage adapter using rapidjson(a fast JSON parser/generator).
  • cmdbase: Base classes for deriving more drawing commands.
  • cmdbasic: Commands to draw basic shapes.
  • cmdmgr: Command manager module.
  • view: Interactive drawing kernel module.
  • export: SVG exportor module.
  • record: Undo/redo and shape record module.

VGShape contains only geom and gshape modules used for other rendering.


This is an open source BSD licensed project that is in active development. Contributors and sponsors are welcome.

It uses the following open source projects:

  • simple-svg (BSD license): A C++ header file for creating SVG files.
  • rapidjson (MIT license): A fast JSON parser/generator for C++ with both SAX/DOM style API.
  • Nano-SVG (zlib license): Simple stupid single-header-file SVG parser.
  • UTF8-CPP: A simple, portable and lightweight library for handling UTF-8 encoded strings.


Build for iOS platform on Mac OS X.

TouchVGCore is available on CocoaPods. Just add the following to your project Podfile:

pod 'TouchVGCore'

Alternatively, you can add the project to your workspace and build as one of the following methods:

  • Open ios/TouchVGCore/TouchVGCore.xcodeproj in Xcode, then build the library project.

  • Or cd the ‘ios’ folder of this project and type ./ to build ios/output/libTouchVGCore.a.
    • Type ./ -arch arm64 to make iOS libraries for iOS 64-bit. Type ./ clean to remove object files.

Build for Android platform on Mac, Linux or Windows.

  • Cd the ‘android’ folder of this project and type ./ to build with ndk-build.

    • MSYS is recommend on Windows.
    • The library libTouchVGCore.a will be outputed to android/output/armeabi.
    • Type ./ -B to rebuild the native libraries.
  • Type ./ APP_ABI=x86 to build for the x86 Emulator. The library will be outputed to android/output/x86.

Build for Windows platform with Visual Studio.

  • Open winvc2010.sln in Visual Studio 2010, then build the TouchVGCore library project (Win32 VC++ static library).

Build for more platforms and targets.

  • Cd the ‘core’ folder of this project and type make or make all install to generate libraries on Mac, Linux or Windows.

  • Type make java, make python or make csharp to generate libraries for another language applications using Java, Python or C#.

  • Type make clean java.clean python.clean to remove the program object files.

Latest podspec

    "name": "TouchVGCore",
    "version": "1.0.65",
    "summary": "Cross-platform vector drawing library using C++.",
    "homepage": "",
    "screenshots": "",
    "license": {
        "type": "BSD",
        "file": "LICENSE"
    "authors": {
        "Zhang Yungui": "[email protected]"
    "social_media_url": "",
    "platforms": {
        "ios": "5.0"
    "source": {
        "git": "",
        "tag": "v1.0.65"
    "source_files": [
    "public_header_files": "core/include/**/*.h",
    "requires_arc": false,
    "xcconfig": {
        "CLANG_CXX_LANGUAGE_STANDARD": "gnu++11",
        "CLANG_CXX_LIBRARY": "libc++"

Pin It on Pinterest

Share This