No description, website, or topics provided.
Clone or download
fREEDtICE Merge branch 'dev'
update compile to implemation
Latest commit ccba246 Apr 4, 2018



GCanvas is a cross-platform rendering engine for mobile devices developed by Taobao. It is written with C++ based on OpenGL ES, so it can provide high performance 2D/WebGL rendering capabilities for Javascript runtime. It also has browser-like canvas APIs, so it's very convenient and flexiable for use, especially for web developers.

Supported operating systems are Android 4.0+ (API 14) and iOS 8.0+.


  • Cross-platform, support popular iOS and Android.
  • High performance, accelerate graphic draw by OpenGL ES.
  • Provide javascript runtime, such as Weex and ReactNative. convenient to use Javascript API like HTML canvas.
  • Scalable Architecture, easy to implement a GCanvas bridge by yourself following the guide Custom Native Bridge .
  • Small size.


See the Introduction to GCanvas for a detailed introduction to GCanvas.

Getting Started


Follow Weex Setup Guide to integrate GCanvas on Weex


Follow ReactNative Setup Guide to integrate GCanvas on ReactNative.


Try our Playground. GCanvas has browser-like canvas APIs, so almost all of the APIs are exactly same as HTML5 canvas. At this moment, we have already supported 90% of 2D APIs and 99% of WebGL APIs. You can find out those informations in 2D APIs and WebGL APIs.


Check Documentation for more information.


We take Weex as example, code snippet of context 2d using GCanvas.

import { enable, WeexBridge, Image as GImage } from "../../../../js/src/index.js";

var gcanvas = enable(this.$refs.canvas_holder, {bridge: WeexBridge});
var ctx = gcanvas.getContext("2d");
ctx.fillStyle = 'red';
ctx.fillRect(0, 0, 100, 100);

ctx.fillStyle = 'black';
ctx.fillRect(100, 100, 100, 100);
ctx.fillRect(25, 210, 700, 5);

ctx.arc(450, 200, 100, 0, Math.PI * 2, true);

var image = new GImage();
image.src = '';
image.onload = function(){
  ctx.drawImage(image, 100, 300);

Built With

  • Freetype - Used for font rendering on Android

Open Issues

If you encounter a bug with GCanvas we would like to hear about it. Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. It’s helpful if you include the version of GCanvas and OS you’re using. Please include a stack trace and reduced repro case when appropriate, too.


Please read CONTRIBUTING for details on our code of conduct, and the process for submitting pull requests to us.


GCanvas Open Source Team


This project is licensed under the Apache License - see the LICENSE file for details