From 942262fcb5d4cc35231d698df70e53a101fef679 Mon Sep 17 00:00:00 2001 From: jcgregorio Date: Mon, 5 Jan 2015 11:17:27 -0800 Subject: [PATCH] First set of minimal docs for the new Markdown server, which will eventually replace https://sites.google.com/site/skiadocs/. Design of the new Markdown server is documented here: https://github.com/google/skia-buildbot/blob/master/doc/README.md You can see the server up and running here: http://skiadocs.com:8000/ This is *reed because it adds a new top level directory to the skia repo. BUG=skia: Review URL: https://codereview.chromium.org/835083003 --- site/index.md | 22 +++++++++++ site/roles.md | 12 ++++++ site/roles.png | Bin 0 -> 32322 bytes site/user/api.md | 11 ++++++ site/user/download.md | 74 +++++++++++++++++++++++++++++++++++++ site/user/index.md | 20 ++++++++++ site/user/issue-tracker.md | 7 ++++ site/user/tips.md | 48 ++++++++++++++++++++++++ 8 files changed, 194 insertions(+) create mode 100644 site/index.md create mode 100644 site/roles.md create mode 100644 site/roles.png create mode 100644 site/user/api.md create mode 100644 site/user/download.md create mode 100644 site/user/index.md create mode 100644 site/user/issue-tracker.md create mode 100644 site/user/tips.md 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 0000000000000000000000000000000000000000..9c110688c97e14bc2dec11df7051aab02a8eb3ce GIT binary patch literal 32322 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%0ADBYPl`mY?^$gWHNqzng6zcVK(N;*{lf|mc} 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, ...); + +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. + +