Skip to content
forked from rhcad/vgcore

Cross-platform 2D vector drawing library using C++.

License

Notifications You must be signed in to change notification settings

wangzhengnan/vgcore

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TouchVGCore

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

Version License

Overview

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.

modules

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

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 ./build.sh to build ios/output/libTouchVGCore.a.

    • Type ./build.sh -arch arm64 to make iOS libraries for iOS 64-bit. Type ./build.sh clean to remove object files.

Build for Android platform on Mac, Linux or Windows.

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

    • MSYS is recommend on Windows.
    • The library libTouchVGCore.a will be outputed to android/output/armeabi.
    • Type ./build.sh -B to rebuild the native libraries.
  • Type ./build.sh 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 win\vc2010.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.

About

Cross-platform 2D vector drawing library using C++.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.6%
  • C 2.2%
  • Makefile 1.9%
  • Other 0.3%