aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrDistanceFieldTextContext.cpp
Commit message (Collapse)AuthorAge
* Get gpudft support working in dm, gm, nanobench and bench_picturesGravatar jvanverth2014-11-07
| | | | | | | | | | | | Adds a new config to test distance field text. Clean up some flags and #defines to read "distance field text", not "distance field fonts" to be consistent with Chromium NOTREECHECKS=true Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b Review URL: https://codereview.chromium.org/699453005
* Revert of Get gpudft support working in dm, gm, nanobench and bench_pictures ↵Gravatar jvanverth2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:20001 of https://codereview.chromium.org/699453005/) Reason for revert: Not compiling in ANGLE build Original issue's description: > Get gpudft support working in dm, gm, nanobench and bench_pictures > > Adds a new config to test distance field text. > Clean up some flags and #defines to read "distance field text", > not "distance field fonts" to be consistent with Chromium > > NOTREECHECKS=true > > Committed: https://skia.googlesource.com/skia/+/06ba179838ba4fe187cf290750aeeb4a02a2960b TBR=bsalomon@google.com,mtklein@google.com,reed@google.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/707723005
* Get gpudft support working in dm, gm, nanobench and bench_picturesGravatar jvanverth2014-11-06
| | | | | | | | | | Adds a new config to test distance field text. Clean up some flags and #defines to read "distance field text", not "distance field fonts" to be consistent with Chromium NOTREECHECKS=true Review URL: https://codereview.chromium.org/699453005
* DFText: fix placement of glyphs when we fall back to pathsGravatar jvanverth2014-11-04
| | | | | | | | Rendering a glyph with a path wants to place it at the (sx, sy) we get as input to the method, but we add (dx, dy) for the clipRect check. Hence, we need to subtract that out before we render the path. Review URL: https://codereview.chromium.org/699283003
* Improve quality of distance field renderingGravatar jvanverth2014-11-03
| | | | | | | | | | - Update spacing of LODs to get better results scaling up to 256 - Remove unnecessary "bolding" from dftext - Add debug colors for dftext LODs BUG=skia:2933,skia:2935 Review URL: https://codereview.chromium.org/703463002
* Some distance field text optimizations.Gravatar jvanverth2014-10-31
| | | | | | | | | | - Add clipRect check - Remove creation of scalerContext to check for color fonts in canDraw() (no longer needed) BUG=skia:2933 Review URL: https://codereview.chromium.org/696503004
* Cleanup: Go with SkDebugf instead of GrPrintf.Gravatar tfarina2014-10-31
| | | | | | | | | | | Since GrPrintf is just defined to SkDebugf, we can go with the later directly. BUG=None TEST=None R=bsalomon@google.com Review URL: https://codereview.chromium.org/695663003
* Cleanup conversion that the new NDK compiler tries to over optimize.Gravatar djsollen2014-10-30
| | | | | | | This allows us to upgrade to NDK r10c as the dftext gm no longer fails when compiled with -O2. Review URL: https://codereview.chromium.org/690053002
* rename GrTextureDesc->GrSurfaceDesc, GrTextureFlags->GrSurfaceFlagsGravatar bsalomon2014-10-28
| | | | Review URL: https://codereview.chromium.org/682223002
* Distance field path optimizations and clean up.Gravatar jvanverth2014-10-28
| | | | | | | | Adds the following: - Use cached geometry processor rather than recreating all the time. - Use context's quad index buffer. Review URL: https://codereview.chromium.org/683923002
* Allocate only the vertices we need for text.Gravatar jvanverth2014-10-23
| | | | | | | | | | This restructures the vertex allocation for text rendering to compute the max number of vertices we would need for a line of text, and then only allocate that much. If this number exceeds the quad index limit, then it will allocate for the max number of quads, and reallocate for the rest later. Review URL: https://codereview.chromium.org/663423003
* Add color emoji fallback for distance field text.Gravatar jvanverth2014-10-20
| | | | | | BUG=skia:3033 Review URL: https://codereview.chromium.org/670533002
* When rendering df fonts, pass drawText() down to drawPosText().Gravatar jvanverth2014-10-20
| | | | | | | | First pass at getting color emoji working for distance fields. BUG=skia:3033 Review URL: https://codereview.chromium.org/660853003
* Revert of Change drawText() to generate positions and send to drawPosText() ↵Gravatar jvanverth2014-10-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #4 id:60001 of https://codereview.chromium.org/653133004/) Reason for revert: A large number of GMs on Ubuntu12 are failing. The text layout on GPU is visibly different than that for 8888. Original issue's description: > Change drawText() to generate positions and send to drawPosText() > > The idea here is to have a central place that does layout for drawText(), and > then always feed text through drawPosText(). This both makes all of the > GrTextContexts consistent in drawText() output, and does a better job of > stressing drawPosText(). > > Because of the effect of matrices on hinting and approximation error, the > generated text is not 100% identical to that produced by the raster pipeline. > > BUG=skia:2778 > > Committed: https://skia.googlesource.com/skia/+/7851a56895c9c076f73a835a7dd51d3c6180c16f TBR=cdalton.nvidia@gmail.com,bungeman@google.com,reed@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2778 Review URL: https://codereview.chromium.org/659993003
* Change drawText() to generate positions and send to drawPosText()Gravatar jvanverth2014-10-16
| | | | | | | | | | | | | | The idea here is to have a central place that does layout for drawText(), and then always feed text through drawPosText(). This both makes all of the GrTextContexts consistent in drawText() output, and does a better job of stressing drawPosText(). Because of the effect of matrices on hinting and approximation error, the generated text is not 100% identical to that produced by the raster pipeline. BUG=skia:2778 Review URL: https://codereview.chromium.org/653133004
* Flush text contexts before drawing text as pathGravatar bsalomon2014-10-14
| | | | | | BUG=416289 Review URL: https://codereview.chromium.org/636233008
* Change GrTextContext fallbacks to be a linked list chain.Gravatar jvanverth2014-10-14
| | | | | | | | | Preliminary work for getting color emoji working with distance field text. BUG=skia:2887 Review URL: https://codereview.chromium.org/650273003
* add gamma value to devicepropertiesGravatar reed2014-10-14
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/652273002
* Devirtualize read/write pixels on surface.Gravatar bsalomon2014-10-13
| | | | | | | | Consolidate read/write funcs in context. Remove support for reading pixels from a surface that's not a target. It's currently broken and neither used nor tested. Review URL: https://codereview.chromium.org/648863002
* Fix color emoji.Gravatar jvanverth2014-10-10
| | | | | | | | | | | | | | | Removes the GrMaskFormat and single atlas in GrTextStrike. Replaces it by storing the GrMaskFormat in each GrGlyph, and doing a lookup for the correct atlas based on that. Disables color glyph rendering in GrDistanceFieldTextContext for now. BUG=skia:2887 Committed: https://skia.googlesource.com/skia/+/bc92163ddfe957ad6ffbb02ac40e0ba75ff82216 Review URL: https://codereview.chromium.org/636183005
* Revert of Fix color emoji. (patchset #11 id:320001 of ↵Gravatar jvanverth2014-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/636183005/) Reason for revert: Crashing the Windows bots. Original issue's description: > Fix color emoji. > > Removes the GrMaskFormat and single atlas in GrTextStrike. > Replaces it by storing the GrMaskFormat in each GrGlyph, and > doing a lookup for the correct atlas based on that. > > Disables color glyph rendering in GrDistanceFieldTextContext > for now. > > BUG=skia:2887 > > Committed: https://skia.googlesource.com/skia/+/bc92163ddfe957ad6ffbb02ac40e0ba75ff82216 TBR=robertphillips@google.com,bungeman@google.com,reed@google.com,bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia:2887 Review URL: https://codereview.chromium.org/640413004
* Fix color emoji.Gravatar jvanverth2014-10-10
| | | | | | | | | | | | | Removes the GrMaskFormat and single atlas in GrTextStrike. Replaces it by storing the GrMaskFormat in each GrGlyph, and doing a lookup for the correct atlas based on that. Disables color glyph rendering in GrDistanceFieldTextContext for now. BUG=skia:2887 Review URL: https://codereview.chromium.org/636183005
* Rearrange code in TextContexts to be more consistent and match style guide.Gravatar jvanverth2014-10-08
| | | | Review URL: https://codereview.chromium.org/641613003
* add SkRect::joinNonEmptyArg for faster unioningGravatar reed2014-10-01
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/619853005
* Make "priv" classes for GrTexure and GrSurface.Gravatar bsalomon2014-09-30
| | | | | | | | R=robertphillips@google.com, egdaniel@google.com, joshualitt@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/596053002
* Revert of Make "priv" classes for GrTexure and GrSurface. (patchset #9 ↵Gravatar robertphillips2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | id:260001 of https://codereview.chromium.org/596053002/) Reason for revert: Breaking the Chrome builds with: lib/libcc.so: error: undefined reference to 'GrAutoScratchTexture::detach()' (http://108.170.220.120:10117/builders/Canary-Chrome-Ubuntu13.10-Ninja-x86_64-DRT/builds/2990/steps/Retry_BuildContentShell_1/logs/stdio) Original issue's description: > Make "priv" classes for GrTexure and GrSurface. R=egdaniel@google.com, joshualitt@google.com, bsalomon@google.com TBR=bsalomon@google.com, egdaniel@google.com, joshualitt@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/618733002
* Make "priv" classes for GrTexure and GrSurface.Gravatar bsalomon2014-09-29
| | | | | | | | R=robertphillips@google.com, egdaniel@google.com, joshualitt@google.com, joshualitt@chromium.org Author: bsalomon@google.com Review URL: https://codereview.chromium.org/596053002
* Revert of Revert of Fix SkTextBlob offset semantics. (patchset #1 id:1 of ↵Gravatar fmalita2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/609223003/) Reason for revert: Re-landing: Chromium-side fix to be landed with the roll (https://codereview.chromium.org/607853003/) Original issue's description: > Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of https://codereview.chromium.org/605533002/) > > Reason for revert: > Breaking the Chrome builds with the error: > > [14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions > [14:54:14.318022] virtual void drawPosText(const SkDraw& draw, > [14:54:14.318082] ^ > > Original issue's description: > > Fix SkTextBlob offset semantics. > > > > Implement proper x/y drawTextBlob() handling by plumbing a > > drawPosText() offset parameter (to act as an additional glyph pos > > translation) throughout the device layer. > > > > The new offset superceeds the existing constY, with a minor semantic > > tweak: whereas previous implementations were ignoring constY in 2D > > positioning mode (scalarsPerGlyph == 2), now the offset is always > > observed, in all positioning modes. We can do this because existing > > drawPosText() clients always pass constY == 0 for full positioning mode. > > > > R=reed@google.com, jvanverth@google.com, robertphillips@google.com > > > > Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2 > > TBR=jvanverth@google.com,reed@google.com,bsalomon@google.com,fmalita@chromium.org > NOTREECHECKS=true > NOTRY=true > > Committed: https://skia.googlesource.com/skia/+/d46b8d2bab7cfba8458432248e1568ac377429e9 R=jvanverth@google.com, reed@google.com, bsalomon@google.com, robertphillips@google.com TBR=bsalomon@google.com, jvanverth@google.com, reed@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/607413003
* Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of ↵Gravatar robertphillips2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/605533002/) Reason for revert: Breaking the Chrome builds with the error: [14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions [14:54:14.318022] virtual void drawPosText(const SkDraw& draw, [14:54:14.318082] ^ Original issue's description: > Fix SkTextBlob offset semantics. > > Implement proper x/y drawTextBlob() handling by plumbing a > drawPosText() offset parameter (to act as an additional glyph pos > translation) throughout the device layer. > > The new offset superceeds the existing constY, with a minor semantic > tweak: whereas previous implementations were ignoring constY in 2D > positioning mode (scalarsPerGlyph == 2), now the offset is always > observed, in all positioning modes. We can do this because existing > drawPosText() clients always pass constY == 0 for full positioning mode. > > R=reed@google.com, jvanverth@google.com, robertphillips@google.com > > Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2 R=jvanverth@google.com, reed@google.com, bsalomon@google.com, fmalita@chromium.org TBR=bsalomon@google.com, fmalita@chromium.org, jvanverth@google.com, reed@google.com NOTREECHECKS=true NOTRY=true Author: robertphillips@google.com Review URL: https://codereview.chromium.org/609223003
* Fix SkTextBlob offset semantics.Gravatar Florin Malita2014-09-26
| | | | | | | | | | | | | | | | Implement proper x/y drawTextBlob() handling by plumbing a drawPosText() offset parameter (to act as an additional glyph pos translation) throughout the device layer. The new offset superceeds the existing constY, with a minor semantic tweak: whereas previous implementations were ignoring constY in 2D positioning mode (scalarsPerGlyph == 2), now the offset is always observed, in all positioning modes. We can do this because existing drawPosText() clients always pass constY == 0 for full positioning mode. R=reed@google.com, jvanverth@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/605533002
* Patch to create a distinct geometry processor. The vast majority of this patchGravatar joshualitt2014-09-23
| | | | | | | | | | | | | is just a rename. The meat is in GrGeometryProcessor, GrProcessor, GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory, GrProcessUnitTestFactory, and the builders BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/582963002
* Fix SDF font positions when using global scale.Gravatar jvanverth2014-09-22
| | | | | | | | | | | | Also fixes a crash in the dftext GM when using SampleApp, and adds new test case in dftext. BUG=skia:2928 R=joshualitt@google.com, egdaniel@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/588223002
* Introduce Props to surface (patchset #27 id:520001 of ↵Gravatar reed2014-09-22
| | | | | | | | | | | | https://codereview.chromium.org/551463004/)" This reverts commit 29c857d0f3a1cb837f73406eeb6ba9771879b5e7. TBR= Author: reed@google.com Review URL: https://codereview.chromium.org/588143004
* Revert of introduce Props to surface (patchset #27 id:520001 of ↵Gravatar reed2014-09-21
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/551463004/) Reason for revert: Broke call site in WebKit Original issue's description: > introduce Props to surface (work in progress) > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/3716fd067a5621bb94a6cb08d72afec8bf3aceda R=robertphillips@google.com, bsalomon@google.com, jvanverth@google.com, bungeman@google.com, fmalita@google.com, vangelis@chromium.org, reed@google.com TBR=bsalomon@google.com, bungeman@google.com, fmalita@google.com, jvanverth@google.com, reed@google.com, robertphillips@google.com, vangelis@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@chromium.org Review URL: https://codereview.chromium.org/583773004
* introduce Props to surface (work in progress)Gravatar reed2014-09-21
| | | | | | | | | BUG=skia: R=robertphillips@google.com, bsalomon@google.com, jvanverth@google.com, bungeman@google.com, fmalita@google.com, vangelis@chromium.org, reed@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/551463004
* Don't try to add large glyphs to the font atlas.Gravatar jvanverth2014-09-19
| | | | | | | | | | | When the glyph data is invalid we can try to allocate a ridiculous amount of memory. This adds a check to cover such cases. BUG=414581 R=egdaniel@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/585853003
* Fix scaling issue with distance field text.Gravatar jvanverth2014-09-16
| | | | | | | | | | | | | Picks the correct distance field size based on both the text size and the max matrix scale. Adjusts the matrix scale if non-unity. Also adds GM for verifying proper distance field scaling. BUG=skia:2928 R=bsalomon@google.com, joshualitt@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/568843002
* BUG=skia:Gravatar joshualitt2014-09-15
| | | | | | | | R=bsalomon@google.com, egdaniel@google.com, jvanverth@google.com, robertphillips@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/543623004
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Revert Jim's CL.Gravatar Mike Klein2014-08-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/517123005
* Restore text vertex buffer alloc and other optimizations.Gravatar jvanverth2014-08-28
| | | | | | | | | | | | Modifies the fontcache GM to ensure that the font cache is forced to flush. Committed: https://skia.googlesource.com/skia/+/9c3d24b9d1ba3d955094ff0cb1ba2d11e1c1adca R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/466363009
* Make setVertexAttribs in GrDrawState take a stride parameter.Gravatar egdaniel2014-08-28
| | | | | | | | | | | | BUG=skia: Committed: https://skia.googlesource.com/skia/+/af013bf8afc4c77ab8ff230f536e2ade973427fa R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/511593004
* Revert of Restore text alloc optimizations. (patchset #4 of ↵Gravatar djsollen2014-08-27
| | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/466363009/) Reason for revert: GM failures on http://108.170.220.120:10115/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Release/builds/1867/ Original issue's description: > Restore text vertex buffer alloc and other optimizations. > > Modifies the fontcache GM to ensure that the font cache is forced to flush. > > Committed: https://skia.googlesource.com/skia/+/9c3d24b9d1ba3d955094ff0cb1ba2d11e1c1adca R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com NOTREECHECKS=true NOTRY=true Author: djsollen@google.com Review URL: https://codereview.chromium.org/510103003
* Revert of Make setVertexAttribs in GrDrawState take a stride parameter. ↵Gravatar djsollen2014-08-27
| | | | | | | | | | | | | | | | | | | | | | | | (patchset #5 of https://codereview.chromium.org/511593004/) Reason for revert: GM failures on http://108.170.220.120:10115/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Release/builds/1867/ Original issue's description: > Make setVertexAttribs in GrDrawState take a stride parameter. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/af013bf8afc4c77ab8ff230f536e2ade973427fa R=bsalomon@google.com, egdaniel@google.com TBR=bsalomon@google.com, egdaniel@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: djsollen@google.com Review URL: https://codereview.chromium.org/502533004
* Revert of Possible fix to Restore text vertex buffer alloc and other ↵Gravatar djsollen2014-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | optimizations. (patchset #1 of https://codereview.chromium.org/513863004/) Reason for revert: GM failures on http://108.170.220.120:10115/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Release/builds/1867/ Original issue's description: > Possible fix to Restore text vertex buffer alloc and other optimizations. > NOTRY=True > NOTREECHECKS=True > TBR=jvanverth@google.com > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/85f94844fc31eddee9cb507377cb3f74c1ed34f2 R=jvanverth@google.com, egdaniel@google.com TBR=egdaniel@google.com, jvanverth@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: djsollen@google.com Review URL: https://codereview.chromium.org/516613002
* Possible fix to Restore text vertex buffer alloc and other optimizations.Gravatar egdaniel2014-08-27
| | | | | | | | | | | | | NOTRY=True NOTREECHECKS=True R=jvanverth@google.com TBR=jvanverth@google.com BUG=skia: Author: egdaniel@google.com Review URL: https://codereview.chromium.org/513863004
* Make setVertexAttribs in GrDrawState take a stride parameter.Gravatar egdaniel2014-08-27
| | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/511593004
* Restore text vertex buffer alloc and other optimizations.Gravatar jvanverth2014-08-27
| | | | | | | | | | Modifies the fontcache GM to ensure that the font cache is forced to flush. R=bsalomon@google.com, robertphillips@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/466363009
* Add an opaqueness hint to GrDrawState.Gravatar bsalomon2014-08-08
| | | | | | | | | | Check it when deciding whether to combine draw states. R=egdaniel@google.com, robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/446953002
* Don't compare constant color and coverage between GrDrawStates when they are ↵Gravatar bsalomon2014-08-05
| | | | | | | | | | provided by vertex attributes. R=egdaniel@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/439273007