Commit Graph

9046 Commits

Author SHA1 Message Date
Michael Ludwig
8137f3c862 Revert "Add clamp to border wrap mode to gpu"
This reverts commit f49a5785f3.

Reason for revert: clamp-to-border in metal not available on iOS

Original change's description:
> Add clamp to border wrap mode to gpu
> 
> Bug: skia:
> Change-Id: I286163cdea4fa8f7e6a876baaa11aa3dacd4f2ff
> Reviewed-on: https://skia-review.googlesource.com/c/175244
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,ethannicholas@google.com,michaelludwig@google.com

Change-Id: I01ef28d9c2fbf6c6dcd82d9aac193ff102d60151
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/175988
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2018-12-10 15:14:48 +00:00
Brian Salomon
0a7e58f4c9 Add glTexParameterf[v] to GrGLInterface
Change-Id: Icd1f2a84f76cedfdb9dfd358e57e0fbc6cae49cb
Reviewed-on: https://skia-review.googlesource.com/c/175828
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2018-12-10 14:50:23 +00:00
Michael Ludwig
f49a5785f3 Add clamp to border wrap mode to gpu
Bug: skia:
Change-Id: I286163cdea4fa8f7e6a876baaa11aa3dacd4f2ff
Reviewed-on: https://skia-review.googlesource.com/c/175244
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2018-12-10 14:45:48 +00:00
Brian Osman
f5bbf66eb4 Finish removing sample shading support
Chrome's initialization of the function pointer is gone:
https://chromium-review.googlesource.com/c/chromium/src/+/1366758

Bug: skia:
Change-Id: I025db12fbf8cfbcaee580b3494bd56e41b8fd325
Reviewed-on: https://skia-review.googlesource.com/c/175982
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-12-10 14:28:19 +00:00
Mike Reed
4037a18e5d Revert "Convert bitmap device drawing to SkFont removing all LEGACY calls"
This reverts commit 85a216ce89.

Reason for revert: broke some svg layout tests?

https://ci.chromium.org/p/chromium/builders/luci.chromium.try/mac_chromium_rel_ng/203829

Original change's description:
> Convert bitmap device drawing to SkFont removing all LEGACY calls
> 
> Change-Id: I096042a63395f361f758306993cdbb2621937aef
> Reviewed-on: https://skia-review.googlesource.com/c/175840
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=herb@google.com,reed@google.com

Change-Id: Ia88e22d4dcbdfcba01febd7378a2f6bbda235644
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/175831
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-08 14:01:54 +00:00
Mike Reed
4a6a4acab2 remove uncalled onDrawText virtuals from base class
... waiting on android cl to remove overrides

Bug: skia:
Change-Id: I3375ad251fa6844cdd0511eafc6133a758a3cef6
Reviewed-on: https://skia-review.googlesource.com/c/175582
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-07 22:14:20 +00:00
Herb Derby
85a216ce89 Convert bitmap device drawing to SkFont removing all LEGACY calls
Change-Id: I096042a63395f361f758306993cdbb2621937aef
Reviewed-on: https://skia-review.googlesource.com/c/175840
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-12-07 22:01:49 +00:00
Herb Derby
95e1760a78 Make SkGlyphRun use SkFont instead of SkPaint
Change-Id: I5f34857a21deac418eaaeb19c776b2148b7f0737
Reviewed-on: https://skia-review.googlesource.com/c/175460
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2018-12-07 20:13:38 +00:00
Jim Van Verth
386e6ce287 Remove deprecated YUVA interface
Bug: skia:7903
Change-Id: I142bcd8bfaf1d9fbdc515cc610b6c778d317a798
Reviewed-on: https://skia-review.googlesource.com/c/175720
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-12-07 18:30:42 +00:00
Greg Daniel
d207345456 Add cap to number of oplists we execute before flushing to the gpu.
This fixes a crash we saw when we switch vulkan copies as draws to creating
their own secondary command buffer. The crash came from the perf blendmode
tests when using an advanced blend mode. They would do 1000 draws which forced
us into creating 2000 command buffers (since the dst copies and the normal draws
each used them). I tested without the copies as draws change and just increasing
the total number of draws we do and was able to repro the crash.

Besides fixing the above OOM crash, I am also seeing a 5-10% perf gain on the
blendmode micro benches which is nice

Bug: skia:
Change-Id: I9266ea0ba02a755f54dabd4ee804963ab0c9b684
Reviewed-on: https://skia-review.googlesource.com/c/175436
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-12-07 17:57:07 +00:00
Brian Salomon
967df200bd Deuninstantiate
Uninstantiated: a state of not being instantiated.

Deinstantiate: transition from instantiated to uninstantiated state.

Change-Id: Id7b6b295267674a9915f95105d73fabfcc3555de
Reviewed-on: https://skia-review.googlesource.com/c/175586
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-07 16:54:52 +00:00
Brian Osman
a63593a10c Remove sample shading and dest color override
Both of these features are unused (though Chrome still installs a GL
function in the interface, so the function pointer needs to stick around
until that's removed).

Bug: skia:
Change-Id: Id061e83042b0dd5f583a850de182c29cd27fab1f
Reviewed-on: https://skia-review.googlesource.com/c/175423
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-12-07 15:46:12 +00:00
Mike Reed
bb786b46cf guard paint's breaktext -- trying to remove it
... adding guard to google3

Bug: skia:
Change-Id: I23a4b0a60545aff1a16d40ed02ad34c1a9262839
Reviewed-on: https://skia-review.googlesource.com/c/175433
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-12-07 13:15:12 +00:00
Mike Reed
158df43c2d hide non-blob versions of getTextIntercepts
likely will move this to SkFont soon

Bug: skia:
Change-Id: I53a6d9114c9e8768a50951e96284d10bda83285b
Reviewed-on: https://skia-review.googlesource.com/c/175434
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-07 12:59:12 +00:00
Sergey Ulanov
f3babcd0af Reland "Add SkFontMgr implementation for Fuchsia"
This is a reland of 309f1deddf

PS2 excludes the new file from Google3 build.

Original change's description:
> Add SkFontMgr implementation for Fuchsia
>
> The new SkFontMgr implementation will be used by Flutter and Chromium on
> Fuchsia.
>
> Change-Id: Ibd60a622282556e8557058e92fe865857f7024f9
> Reviewed-on: https://skia-review.googlesource.com/c/173800
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

Change-Id: I1ea948b644dee4414b7a12a4b354f0a61a5e47ea
Reviewed-on: https://skia-review.googlesource.com/c/175431
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-12-07 01:47:05 +00:00
Mike Reed
e6b5b710fc Revert "Add SkFontMgr implementation for Fuchsia"
This reverts commit 309f1deddf.

Reason for revert: breaks compile in google3

In file included from third_party/skia/HEAD/src/ports/SkFontMgr_fuchsia.cpp:8:
third_party/skia/HEAD/include/ports/SkFontMgr_fuchsia.h:11:10: fatal error: 'fuchsia/fonts/cpp/fidl.h' file not found
#include <fuchsia/fonts/cpp/fidl.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~

Original change's description:
> Add SkFontMgr implementation for Fuchsia
> 
> The new SkFontMgr implementation will be used by Flutter and Chromium on
> Fuchsia.
> 
> Change-Id: Ibd60a622282556e8557058e92fe865857f7024f9
> Reviewed-on: https://skia-review.googlesource.com/c/173800
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,bungeman@google.com,reed@google.com,sergeyu@chromium.org

Change-Id: Ieae0ba4b07677bee0481c3183c3835091831c477
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/175430
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-07 00:29:22 +00:00
Sergey Ulanov
309f1deddf Add SkFontMgr implementation for Fuchsia
The new SkFontMgr implementation will be used by Flutter and Chromium on
Fuchsia.

Change-Id: Ibd60a622282556e8557058e92fe865857f7024f9
Reviewed-on: https://skia-review.googlesource.com/c/173800
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-12-06 23:32:42 +00:00
Mike Reed
2bf4339592 Revert "remove SkPaint breakText, use SkFont instead (or don't call it)"
This reverts commit b17f5fd618.

Reason for revert: googe3 still uses this :(

Original change's description:
> remove SkPaint breakText, use SkFont instead (or don't call it)
> 
> Bug: skia:
> Change-Id: I906b8ea70be1f70043b77ca32cc214d15c256967
> Reviewed-on: https://skia-review.googlesource.com/c/175254
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=caryclark@google.com,reed@google.com,caryclark@skia.org

Change-Id: Ifcb1bcecd92fef76b0dc92ee8d8d3644f763136f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/175429
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-06 23:06:03 +00:00
Mike Reed
4e336e33d7 Move all glyphsToUnichars to a single impl (rely on typeface)
- make it private in SkFont ('cause we hate this idea)
- remove from SkPaint as soon as we update callers

Bug: skia:8600
Change-Id: I8382b34b50b549d76ae4e849287994c4a8e1be87
Reviewed-on: https://skia-review.googlesource.com/c/175427
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-06 22:48:52 +00:00
Mike Reed
704a3429e6 Abandon onDrawText and its variants, turn everything into textblobs
Follow-ups assuming this sticks:
- remove client overrides, so we can remove the (empty) base class virtuals
- mark as obsolete the .skp enums for these entrypoints, and note date
- remove glyphrunlist helpers that now may not have any callers
- remove DrawCommands related to these entrypoints

Bug: skia:
Change-Id: I44b4e6ef3bee61911e77b9b2ab73f82c0817536a
Reviewed-on: https://skia-review.googlesource.com/c/175240
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2018-12-06 21:54:20 +00:00
Brian Salomon
246bc3d6cb Revert "Revert "Use unnormalized coords all the way through with GL_TEXTURE_RECTANGLE textures.""
This reverts commit 47be94abd1.

Change-Id: I37d3c727ded6501b143381d46d3b00faad3afd75
Reviewed-on: https://skia-review.googlesource.com/c/175421
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-06 21:12:09 +00:00
Mike Reed
efb518d7e8 more simple makers for textblobs
To aid in the transition away from drawText, drawPosText, etc.
... see https://skia-review.googlesource.com/c/skia/+/175240

Definitely need to have a follow-on discussion about tradeoffs for the
various positioning backends.

Bug: skia:
Change-Id: I236e151f6604d868dc18f98503c371f41593ec6e
Reviewed-on: https://skia-review.googlesource.com/c/175248
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-12-06 19:01:23 +00:00
Mike Reed
b17f5fd618 remove SkPaint breakText, use SkFont instead (or don't call it)
Bug: skia:
Change-Id: I906b8ea70be1f70043b77ca32cc214d15c256967
Reviewed-on: https://skia-review.googlesource.com/c/175254
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-06 18:25:07 +00:00
Brian Osman
d3e7130dc9 Add a hash of all vertex attributes to the GrProgramDesc key
Recent work to dynamically switch the CPU type of the color attribute
exposed this problem - we were ignoring the attribute types, and getting
cache hits on incorrect GrProgram objects with stale layout information.

This fixes GMs in configs that may use F16 colors (eg glenarrow).

Bug: skia:
Change-Id: Ic87c47601c26e53c2173713a6cf14d209af8e246
Reviewed-on: https://skia-review.googlesource.com/c/175243
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-12-06 17:28:37 +00:00
Brian Salomon
9cadc314b6 Reland "Bypass interval tracking and assignment of read-only texures in GrResourceAllocator."
This is a reland of 1b04794234

Original change's description:
> Bypass interval tracking and assignment of read-only texures in GrResourceAllocator.
> 
> Bug: skia:8509
> 
> Change-Id: Idecf3a5335945c9ff21f27cd3f7887125214d02d
> Reviewed-on: https://skia-review.googlesource.com/c/174592
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

Bug: skia:8509
Change-Id: I26eaf9606e2b9c238e40a230a8eda15e97400515
Reviewed-on: https://skia-review.googlesource.com/c/175251
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-06 16:33:02 +00:00
Brian Salomon
47be94abd1 Revert "Use unnormalized coords all the way through with GL_TEXTURE_RECTANGLE textures."
This reverts commit 10273c1d5f.

Reason for revert: bad gms

Original change's description:
> Use unnormalized coords all the way through with GL_TEXTURE_RECTANGLE textures.
> 
> We used to unnormalize them in the shader via SkSL.
> 
> This allows us to support GL_TEXTURE_RECTANGLE without having textureSize()
> available in GLSL.
> 
> Change-Id: Ibe63a302228811933ef000251db4cad9aaf4f2ea
> Reviewed-on: https://skia-review.googlesource.com/c/174068
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com

Change-Id: I9bf38e1040578becba28ac8cccd81e2af2844278
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/175252
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-06 15:50:36 +00:00
Jim Van Verth
69e5785d9f Add RG_88 texture format
Bug: skia:7903
Change-Id: I69b65fc1cfcc2cc5045bb3b75395f9a256ade278
Reviewed-on: https://skia-review.googlesource.com/c/172979
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2018-12-06 15:36:31 +00:00
Brian Salomon
c67c31ced1 Revert "Revert "Mark wrapped textures imported into SkImages as "read only".""
This reverts commit ff4ccaa9fc.

Bug: skia:8509
Change-Id: If4a059d6e6e412ec1d6be2c70663d59c362e91d2
Reviewed-on: https://skia-review.googlesource.com/c/175249
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-06 15:34:31 +00:00
Cary Clark
3e73dcf24b fix bookmaker
Move some documentation from SkPaint_Reference.bmh to
SkFont_Reference.bmh. Since the legacy routines are still
in SkPaint.h (and not yet marked as deprecated) duplicate
much of it for now.

This get bookmaker running without error, but the generated
documentation is not organized.

TBR=reed@google.com,bungeman@google.com

Docs-Preview: https://skia.org/?cl=175241
Bug: skia:
Change-Id: I31e7dff425e8c0bbac0179a1f3546fbc38fc4504
Reviewed-on: https://skia-review.googlesource.com/c/175241
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-12-06 14:52:27 +00:00
Mike Reed
7b7ab595d9 SkRunFont is gone, there is only SkFont
Bug: skia:
Change-Id: I720fd5d8b3755d4f19767db4077e0f3c43167cae
Reviewed-on: https://skia-review.googlesource.com/c/174850
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-06 13:04:39 +00:00
Mike Reed
6d59568196 change private alloc methods to also take fonts
Bug: skia:2664
Change-Id: I772534179ce0c948984640f9fffc22e0372fce97
Reviewed-on: https://skia-review.googlesource.com/c/174848
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-06 02:15:36 +00:00
Mike Reed
c84ccb1ff1 add extra header to quick-fix IWYU issue in google3
Bug: skia:
Change-Id: I8139f4231d29c25c7263a24c703079c6e89b00ee
Reviewed-on: https://skia-review.googlesource.com/c/174847
Reviewed-by: Mike Reed <reed@google.com>
2018-12-05 21:39:55 +00:00
Brian Salomon
ff4ccaa9fc Revert "Mark wrapped textures imported into SkImages as "read only"."
This reverts commit 796693af3c.

Reason for revert: texture flags assertion in DDL config

Original change's description:
> Mark wrapped textures imported into SkImages as "read only".
> 
> Read only textures and proxies fail writePixels, as copy dsts, and mip
> regeneration.
> 
> Bug: skia:8509
> 
> Change-Id: Iaa0b473cc9a9930fde3ef0e91373d5040650de35
> Reviewed-on: https://skia-review.googlesource.com/c/174316
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com

Change-Id: If5cb36e83795656185ff8d26e4ef2c52a2695a09
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8509
Reviewed-on: https://skia-review.googlesource.com/c/174846
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-05 21:35:40 +00:00
Brian Salomon
c60935369a Revert "Bypass interval tracking and assignment of read-only texures in GrResourceAllocator."
This reverts commit 1b04794234.

Reason for revert: Reverting to revert another CL

Original change's description:
> Bypass interval tracking and assignment of read-only texures in GrResourceAllocator.
> 
> Bug: skia:8509
> 
> Change-Id: Idecf3a5335945c9ff21f27cd3f7887125214d02d
> Reviewed-on: https://skia-review.googlesource.com/c/174592
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=bsalomon@google.com,robertphillips@google.com

Change-Id: I4a6d0a88f2b817435b09e1b690aaa651ed8f3dd8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8509
Reviewed-on: https://skia-review.googlesource.com/c/174845
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-05 21:34:41 +00:00
Mike Reed
b3f4aac0ba make runfont be a font
... this makes building faster.

Running TextBlobMakeBench (on mac)

Before:
curr/maxrss	loops	min	median	mean	max	stddev	samples   	config	bench
  16/16  MB	2	279µs	279µs	283µs	300µs	3%	██▁▁▁▁▁▁▁▁	nonrendering	TextBlobMakeBench

After:
curr/maxrss	loops	min	median	mean	max	stddev	samples   	config	bench
  16/16  MB	2	185µs	186µs	198µs	218µs	8%	▁▁▁▁▁▁████	nonrendering	TextBlobMakeBench

Bug: skia:
Change-Id: I9fc14b019bbaeb130f354ff9d4966a5190bff8bd
Reviewed-on: https://skia-review.googlesource.com/c/174841
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2018-12-05 21:16:28 +00:00
Mike Reed
c86ec97ca4 add simple docs for textencoding in SkPaint
Bug: skia:
Change-Id: Id7cd721dc3d3e6297b2653c26cc35eca8dba0ec8
Reviewed-on: https://skia-review.googlesource.com/c/174591
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2018-12-05 20:48:38 +00:00
Brian Salomon
1b04794234 Bypass interval tracking and assignment of read-only texures in GrResourceAllocator.
Bug: skia:8509

Change-Id: Idecf3a5335945c9ff21f27cd3f7887125214d02d
Reviewed-on: https://skia-review.googlesource.com/c/174592
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-12-05 20:37:58 +00:00
Brian Salomon
796693af3c Mark wrapped textures imported into SkImages as "read only".
Read only textures and proxies fail writePixels, as copy dsts, and mip
regeneration.

Bug: skia:8509

Change-Id: Iaa0b473cc9a9930fde3ef0e91373d5040650de35
Reviewed-on: https://skia-review.googlesource.com/c/174316
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-12-05 20:12:42 +00:00
Brian Salomon
10273c1d5f Use unnormalized coords all the way through with GL_TEXTURE_RECTANGLE textures.
We used to unnormalize them in the shader via SkSL.

This allows us to support GL_TEXTURE_RECTANGLE without having textureSize()
available in GLSL.

Change-Id: Ibe63a302228811933ef000251db4cad9aaf4f2ea
Reviewed-on: https://skia-review.googlesource.com/c/174068
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-12-05 20:08:06 +00:00
Leon Scroggins III
cb6b8848de Fix uninitialized bug in SkWuffsCodec for incomplete images
Bug: skia:8579

Zero-initialize the pixel buffer that wuffs uses inside the frame rect.
If the encoded image is incomplete, we will swizzle this memory into the
destination, so this prevents swizzling uninitialized memory.

In addition, zero-initialize the client's memory if the above buffer
will not fill it, and if the frame is independent.

Move decodeFrameConfig into onStartIncrementalDecode. This makes it
clear that we haven't begun decoding the pixels so rowsDecoded is
irrelevant. Update the documentation for onStartIncrementalDecode to
make it clear that it can be called more than once (and when to do so).

If a frame is incomplete and depends on prior frames, do not blend it.
This will overwrite pixels from the prior frames without a way to undo.
Current clients only want to show incomplete images for the first frame
anyway.

Add some debugging information to Codec_partialAnim test, including
writing out pngs when failing the test.

TBR=djsollen@google.com for documentation change in SkCodec.h

Change-Id: I85c8ca4075301306f4738ddfc2f5992a5745108b
Reviewed-on: https://skia-review.googlesource.com/c/174310
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Nigel Tao <nigeltao@google.com>
2018-12-05 18:27:28 +00:00
Greg Daniel
b353eeb716 Remove duplicate member of GrVkDrawableInfo struct.
Bug: skia:
Change-Id: I81a38f9920f89f4749fc58458b85a29714cec7a9
Reviewed-on: https://skia-review.googlesource.com/c/174584
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-12-05 18:20:28 +00:00
Mike Reed
0f9d33ef06 clean up conditional code for SkTextEncoding
Bug: skia:
Change-Id: I1e57a14b360d92651d4b41bc01891381431c8c4a
Reviewed-on: https://skia-review.googlesource.com/c/174583
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-12-05 17:42:33 +00:00
Derek Sollenberger
1958e5d9da Add Android framework only util to get the SkSurface from SkCanvas
This API enables the framework to implement unclipped saveLayer
calls in a more efficient manner, by requiring fewer render target
switches on the GPU.

Bug: b/119222339
Change-Id: I7276675a4c1389f8493d2583ff7d6533b57a7b3b
Reviewed-on: https://skia-review.googlesource.com/c/173102
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2018-12-05 16:48:29 +00:00
Mike Reed
7d1eb33aec hide paint's getFontBounds
Bug: skia:
Change-Id: I26b693e32d0dadfe47710a29296eceb8ec90ee0c
Reviewed-on: https://skia-review.googlesource.com/c/174308
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2018-12-04 23:20:44 +00:00
Mike Klein
0ec1c571c8 remove sk_atomic_inc
Change-Id: I4960b1cd055daf44637e95825f82cb7fe2ce134a
Reviewed-on: https://skia-review.googlesource.com/c/174285
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-12-04 19:01:47 +00:00
Mike Klein
de2244cbda remove sk_atomic_dec
This turns out to be mostly deleting dead debugging code.

Change-Id: I4969ea380e6125e8b557d430c6720edc0a337a79
Reviewed-on: https://skia-review.googlesource.com/c/174284
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-12-04 17:58:35 +00:00
Mike Reed
017ac1c6d5 rm textencoding flag -- rely on clients to opt-in
... need to wait for clients

Bug: skia:
Change-Id: Ibcb51b48528140028d3756ce9319f80c967daacd
Reviewed-on: https://skia-review.googlesource.com/c/173987
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-04 16:45:01 +00:00
Mike Klein
8912a5d240 remove sk_atomic_fetch_add
Change-Id: Ia400db2b73a8061668e62f8e961538a060b216a1
Reviewed-on: https://skia-review.googlesource.com/c/174282
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-12-04 15:53:16 +00:00
Mike Klein
820e79b86c remove sk_atomic_load and sk_atomic_store
Change-Id: I6eb4469df0315283f96631ff6023170fa80aaa8a
Reviewed-on: https://skia-review.googlesource.com/c/174281
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-12-04 15:42:01 +00:00
Mike Klein
b24f7f45c2 remove sk_atomic_compare_exchange
Whatever nonsense SkPicture::uniqueID() was doing, it doesn't
need to do it.  It can just get its unique ID normally.

I've ported SkEventTracer in the straightforward way.

Change-Id: I103e7e05258ad49e1e3f333fc907f039cef3f8c9
Reviewed-on: https://skia-review.googlesource.com/c/174280
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-12-04 15:14:20 +00:00
Mike Klein
2d9e543a58 some SkAtomics cleanup
- Replace sk_memory_order with std::memory_order.
 - Remove SkAtomic<T>.

SkPath was the only user of SkAtomic<T>, for its fConvexity and
fFirstDirection fields.  I've replaced them with std::atomic types, and
funneled access to them through methods that enforce the relaxed memory
order like SkAtomic<T> did.

For fConvexity, we can use the exisiting setConvexity() and
getConvexityOrUnknown() methods, adding a private const setConvexity()
to mutate convexity from const methods.  For fFirstDirection I've added
private setFirstDirection() and getFirstDirection() methods.

Removing SkAtomic<T> means SkAtomics.h no longer needs SkNoncopyable.h.
I've had to update a bunch of other headers that were depending on
transitive inclusion.

Change-Id: Ib238be71a121519db6e970a9a8955834e1298c87
Reviewed-on: https://skia-review.googlesource.com/c/174220
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-12-04 13:53:39 +00:00
Mike Reed
4fbdb12348 add != for SkFont
Bug: skia:
Change-Id: I8d585082ee8ded3c6b690a8a6d238cd58c520a1c
Reviewed-on: https://skia-review.googlesource.com/c/174100
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-12-03 20:08:11 +00:00
Greg Daniel
45723ac931 Take into accout the GrBackendFormat when deciding if we can chain textures together.
Bug: skia:
Change-Id: I8c26bed1bb18318f96d248c227e3b33b190d2a05
Reviewed-on: https://skia-review.googlesource.com/c/173320
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-12-03 16:54:40 +00:00
Greg Daniel
7e000220c3 Reland "Add support for Ycbcr Conversion Samplers in vulkan."
This is a reland of 6cd74900da

Original change's description:
> Add support for Ycbcr Conversion Samplers in vulkan.
> 
> The only thing missing from this CL is that we need to bake the
> ycbcr conversion samplers into the VkPipeline when we create it. As that
> is a larger change, that will be broken up into a few follow on CLs.
> 
> Currently this only supports ycbcr conversion samplers when used with
> external textures.
> 
> Bug: skia:
> Change-Id: I23e95b19469093072589ebbbfb7926ab79dcdea9
> Reviewed-on: https://skia-review.googlesource.com/c/164602
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Bug: skia:
Change-Id: I943398077775ef6396fbe5cb9196d23a29128669
Reviewed-on: https://skia-review.googlesource.com/c/173986
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-12-03 16:16:55 +00:00
Mike Reed
97f3cc2085 flag to convert to SkTextEncoding
Bug: skia:
Change-Id: I9628bcabc5c6f902b79009e4f21badff3e8cca94
Reviewed-on: https://skia-review.googlesource.com/c/173980
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-12-03 15:20:36 +00:00
Greg Daniel
f4bf973592 Revert "Add support for Ycbcr Conversion Samplers in vulkan."
This reverts commit 6cd74900da.

Reason for revert: breaking win vulkan bots

Original change's description:
> Add support for Ycbcr Conversion Samplers in vulkan.
> 
> The only thing missing from this CL is that we need to bake the
> ycbcr conversion samplers into the VkPipeline when we create it. As that
> is a larger change, that will be broken up into a few follow on CLs.
> 
> Currently this only supports ycbcr conversion samplers when used with
> external textures.
> 
> Bug: skia:
> Change-Id: I23e95b19469093072589ebbbfb7926ab79dcdea9
> Reviewed-on: https://skia-review.googlesource.com/c/164602
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com

Change-Id: Ib56905821cbfd40cf30ec89269b551ce01605a1a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/173982
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-12-03 14:34:45 +00:00
Greg Daniel
6cd74900da Add support for Ycbcr Conversion Samplers in vulkan.
The only thing missing from this CL is that we need to bake the
ycbcr conversion samplers into the VkPipeline when we create it. As that
is a larger change, that will be broken up into a few follow on CLs.

Currently this only supports ycbcr conversion samplers when used with
external textures.

Bug: skia:
Change-Id: I23e95b19469093072589ebbbfb7926ab79dcdea9
Reviewed-on: https://skia-review.googlesource.com/c/164602
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-12-03 14:13:42 +00:00
Cary Clark
5b671c300d add breaktext doc skeleton
copy paragraph from paint, add empty
example to docs. Fixes bot

TBR=reed@google.com

Docs-Preview: https://skia.org/?cl=173771
Bug: skia:
Change-Id: I4a79f7f8f32f860d0390dbce44669e03bb3a281e
Reviewed-on: https://skia-review.googlesource.com/c/173771
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-12-03 10:18:06 +00:00
Mike Reed
da1b99f7f5 breakText on font
Bug: skia:
Change-Id: Iebf65b158a0b08ed8e65b77d9d0aeef8c159d5db
Reviewed-on: https://skia-review.googlesource.com/c/173770
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-12-03 03:49:02 +00:00
Mike Reed
94cca60bfa start to use font for measure, not paint
-- lots more where this came from

Bug: skia:2664
Change-Id: I8bb47f02c156b0b88fbb92fec73af0eb6641b1bf
Reviewed-on: https://skia-review.googlesource.com/c/173769
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-12-02 21:31:36 +00:00
Mike Reed
07105bbcbe don't trust convexity after a transform
In theory, a convex shape is still convex if transformed by an affine
matrix. However, SkPath segments are specified using floats, and attributes
like collinearity can break under some transforms due to finite precision.

Computing convexity is non-trivial, so there is value in SkPath caching this
calculation. Convexity is useful, as both the CPU and GPU backends can draw
convex shapes faster than non-convex.

To balance these two (fragile float math and value of caching convexity),
this CL invalidates this cached state if the transform could change convexity.
In the general case, it is assumed that convexity could change. Special cases
where it is safe to keep the cached state after transform are:
- identity transform
- scale/translate transform if the path is known to be axis-aligned
All other combinations invalidate the cached state, forcing it to be
recomputed.

"axis-aligned" means the segments in the path are all axis-aligned, horizontal
or vertical (e.g. a rect or rrect)

Bug: 899689
Change-Id: I1381273eaff61d6b7134ae94b4f251c69991081a
Reviewed-on: https://skia-review.googlesource.com/c/173226
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2018-12-01 21:17:34 +00:00
Brian Salomon
2335644771 Fix occurrences of "-Wextra-semi-stmt"
Docs-Preview: https://skia.org/?cl=173761
Change-Id: Iefdb91cd28eabb4b01b7b42a4f300b0b4caf05d9
Reviewed-on: https://skia-review.googlesource.com/c/173761
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-11-30 23:23:09 +00:00
Brian Osman
c337a63229 Add SkEncodedOrigin to SkYUVASizeInfo, fix JPEG orientation in GPU decode path
Bug: skia:7523
Change-Id: I7d48e5f5930b413fa7f27aa391bf92c5af1342e9
Reviewed-on: https://skia-review.googlesource.com/c/173429
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2018-11-30 16:05:36 +00:00
Mike Reed
37cb47685f remove SK_SUPPORT_LEGACY_NESTED_HINTINGENUM code
Bug: skia:
Change-Id: Idc44f02fab691881e1c1a409adc8641663401732
Reviewed-on: https://skia-review.googlesource.com/c/173432
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-30 03:48:01 +00:00
Heather Miller
4f897d1873 Update Skia milestone to 73
Bug: skia:
Change-Id: I4b8744f1f9d752a54429054d7539c46e24fcba82
Reviewed-on: https://skia-review.googlesource.com/c/173428
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>
2018-11-29 21:31:08 +00:00
Cary Clark
cb6bef0ad5 Update bookmaker
- This update includes font documentation.
SkFont_Reference.bmh was generated by running:

  bookmaker -b docs -i include/core/SkFont.h -t

This creates a placeholder
for examples and additional documentation.

- More work done to exclude experimental/private
symbols.

Symbols that include "experimental_", "legacy_",
"private_", "temporary_", "deprecated_" as part
of their name (case-insensitive) are not
referenced by the on-line docs and don't need
comments.

Tables built for online only include public symbols.

- Better links for constructors, destructors, operators
- Fixed some minor public interfaces
- Removed _const crutch on operators
- Keep includes inside 100 columns

TBR=reed@google.com

Docs-Preview: https://skia.org/?cl=171900
Bug: skia:
Change-Id: I93b229c6625d800604671e05b82a14c06cb906d2
Reviewed-on: https://skia-review.googlesource.com/c/171900
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-11-29 18:17:30 +00:00
Mike Reed
6f07788196 remove textblobbuilder guard
Bug: skia:
Change-Id: Ie686a8dcedf26a0f7c10f29befded7978a92daca
Reviewed-on: https://skia-review.googlesource.com/c/173230
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-29 13:00:11 +00:00
Mike Reed
c33ec9f8c4 remove legacy hinting-enum guards
Bug: skia:
Change-Id: I762fd834859fc6334b4eb36c1fad05538e873dd9
Reviewed-on: https://skia-review.googlesource.com/c/173229
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-28 20:15:03 +00:00
Brian Salomon
572fdcf08a Remove SkCanvas::ImageSetEntry constructors
Change-Id: Ib75b6a836184df739e4690dc275421e015d6a9bb
Reviewed-on: https://skia-review.googlesource.com/c/173228
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-11-28 18:59:43 +00:00
Leon Scroggins III
9b0ba2c2cd SkWuffsCodec: fix dependent frames
SkWuffsCodec tells wuffs to decode only the current frame's
contribution, and then SkWuffsCodec blends it onto the prior frame (if
any). If there is a prior frame, do not call SkSampler::Fill, and blend
the new frame onto the old, rather than replacing it.

In addition, set rowsDecoded to scaledHeight to work properly for
scaled decodes.

TBR=reed@google.com No change to public API

Bug: skia:8235
Change-Id: I08e89f1083da3f9b98f93d8d2375ce78f0c378f8
Reviewed-on: https://skia-review.googlesource.com/c/171645
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Nigel Tao <nigeltao@google.com>
2018-11-27 20:35:13 +00:00
Herb Derby
df246b9c1b Add explicit to ctor
Change-Id: I4232d23e0c2dfe46695e948c46f2745c8e7e555c
Reviewed-on: https://skia-review.googlesource.com/c/172945
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-11-27 18:11:30 +00:00
Mike Reed
54bf684343 Revert "Revert "migrate to passing paint/ctm for bounds""
Fix: pass real paint to FindOrCreateStrikeWithNoDeviceExclusive

This reverts commit 914d319a02.

Bug: skia:
Change-Id: I2d618a868ae57e34cba5964aadd4a365481cb4cd
Reviewed-on: https://skia-review.googlesource.com/c/172976
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-11-27 17:53:47 +00:00
Mike Reed
914d319a02 Revert "migrate to passing paint/ctm for bounds"
This reverts commit d5ed3dafb2.

Reason for revert: goofed up, passing default paint instead of real one

Original change's description:
> migrate to passing paint/ctm for bounds
> 
> Some of this is left in for migrating callers (see docs)
> 
> - want getWidths to just take widths (and no paint)
> - want getBounds to just take bounds AND paint
> - want getWidthsBounds to take it all
> 
> Bug: skia:
> Change-Id: I498cd8295b90995c45237d3cf39fc097252f485e
> Reviewed-on: https://skia-review.googlesource.com/c/172868
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=bungeman@google.com,herb@google.com,reed@google.com

Change-Id: Ifa827d824f0f0ef63308e5cc1fe579b1b14df616
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/172975
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-27 16:47:03 +00:00
Mike Reed
d5ed3dafb2 migrate to passing paint/ctm for bounds
Some of this is left in for migrating callers (see docs)

- want getWidths to just take widths (and no paint)
- want getBounds to just take bounds AND paint
- want getWidthsBounds to take it all

Bug: skia:
Change-Id: I498cd8295b90995c45237d3cf39fc097252f485e
Reviewed-on: https://skia-review.googlesource.com/c/172868
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-27 02:37:28 +00:00
Brian Salomon
d003d22eb0 Remove SkCanvas::experimental_drawImageSetV0
Bug: skia:8563
Change-Id: I4421a19979a2a1ddae4ca52871c71e9d7d1220d8
Reviewed-on: https://skia-review.googlesource.com/c/172870
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-11-26 20:17:30 +00:00
Cary Clark
fda7b3cfd5 minor SkFont interface edits
Add missing comments.
Fix copy/pasted comments.
Change operator== to a const function.

R=reed@google.com

Docs-Preview: https://skia.org/?cl=172866
Bug: skia:
Change-Id: I4b89204ae674f93bfaf9d86a5d09a84cc8021146
Reviewed-on: https://skia-review.googlesource.com/c/172866
Reviewed-by: Mike Reed <reed@google.com>
Auto-Submit: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-11-26 16:32:05 +00:00
Brian Salomon
52a6ed3d4c Fix audit trail when ops merge after chaining change.
This fixes a crash in skiaserve when running in GPU mode.

Remove GR_AUDIT_TRAIL_OP_RESULT_NEW. This macro doesn't do anything and
is non-trivial to know when to call if a new op gets chained.

Change-Id: Ic2a9c09e3d15541a566534654b2393cb740fa302
Reviewed-on: https://skia-review.googlesource.com/c/172864
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-11-26 15:59:07 +00:00
Greg Daniel
54bfb18dad Privately include our version of vulkan header file in all our src files.
This should allow clients to include Skia and their vulkan files in any
order. However, it does require that when clients are building their
files that include skia with vulkan, they must have vulkan/vulkan_core.h
on their include path somewhere.

Bug: skia:
Change-Id: I969db396c92127be7c8df754926d175f38b8aafa
Reviewed-on: https://skia-review.googlesource.com/c/172147
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-11-26 15:15:44 +00:00
Mike Reed
2871509751 change params to getPaths callback, avoiding a xform/copy up front.
Before

  18/18  MB	1	33.1µs	33.3µs	33.4µs	34.2µs	1%	█▄▃▂▂▁▁▁▁▂	nonrendering	font-path-batch
  18/18  MB	12	43.7µs	43.8µs	43.8µs	44.1µs	0%	█▂▁▂▁▅▂▂▆▂	nonrendering	font-path-loop

After

  17/17  MB	1	10.2µs	10.3µs	10.4µs	11µs	2%	█▃▂▂▂▂▂▁▁▂	nonrendering	font-path-batch
  17/17  MB	21	23.4µs	23.4µs	23.4µs	23.4µs	0%	█▂▁▃▃▂▄▁▂▂	nonrendering	font-path-loop

Bug: skia:
Change-Id: Ib1aa886fd675326bf5936b47b0d459ba02f1681e
Reviewed-on: https://skia-review.googlesource.com/c/172743
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-25 15:32:33 +00:00
Mike Reed
c16abee8c5 impl gettextpath using SkFont
Bug: skia:
Change-Id: I23dce4ed9718e7ce2d6511e08ef350c9ee2e94b4
Reviewed-on: https://skia-review.googlesource.com/c/172645
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-11-24 18:52:59 +00:00
Mike Reed
358fcad1b8 start to hide textparams on SkPaint
Bug: skia:
Change-Id: Id73c983cc71d39fe587d355e690261627fa63aee
Reviewed-on: https://skia-review.googlesource.com/c/172643
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-23 20:54:16 +00:00
Mike Reed
70ea9260ee don't define flag -- let clients do that
Bug: skia:
Change-Id: I01ad384ccabf2fa181eb475270fd0c3f44b5e1f0
Reviewed-on: https://skia-review.googlesource.com/c/172641
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-23 19:07:47 +00:00
Mike Reed
2ed7820970 use SkFont in a lot of places
Bug: skia:
Change-Id: I86df3f650eb5bb0219b3251ef5f8e95403838bba
Reviewed-on: https://skia-review.googlesource.com/c/172482
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-21 20:44:03 +00:00
Cary Clark
e9c5a15993 fix bookmaker
Mark experimental method in SkCanvas as "Experimental" in its
comment. Maybe it should be enough to name the routine experimental_...
but for now bookmaker requires the comment to say that as well.

Change the TextIntercept examples to #NoExample.

TBR=reed@google.com,bsalomon@google.com

Docs-Preview: https://skia.org/?cl=172402
Bug: skia:
Change-Id: Id74b59e141d5002a8b6118ca28cb9c62a36e2f02
Reviewed-on: https://skia-review.googlesource.com/c/172402
Reviewed-by: Cary Clark <caryclark@skia.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-11-21 19:15:59 +00:00
Brian Salomon
ea02708e07 Add SK_API to SkCanvas::ImageSetEntry to fix Chrome roll
Change-Id: I9c73ff0ca6badb9c357f75c6054286d5a787a324
Reviewed-on: https://skia-review.googlesource.com/c/172403
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2018-11-21 18:29:33 +00:00
Brian Salomon
1da5cade3e Make experimental_drawImageSet support per-quad alpha.
The V0 version of this will use the product of the "global" and per-quad
alpha.

A new V1 version is added that does not take a global alpha.

The V0 version will be removed once SkiaRenderer no longer uses it.


Bug: skia:8563
Change-Id: Iace3dff6c4f1fd1a5c6c30eb8226f4815c58e0ed
Reviewed-on: https://skia-review.googlesource.com/c/172146
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2018-11-21 14:50:41 +00:00
Mike Reed
114bde830b Revert "Revert "add rect-parameter to makeImageSnapshot""
This reverts commit 1e28e5d79e.

Bug: skia:
Change-Id: I71c246885721c71de540e9079ecf7323234c8871
Reviewed-on: https://skia-review.googlesource.com/c/172302
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-21 14:46:06 +00:00
Mike Reed
1e28e5d79e Revert "add rect-parameter to makeImageSnapshot"
This reverts commit e195d1c22e.

Reason for revert: broke android subclass (illegal)

Original change's description:
> add rect-parameter to makeImageSnapshot
> 
> Bug: skia:
> Change-Id: I56044fb1f21b959993d69fc587f95e3dbf30c371
> Reviewed-on: https://skia-review.googlesource.com/c/171905
> Commit-Queue: Mike Reed <reed@google.com>
> Auto-Submit: Mike Reed <reed@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=djsollen@google.com,egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,reed@google.com

Change-Id: Ied294732b332192e251a845a5cb6349a670c25b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/172301
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-21 13:13:37 +00:00
Mike Reed
e195d1c22e add rect-parameter to makeImageSnapshot
Bug: skia:
Change-Id: I56044fb1f21b959993d69fc587f95e3dbf30c371
Reviewed-on: https://skia-review.googlesource.com/c/171905
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-11-21 02:58:28 +00:00
Mike Reed
dde5c0ce6b hide (unused) intercepts methods -- for staging migration to SkFont
Bug: skia:
Change-Id: I93a52a9f20fe715dca0393e2c892369e01817de1
Reviewed-on: https://skia-review.googlesource.com/c/172063
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-20 17:25:44 +00:00
Brian Osman
cfec9d567b Use GrVertexWriter for GrAAStrokeRectOp
Bug: skia:
Change-Id: I2d166ed6c1cb1c13a91526e2f0340623e0436003
Reviewed-on: https://skia-review.googlesource.com/c/171782
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-11-20 17:09:07 +00:00
Mike Reed
ddafa42fdb guard flag, so we can remove it and force clients to opt-in
Bug: skia:
Change-Id: Ia4e5a735d8527ca17a2a19db16205490870510b3
Reviewed-on: https://skia-review.googlesource.com/c/172064
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-20 17:05:08 +00:00
Jim Van Verth
c8429addf1 Add SkImage::MakeFromYUVAPixmaps
Bug: skia:7903
Change-Id: I41ee31ad3657aee372e22ec3e7a0a317e31b2791
Reviewed-on: https://skia-review.googlesource.com/c/171007
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-11-20 16:43:28 +00:00
Cary Clark
b2f8c3eb28 font doc
Prepping SkFont.h so that docs can be generated.
Mostly copying and pasting documentation with
edits to match SkFont conventions.

Added parameter names where missing to public
functions.

In a follow-on CL bookmaker will generate the
corresponding docs/SkFont_Reference.bmh

R=reed@google.com

Bug: skia:
Change-Id: Ib413b07000b368e2ee1b9145da1fca206a07a592
Reviewed-on: https://skia-review.googlesource.com/c/171646
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-11-19 19:07:29 +00:00
Greg Daniel
4065d45d2d Reland "Reland "Have a GrBackendFormat be stored on gpu proxies.""
This is a reland of 2f9a5ea639

Original change's description:
> Reland "Have a GrBackendFormat be stored on gpu proxies."
> 
> This reverts commit 919c9e77c3.
> 
> Reason for revert: Flutter change has landed and fixed memory issue.
> 
> Original change's description:
> > Revert "Have a GrBackendFormat be stored on gpu proxies."
> >
> > This reverts commit 51b1c12bbc.
> >
> > Reason for revert: reverting till flutter gets to 1.1 to fix build issues.
> >
> > Original change's description:
> > > Have a GrBackendFormat be stored on gpu proxies.
> > >
> > > Bug: skia:
> > > Change-Id: Iaf1fb24ab29a61d44e5fa59a5e0867ed02dcda90
> > > Reviewed-on: https://skia-review.googlesource.com/c/168021
> > > Reviewed-by: Brian Osman <brianosman@google.com>
> > > Commit-Queue: Greg Daniel <egdaniel@google.com>
> >
> > TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
> >
> > Change-Id: I574fdc084ef5994596c51fb0d60423b5dc01b885
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:903701 chromium:903756
> > Reviewed-on: https://skia-review.googlesource.com/c/169835
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
> 
> Change-Id: Ifd9b6b8e194af9fb9258fa626644e76e6ecf090d
> Bug: chromium:903701 chromium:903756
> Reviewed-on: https://skia-review.googlesource.com/c/170104
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: chromium:903701 chromium:903756
Change-Id: Id1360067d8e928b0a4e1848dae8bc1e7f1994403
Reviewed-on: https://skia-review.googlesource.com/c/171660
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-11-19 18:51:07 +00:00
Brian Osman
3d139a4e02 Use half floats for non-normalized color in GrTextureOp
Bug: skia:
Change-Id: Ie681369ef4b1d3d43c326da684afde9ce6d08486
Reviewed-on: https://skia-review.googlesource.com/c/171726
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-11-19 18:20:57 +00:00
Leon Scroggins III
c41a5f58b2 Generate Android Framework host-side Skia (linux)
Bug: b/118742766

Update gn_to_bp to write an Android.bp file that will build a host-side
Skia library.

Switch some methods from SK_BUILD_FOR_ANDROID to
SK_BUILD_FOR_ANDROID_FRAMEWORK.

Prior reviews were done at ag/5482397.

gn_to_bp.py:
- Run GN twice - once for android and once for linux
- Disable GPU (depends on a to-be-written host side GL target) and HEIF
  (which relies on Android hardware) on linux
  - TODO: Turn on GPU on linux
- Split sources into everywhere, android-only, and linux-only.
  It seems that Android.bp does not allow using the same cpp
  file in multiple targets.
  - note that we currently *only* divide out the sources. The cflags are
    the same (except for a couple manual ones) and include
    directories are mostly the same (again, except for manual ones).
    Android has a "gpu" include directory, which I don't expect to
    make a difference to the linux build, which isn't using GPU (yet).
- Use the same "custom empty" font manager on the host as on Android
- Write separate SkUserConfig files; one for android and one for linux.
  This allows libskia to force libraries that use it to use the right
  defines by setting export_include_dirs.
- Add extra checks to SkUserConfig.h to ensure we have only the
  appropriate SK_BUILD_FOR macro defined
- Add host_supported: true for libskia

gn_to_bp_utils.py:
- Switch SkUserConfig.h from include guards to pragma once so it is
  easier to append to the end. This matches how Android generally
  includes headers.

BUILD.gn:
- Add skia_use_fixed_gamma_text so host build can use the same SK_GAMMA
  defines as the device.

SkPreConfig.h:
- Stop making SK_BUILD_FOR_ANDROID_FRAMEWORK imply SK_BUILD_FOR_ANDROID.
  The host build needs the former defined but not the latter.

SkRegion.cpp/.h:
- Make toString() SK_BUILD_FOR_ANDROID_FRAMEWORK so it can be called on
  the host.

SkCamera.h/.cpp:
- Switch methods to SK_BUILD_FOR_ANDROID_FRAMEWORK so they can be called
  on the host.
- Make getCameraLocation*() const. They are logically const, and this
  allows removing a const_cast + TODO in hwui.

Change-Id: I771f825d06380e01c0488fd1c00df1d8a2454dc0
Reviewed-on: https://skia-review.googlesource.com/c/171231
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-11-19 17:51:32 +00:00
Brian Osman
5c8a6b3238 Add helpers to deal with byte vs. half-float vertex colors
GrVertexColor stores either kind of color, and GrVertexWriter does the
right thing. SkColor4fPrepForDst helps to automate the conversion and
pinning. This ensures that colors are already pinned if the device has
no support for half-floats. This way, ops never need to worry about caps,
they can just check if all colors they're batching are normalized.

Bug: skia:
Change-Id: Ie0c15d3b16c6fc93a7f11d284029d77d482a6283
Reviewed-on: https://skia-review.googlesource.com/c/171725
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-11-19 17:32:39 +00:00
Mike Reed
55bdb7c566 Reland "remove dead code around SK_SUPPORT_LEGACY_FONT_FLAGS"
This reverts commit c41a41d67e.

Reason for revert: hmmm, this might still work in Fuchsia...

Original change's description:
> Revert "remove dead code around SK_SUPPORT_LEGACY_FONT_FLAGS"
> 
> This reverts commit 3b155a77c3.
> 
> Reason for revert: breaks fuchsia (needs to roll newer flutter)
> 
> Original change's description:
> > remove dead code around SK_SUPPORT_LEGACY_FONT_FLAGS
> > 
> > Bug: skia:
> > Change-Id: I5a36e6827610c2a429e2f8b36adf432b95993c54
> > Reviewed-on: https://skia-review.googlesource.com/c/171529
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Mike Reed <reed@google.com>
> 
> TBR=reed@google.com
> 
> Change-Id: I37bfab86e4a4243ddd94255aa0b126414bd9e835
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/c/171536
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=reed@google.com

Change-Id: I12183ecfb5e17b8919afbce7b42dad2064ee93b3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/171538
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-16 19:41:55 +00:00
Mike Reed
c41a41d67e Revert "remove dead code around SK_SUPPORT_LEGACY_FONT_FLAGS"
This reverts commit 3b155a77c3.

Reason for revert: breaks fuchsia (needs to roll newer flutter)

Original change's description:
> remove dead code around SK_SUPPORT_LEGACY_FONT_FLAGS
> 
> Bug: skia:
> Change-Id: I5a36e6827610c2a429e2f8b36adf432b95993c54
> Reviewed-on: https://skia-review.googlesource.com/c/171529
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=reed@google.com

Change-Id: I37bfab86e4a4243ddd94255aa0b126414bd9e835
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/171536
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-11-16 19:07:58 +00:00