diff --git a/site/index.md b/site/index.md new file mode 100644 index 0000000000..8fd7ea4a64 --- /dev/null +++ b/site/index.md @@ -0,0 +1,22 @@ +Overview +======== +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. + +Roadmap +------- +For a look at high level items we have on tap the next 6-12 months, view our +roadmap [here](https://docs.google.com/a/skia.org/document/d/1cjB8QBB6orRtvpDn2MHAr95K8I0QvVgyJfUq5zGjf1M). +Note it is a living document that changes based on the requirements of our users. + +Recent Highlights +----------------- +See a summary of recent changes to the library [here](https://docs.google.com/a/skia.org/document/d/1Q4-YN8wDY9Q3L7gkqOJmmCLM73dj3tr9epUHL1vMZm4). + diff --git a/site/roles.md b/site/roles.md new file mode 100644 index 0000000000..97d48cb1e5 --- /dev/null +++ b/site/roles.md @@ -0,0 +1,12 @@ +Project Roles +============= + +The Skia open source project includes individuals working in a variety of +roles. Anyone can view the code, use the Skia library, file bugs, and submit +patches. This page describes in detail the kinds of roles that interested +parties can assume. + +For more information on ways to get involved in Skia development, see the +[Contributing to Skia page](/dev/contrib/). + + ![roles.png](roles.png) diff --git a/site/roles.png b/site/roles.png new file mode 100644 index 0000000000..9c110688c9 Binary files /dev/null and b/site/roles.png differ diff --git a/site/user/api.md b/site/user/api.md new file mode 100644 index 0000000000..0b507b98cd --- /dev/null +++ b/site/user/api.md @@ -0,0 +1,11 @@ +API Overview & Doxygen Docs +=========================== + +See navigable API Overview here: + + [http://code.google.com/p/skia/wiki/APIOverview](http://code.google.com/p/skia/wiki/APIOverview) + +Autogenerated Doxygen docs are here: + + [http://chromium-skia-gm.commondatastorage.googleapis.com/doxygen/doxygen/html/index.html](http://chromium-skia-gm.commondatastorage.googleapis.com/doxygen/doxygen/html/index.html) + diff --git a/site/user/download.md b/site/user/download.md new file mode 100644 index 0000000000..7c7630a320 --- /dev/null +++ b/site/user/download.md @@ -0,0 +1,74 @@ +How to download Skia +==================== + +Install gclient and git +----------------------- + +Follow the instructions on +http://www.chromium.org/developers/how-tos/install-depot-tools to download +chromium's depot_tools (which includes gclient ). + +depot_tools will also install git on your system, if it wasn't installed +already. + + + +Configure git +------------- + + $ git config --global user.name "Your Name" + $ git config --global user.email you@example.com + +Download your tree +------------------ + + $ mkdir skia + $ cd skia + $ gclient config --name . --unmanaged https://skia.googlesource.com/skia.git + $ gclient sync + $ git checkout master + +At this point, you have everything you need to build and use Skia! If +you want to make changes, and possibly contribute them back to the Skia +project, read on... + +Making changes +-------------- + +First create a branch for your changes: + + $ git checkout --track origin/master -b my_feature master + +After making your changes, create a commit + + $ git add [file1] [file2] ... + $ git commit + +If your branch gets out of date, you will need to update it: + + $ git pull --rebase + $ gclient sync + +Uploading changes for review +---------------------------- + + $ git cl upload + +You may have to enter a Google Account username and password to authenticate +yourself to codereview.chromium.org. A free gmail account will do fine, or any +other type of Google account. It does not have to match the email address you +configured using git config --global user.email above, but it can. + +The command output should include a URL (similar to +https://codereview.chromium.org/111893004/ ) indicating where your changelist +can be reviewed. + +Once your change has received an LGTM ("looks good to me"), you can check the +"Commit" box on the codereview page and it will be committed on your behalf. + +Once your commit has gone in, you should delete the branch containing your +change: + + $ git checkout master + $ git branch -D my_feature + diff --git a/site/user/index.md b/site/user/index.md new file mode 100644 index 0000000000..5fb51e8898 --- /dev/null +++ b/site/user/index.md @@ -0,0 +1,20 @@ +User Documentation +================== + +If you want to write code that uses the Skia library, this is the place for you. + +The Skia graphics library can be used for drawing Text, Geometries, and Images: + + * 3x3 matrices w/ perspective + * antialiasing, transparency, filters + * shaders, xfermodes, maskfilters, patheffects + * subpixel text + +Device backends for Skia currently include: + + * Raster + * OpenGL + * PDF + * XPS + * Picture (for recording and then playing back into another Canvas) + diff --git a/site/user/issue-tracker.md b/site/user/issue-tracker.md new file mode 100644 index 0000000000..b822bd177e --- /dev/null +++ b/site/user/issue-tracker.md @@ -0,0 +1,7 @@ +Issue Tracker (bug database) +============================ + +The "Issue Tracker" is the bug database where we track all bug reports and +feature requests. + +You can find it at https://code.google.com/p/skia/issues/list diff --git a/site/user/tips.md b/site/user/tips.md new file mode 100644 index 0000000000..e76990b783 --- /dev/null +++ b/site/user/tips.md @@ -0,0 +1,48 @@ +Tips & FAQ +========== + +Tips and Tricks +--------------- + +### Bitmap Subsetting + +Taking a subset of a bitmap is effectively free - no pixels are copied or +memory is allocated. This allows Skia to offer an API that typically operates +on entire bitmaps; clients who want to operate on a subset of a bitmap can use +the following pattern, here being used to magnify a portion of an image with +drawBitmapNine(): + + SkBitmap subset; + bitmap.extractSubset(&subset, rect); + canvas->drawBitmapNine(subset, ...); + +FAQ +--- + +### Does Skia support HW acceleration? + + +There are two ways Skia can take advantage of HW. + +1. Subclass SkCanvas + +Since all drawing calls go through SkCanvas, those calls can be redirected to +a different graphics API. SkGLCanvas has been written to direct its drawing +calls to OpenGL. See src/gl/ + +2. Custom bottleneck routines + +There are sets of bottleneck routines inside the blits of Skia that can be +replace on a platform in order to take advantage of specific CPU features. One +such example is the NEON SIMD instructions on ARM v7 devices. See src/opts/ + +### Does Skia support Font hinting? + +Skia has a built-in font cache, but it does not know how to actual render font +files like TrueType? into its cache. For that it relies on the platform to +supply an instance of SkScalerContext?. This is Skia's abstract interface for +communicating with a font scaler engine. In src/ports you can see support +files for FreeType?, Mac OS X, and Windows GDI font engines. Other font +engines can easily be supported in a like manner. + +