aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrTextStrike.h
Commit message (Collapse)AuthorAge
* Move vertex buffer setup out of drawPackedGlyph().Gravatar jvanverth2014-07-25
| | | | | | | | | | | | This gets a very welcome ~10% speedup on my Mac. Committed: https://skia.googlesource.com/skia/+/1d38619389cc1100bd516b9acbf17b7bd42d33ce R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/414573002
* Replace use of GrTHashTable in GrFontCache with SkTDynamicHash.Gravatar jvanverth2014-07-22
| | | | | | | | | | | Searching the font cache for existing text strikes was showing up as a hotspot on Android. This change reduces that cost. R=bsalomon@google.com, robertphillips@google.com, mtklein@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/390103002
* Refactor SkGrFontScaler and SkGrFontKey into non-virtual versions.Gravatar jvanverth2014-07-11
| | | | | | | | | | | | | This is a pre-cleanup for another change, but has the side benefit of making the code simpler in general. No perf increase, despite removing virtual functions. R=bsalomon@google.com, egdaniel@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/385263002
* Rename GrAtlasMgr to GrAtlas (and other cleanup)Gravatar robertphillips2014-06-24
| | | | | | | | | | This CL also renames the old GrAtlas to ClientPlotUsage and moves it into the new GrAtlas. R=jvanverth@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/355673002
* Move GrIPoint16 to SkIPoint16 (and remove GrPoint.h)Gravatar robertphillips2014-06-02
| | | | | | | | R=bsalomon@google.com, reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/309683002
* Add CPU backing store for GrAtlas to reduce texture uploads.Gravatar commit-bot@chromium.org2014-05-14
| | | | | | | | | | | | | | | | | | This change creates a temporary copy of each GrPlot on the CPU side. As we add glyphs to a plot, a dirty rectangle is tracked, and just before we render text we upload all of the dirty areas to the atlas texture. Once a plot is nearly full, we assume that we may only be adding one or two glyphs before rendering, so we delete the CPU backing memory to save space, and upload directly. BUG=366225 R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/269423007 git-svn-id: http://skia.googlecode.com/svn/trunk@14729 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow GrFontCache::dump() in all builds.Gravatar commit-bot@chromium.org2014-05-14
| | | | | | | | | | | | In testing Chrome last week, I discovered that dump() works fine in Release builds, so there's no reason to restrict it to Developer. R=robertphillips@google.com, egdaniel@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/286803002 git-svn-id: http://skia.googlecode.com/svn/trunk@14728 2bbb7eff-a529-9590-31e7-b0007b416f81
* Distance field fixes for AndroidGravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | | | | - Expand glyph size by 2 on each side to compensate for bilerp lookup - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 - Fix blurriness on Adreno by using uv coords to compute gradient instead of st coords - Add faster version for uniform scale BUG=skia:2173 Committed: http://code.google.com/p/skia/source/detail?r=13955 R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/205343008 git-svn-id: http://skia.googlecode.com/svn/trunk@13958 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Distance field fixes for Android ↵Gravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/205343008/) Reason for revert: compile error at line 110 in GrDistanceFieldTextureEffect.cpp Original issue's description: > Distance field fixes for Android > - Expand glyph size by 2 on each side to compensate for bilerp lookup > - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 > - Fix blurriness on Adreno by using uv coords to compute gradient instead > of st coords > - Add faster version for uniform scale > > BUG=skia:2173 > > Committed: http://code.google.com/p/skia/source/detail?r=13955 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2173 Author: jvanverth@google.com Review URL: https://codereview.chromium.org/212953008 git-svn-id: http://skia.googlecode.com/svn/trunk@13956 2bbb7eff-a529-9590-31e7-b0007b416f81
* Distance field fixes for AndroidGravatar commit-bot@chromium.org2014-03-26
| | | | | | | | | | | | | | | | | - Expand glyph size by 2 on each side to compensate for bilerp lookup - Correct for Adreno tendency to drop entire tile if any pixel has divide-by-0 - Fix blurriness on Adreno by using uv coords to compute gradient instead of st coords - Add faster version for uniform scale BUG=skia:2173 R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/205343008 git-svn-id: http://skia.googlecode.com/svn/trunk@13955 2bbb7eff-a529-9590-31e7-b0007b416f81
* Enable use of distance fields via SkPaint flag.Gravatar commit-bot@chromium.org2014-03-11
| | | | | | | | | | | | | Now that distance field generation is fast enough to make it practical, this makes distances field fonts easily available to anyone who wants to try them out (i.e Chromium). BUG=skia:2173 R=reed@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/193163003 git-svn-id: http://skia.googlecode.com/svn/trunk@13741 2bbb7eff-a529-9590-31e7-b0007b416f81
* New approach for GPU font atlasGravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | | | | In the previous code, each GrTextStrike had exclusive access to one or more GrPlots in the texture atlas. This led to poor packing when only a few glyphs were used. This change allows GrTextStrikes to share GrPlots, thereby getting much better utilization of the entire texture. BUG=skia:2224 R=robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/177463003 git-svn-id: http://skia.googlecode.com/svn/trunk@13636 2bbb7eff-a529-9590-31e7-b0007b416f81
* Improved distance field samplingGravatar commit-bot@chromium.org2014-02-14
| | | | | | | | | | | | There are two different fixes here. First, it computes the distance value properly within the shader. Second, it handles anti-aliasing properly by doing a correction based on the gradient of the texture coordinates. R=bsalomon@google.com, reed@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/149853002 git-svn-id: http://skia.googlecode.com/svn/trunk@13461 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add GPU support for color bitmap fontsGravatar commit-bot@chromium.org2013-12-03
| | | | | | | | | | | BUG=skia:1869 R=bungeman@google.com, robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/99993002 git-svn-id: http://skia.googlecode.com/svn/trunk@12471 2bbb7eff-a529-9590-31e7-b0007b416f81
* Hook in rough distance field support for fontsGravatar jvanverth@google.com2013-11-11
| | | | | | | | R=bsalomon@google.com Review URL: https://codereview.chromium.org/41213003 git-svn-id: http://skia.googlecode.com/svn/trunk@12229 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up the GrTHashTable API.Gravatar commit-bot@chromium.org2013-10-27
| | | | | | | | | | | | | removeAt() and slowFindIndex() were only used by GrFontCache, and didn't really need to exist: they can be replaced by a simple remove() call. This new code should actually be faster; slowFindIndex() was O(N), and this should be O(lg N). BUG= R=bsalomon@google.com, jvanverth@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/43383006 git-svn-id: http://skia.googlecode.com/svn/trunk@11973 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrTHashCache -> GrTHashTableGravatar mtklein@google.com2013-10-21
| | | | | | | | | | | The class is Table, but the file's Cache. That's confusing. BUG= R=bsalomon@google.com Review URL: https://codereview.chromium.org/32523004 git-svn-id: http://skia.googlecode.com/svn/trunk@11898 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for blinking/corrupted text in Canvas 2D.Gravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | | | | | Ensure that we update the drawToken for a glyph's plot every time it is used, not just when the glyph is first added. BUG=303803 R=junov@chromium.org, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/26253003 git-svn-id: http://skia.googlecode.com/svn/trunk@11637 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support to dump font cache texture for debug purposesGravatar commit-bot@chromium.org2013-10-02
| | | | | | | | | | R=robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/25736002 git-svn-id: http://skia.googlecode.com/svn/trunk@11579 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-09-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@11513 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrAtlas cleanup: Split out GrPlot and GrAtlasGravatar commit-bot@chromium.org2013-09-27
| | | | | | | | | | | | This breaks up GrAtlas into the head of the list (GrAtlas) and the list elements (GrPlot). It also moves all of the GrPlot management code into GrAtlasMgr. It adds a simple pool allocator for GrPlots and removes use of GrPlotMgr. R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/24981004 git-svn-id: http://skia.googlecode.com/svn/trunk@11508 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrAtlas refactor: Replace GrMaskFormat usage in GrAtlas with GrPixelConfig.Gravatar commit-bot@chromium.org2013-09-26
| | | | | | | | | | | | | This gets the font-specific GrMaskFormat out of GrAtlas and replaces it with more generic configs, allowing GrAtlas to be used for other things. R=robertphillips@google.com Author: jvanverth@google.com Review URL: https://chromiumcodereview.appspot.com/24751003 git-svn-id: http://skia.googlecode.com/svn/trunk@11474 2bbb7eff-a529-9590-31e7-b0007b416f81
* First pass at font cache refactor: Create an atlas manager per textureGravatar commit-bot@chromium.org2013-09-26
| | | | | | | | | | | | | | This changes the AtlasMgr from a singleton class to one that is created per-texture. This is the first step in allowing us to create Atlases of other types (e.g., combine small icons into one big texture). R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://chromiumcodereview.appspot.com/24608002 git-svn-id: http://skia.googlecode.com/svn/trunk@11468 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace uses of GR_DEBUG by SK_DEBUG.Gravatar commit-bot@chromium.org2013-08-28
| | | | | | | | | | | BUG=None R=bsalomon@google.com, robertphillips@google.com Author: tfarina@chromium.org Review URL: https://chromiumcodereview.appspot.com/23137022 git-svn-id: http://skia.googlecode.com/svn/trunk@10978 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change Atlas recycling to track current flush count and recycle if Atlas not ↵Gravatar commit-bot@chromium.org2013-08-16
| | | | | | | | | | | | | used in current flush. BUG= R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://chromiumcodereview.appspot.com/23120004 git-svn-id: http://skia.googlecode.com/svn/trunk@10777 2bbb7eff-a529-9590-31e7-b0007b416f81
* GPU Font Cache improvements:Gravatar commit-bot@chromium.org2013-08-05
| | | | | | | | | | | | | | | - If a strike has multiple atlases, check all for room for a new glyph - Mark remaining atlases unused after a purge, then check for an unused atlas before purging (reduces TextContext flushes and ghosting) - Hide Atlas management a little better inside AtlasMgr R=robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://chromiumcodereview.appspot.com/21594005 git-svn-id: http://skia.googlecode.com/svn/trunk@10544 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2013-01-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move a bunch of headers from include/gpu to src/gpu. Delete some unused files.Gravatar bsalomon@google.com2011-10-20
Review URL: http://codereview.appspot.com/5304047/ git-svn-id: http://skia.googlecode.com/svn/trunk@2506 2bbb7eff-a529-9590-31e7-b0007b416f81