/QtSkia

Qt with skia

Primary LanguageC++MIT LicenseMIT

中文简体

QtSkia

github repo https://github.com/QtSkia/QtSkia

gitee mirror https://gitee.com/QtSkia/QtSkia

catalogue

Introduction

Skia

Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms. It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.

Skia is sponsored and managed by Google, but is available for use by anyone under the BSD Free Software License. While engineering of the core components is done by the Skia development team, we consider contributions from any source.

QtSkia

QtSkia is an open source 2D graphics library which integration skia with qt's render framework.

QtSkia provide connection with QWidget、QOpenGLWidget、QQuickWindow、QQuickItem。

Qt developer can import skia to qt easily。

CI Badge

Windows MacOS Ubuntu Android IOS
win-badge macos-badge ubuntu-badge android-badge ios-badge
License Release Download Issues Wiki
license-badge release-badge download-badge issues-badge wiki-badge

Feature show

Shapes

Bezier Curves

Translations and Rotations

Text Rendering

Discrete Path Effects

Composed Path Effects

Sum Path Effects

Shaders

QtSkia use example

QtSkia us example

Scheduled plan

  • code mirror
  • skia code mirror
  • 3rdparth mirror
  • auto sync upstream code
  • local script for fetch code
  • Compile and ci
  • specific compile flow with qmake
  • Windows platform compile.
  • MacOS compile
  • Linux compile
  • Android
  • effect
  • sample text,line
  • Skia inner effect
  • texture
  • Lottie
  • Qt Framework adapted
  1. Gui
  • QOpenGLWindow
  • QWindow
  • QVulkanWindow
  1. Widget
  • QWidget CPURaster
  • QOpenGLWidget
  1. Quick
  • QOuickWindow
  • QQuickItem
  • QQuickFrameBuffer
  1. Qt6 RHI
  • under construction
  • performance test
  • under construction

Build

dependency library

python 2

Qt 5.12.x 64-bit

Note:32bit/x86 arch, need the toolchain by google, QtSkia not suooprt,detail info can be found in: https://skia.org/user/build

windows

Compiler need vs2017 and about, clang-cl is better.

MacOS

under construction

Android

under construction

Linux

under construction

code download

  1. Downlaod QtSkia
git clone https://github.com/QtSkia/QtSkia.git

China user can use gitee mirror for speed up.

git clone https://gitee.com/QtSkia/QtSkia.git
  1. Download skia and 3rdparty

run script 'syncSkia' at root directory of QtSkia.

China user can use syncSkia-gitee replace for speed up from gitee mirror.

Windows platform click run syncSkia.bat, or termianl run:

cd QtSkia
syncSkia.bat

MacOS or linux platform, termianl run:

cd QtSkia
chmod a+x syncSkia.sh
./syncSkia.sh

skia and 3rdparty explain

skia origin site: https://skia.googlesource.com/skia

github mirror: https://github.com/google/skia

skia depend on many thrid library. (about 28+)

QtSkia provite mirror on github、gitee, detail on:

https://github.com/QtSkia

https://gitee.com/QtSkia

QtSkia use script auto sync these code from upstream on timer。

QtSkia not edit there code,just add github、gitee mirror support and compiler support.

compile

use QtCreator import QtSkia.pro

or run qt commandline:

qmake 
make

Code struct

directory descript
3rdparty skia and depency library
doc document
examples examples
QtSkia QtSkia
skiaBuild Qt qmake compile skia

Sponsor

If you feel the share content is good, treat the author a drink.

it's WeChat Pay and Alipay