Commit Graph

2885 Commits

Author SHA1 Message Date
joshualitt
14205b114a Expand functionality of GrRectBatchFactory with AARects
BUG=skia:

Review URL: https://codereview.chromium.org/1279303002
2015-08-10 11:40:56 -07:00
joshualitt
ecd1a69fbf Create GrRectBatchFactory
BUG=skia:

Review URL: https://codereview.chromium.org/1287433003
2015-08-10 10:08:26 -07:00
joshualitt
9ff6425ce4 move Stroke Rect and AAFill Rect to their own file
BUG=skia:

Review URL: https://codereview.chromium.org/1282723004
2015-08-10 09:03:51 -07:00
scroggo
0df0e43488 Revert of Update libwebp and resume testing scaled webp (patchset #2 id:20001 of https://codereview.chromium.org/1280073002/ )
Reason for revert:
Compile failures, e.g.

http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm7-Debug-Android_NoNeon/builds/1427/steps/build%20most/logs/stdio

Original issue's description:
> Update libwebp and resume testing scaled webp
>
> libwebp has a fix for [1]. Update to the commit that contains the fix.
>
> Update libwebp.gypi, corresponding to libwebp's latest makefile.
>
> Turn back on DM testing for scaled webp, now that it should no longer
> use uninitialized memory.
>
> Fix a warning in config.h
>
> [1] https://code.google.com/p/webp/issues/detail?id=254
>
> BUG=skia:4038
>
> Committed: https://skia.googlesource.com/skia/+/0575d3e6c272744a66ab3281f9871366717df339

TBR=djsollen@google.com,msarett@google.com,scroggo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4038

Review URL: https://codereview.chromium.org/1278173004
2015-08-07 12:53:25 -07:00
scroggo
0575d3e6c2 Update libwebp and resume testing scaled webp
libwebp has a fix for [1]. Update to the commit that contains the fix.

Update libwebp.gypi, corresponding to libwebp's latest makefile.

Turn back on DM testing for scaled webp, now that it should no longer
use uninitialized memory.

Fix a warning in config.h

[1] https://code.google.com/p/webp/issues/detail?id=254

BUG=skia:4038

Review URL: https://codereview.chromium.org/1280073002
2015-08-07 12:49:16 -07:00
joshualitt
2771b5617c GrDrawVertices to batches
BUG=skia:

Review URL: https://codereview.chromium.org/1276333004
2015-08-07 12:46:26 -07:00
jvanverth
14b8803b7c Move GrDrawAtlasBatch to separate file
Committed: https://skia.googlesource.com/skia/+/b091c44c33edbad3466601b29d60bc2eaa4453fa

Review URL: https://codereview.chromium.org/1274013003
2015-08-07 12:18:54 -07:00
jvanverth
1694a936f6 Revert of Move GrDrawAtlasBatch to separate file (patchset #1 id:1 of https://codereview.chromium.org/1274013003/ )
Reason for revert:
Build failures

Original issue's description:
> Move GrDrawAtlasBatch to separate file
>
> Committed: https://skia.googlesource.com/skia/+/b091c44c33edbad3466601b29d60bc2eaa4453fa

TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1276173003
2015-08-07 11:53:13 -07:00
jvanverth
b091c44c33 Move GrDrawAtlasBatch to separate file
Review URL: https://codereview.chromium.org/1274013003
2015-08-07 11:49:17 -07:00
joshualitt
74417824cd Make folder for batches
BUG=skia:

Review URL: https://codereview.chromium.org/1277233002
2015-08-07 11:42:17 -07:00
bsalomon
ebc1c10fe1 Fix warnings on VS2015 x86_64 build
TBR=bungeman@google.com

Review URL: https://codereview.chromium.org/1276133002
2015-08-06 17:33:16 -07:00
msarett
4ab9d5f1bc Split SkBmpCodec into three separate classes
Will regress behavior on gold on test32bfv4.bmp, where we
will no longer fix transparent decodes.

TODO: Start fixing transparent decodes again, or decide
that we don't want to fix them and remove isTransparent
from SkSwizzler.  I think this may become more clear when I
start implementing the scanline decoder.

BUG=skia:

Review URL: https://codereview.chromium.org/1258863008
2015-08-06 15:34:42 -07:00
scroggo
9ce386a27d Fix color swap for webp 565
When webp decoding to 565, swap the colors so they look right.

BUG=skia:4174

Review URL: https://codereview.chromium.org/1280693003
2015-08-06 11:44:56 -07:00
reed
743087687a remove guard for SrcPtr in drawBitmapRect for android
BUG=skia:
NOTRY=True
TBR=

Review URL: https://codereview.chromium.org/1277963002
2015-08-06 11:25:15 -07:00
reed
e47829b6b1 flag to use const& instead of const* for src-rect
BUG=skia:

Review URL: https://codereview.chromium.org/1272713005
2015-08-06 10:02:53 -07:00
mtklein
b6394746ff Port SkTextureCompression opts to SkOpts
Pretty vanilla translation.  I cleaned up who calls whom a little.
Used to be utils -> opts -> utils, now it's just utils -> opts.

I may follow up with a pass over the NEON code for readability
and to clean up dead code.

This turns on NEON A8->R11EAC conversion for ARMv8.
Unit tests which now hit the NEON code still pass.
I can't find any related bench.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1273103002
2015-08-06 08:17:16 -07:00
robertphillips
d0cf9d831f Remove SK_LEGACY_SKPOINT3_CTORS flag
Cannot land before Blink https://codereview.chromium.org/1274673002/ (Remove reliance on legacy Skia SkPoint3 ctors in FELighting.cpp)

Review URL: https://codereview.chromium.org/1269383003
2015-08-06 07:08:31 -07:00
mtklein
f62833d9c9 Detect MIPS DSP and DSPR2 programattically.
Procedure:

$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -dM -E - < /dev/null | sort > vanilla.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdsp -dM -E - < /dev/null | sort > dsp.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdspr2 -dM -E - < /dev/null | sort > dspr2.mips

$ diff vanilla.mips dsp.mips
239a240,241
> #define __mips_dsp 1
> #define __mips_dsp_rev 1

$ diff vanilla.mips dspr2.mips
239a240,242
> #define __mips_dsp 1
> #define __mips_dsp_rev 2
> #define __mips_dspr2 1

So, defined(__mips_dsp) -> SK_MIPS_HAS_DSP, defined(__mips_dspr2) -> SK_MIPS_HAS_DSPR2.

BUG=skia:

Review URL: https://codereview.chromium.org/1274873002
2015-08-05 14:17:32 -07:00
oysteine
dfcba473b0 Moved common cross-project functionality out from SkTraceEvent.h into SkTraceEventCommon.h
Traditionally, SkTraceEvent.h was manually kept in sync with base/trace_event/trace_event.h, with project-specific parts intermixed, and tended to drift out of sync a lot (mainly in Blink, less so in Skia).

The SkTraceEventCommon.h now has only the cross-project parts, and can be copy-pasted verbatim between projects (it's an identical copy of base/trace_event/trace_event_common.h), meaning SkTraceEvent.h shouldn't go out of sync as it has before.

BUG=skia:

[mtklein mucking around below here]
NOPRESUBMIT=true
CQ_EXCLUDE_TRYBOTS=client.skia.fyi:skia_presubmit-Trybot

Review URL: https://codereview.chromium.org/1270783002
2015-08-05 12:54:40 -07:00
bsalomon
ee14a622b0 Give strokerectbatch a proper home
Review URL: https://codereview.chromium.org/1274763002
2015-08-05 10:34:05 -07:00
mtklein
6c17ca5905 Update yasm .gyp for tweaked ASAN bots.
They're not passing -fsanitize=address anymore, rather
-fsanitize=address,bool,etc,etc,etc...

NOTREECHECKS=true

BUG=skia:

Review URL: https://codereview.chromium.org/1269383002
2015-08-05 08:58:45 -07:00
mtklein
d029ded92d Port morphology to SkOpts.
Nothing too fancy.

Direction enums become enum classes so they don't get all confused.  An
alternative is to create one single Direction enum that both blur and
morphology opts use.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1267343004
2015-08-04 14:09:09 -07:00
halcanary
9f8754f591 Remove experimental/PdfViewer
Motivation: maintaining this code doesn't seem worth the time,
since no one seems to be using it.  If someone wants to use it
in the future, just revert this CL.

Review URL: https://codereview.chromium.org/1266093003
2015-08-04 14:08:44 -07:00
fmalita
1dedc3d2c0 SkPictureImageGenerator
R=reed@google.com

Review URL: https://codereview.chromium.org/1240093004
2015-08-04 13:53:14 -07:00
scroggo
1c005e4a38 Create a scanline decoder without creating a codec
Prior to this CL, if a client wanted to decode scanlines, they had to
create an SkCodec in order to get an SkScanlineDecoder. This introduces
complications if input data is not easily shared between the two
objects.

Instead, add methods to SkScanlineDecoder for creating a new one from
input data, and remove the creation functions from SkCodec.

Update DM and tests.

Review URL: https://codereview.chromium.org/1267583002
2015-08-04 09:24:45 -07:00
mtklein
dce5ce4276 Port SkBlurImage opts to SkOpts.
+268 -535 lines

I also rearranged the code a little bit to encapsulate itself better,
mostly replacing static helper functions with lambdas.  This also
let me merge the SSE2 and SSE4.1 code paths.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1264103004
2015-08-04 08:49:21 -07:00
robertphillips
fae010266f Remove IGNORE_ROT_AA_RECT_OPT flag
It looks like the positive version was added (SHADER_AA_FILL_RECT) but the negative version wasn't removed.

Review URL: https://codereview.chromium.org/1271903003
2015-08-04 08:04:29 -07:00
reed
e00368018d remove flags that control no code
BUG=skia:

Review URL: https://codereview.chromium.org/1259653004
2015-08-03 14:44:32 -07:00
reed
4dea94f621 remove getdevice guard for android
BUG=skia:
NOTRY=True

Review URL: https://codereview.chromium.org/1266363002
2015-08-03 11:45:34 -07:00
reed
c2e6827952 remove now-dead flags
BUG=skia:

Review URL: https://codereview.chromium.org/1258963005
2015-08-01 07:03:20 -07:00
mtklein
490b61569d Port SkXfermode opts to SkOpts.h
Renames Sk4pxXfermode.h to SkXfermode_opts.h,
and refactors it a tiny bit internally.

This moves xfermode optimization from being "compile-time everywhere but NEON"
to simply "runtime everywhere".  I don't anticipate any effect on perf or
correctness.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1264543006
2015-07-31 11:50:27 -07:00
mtklein
7eb0945af2 Port SkUtils opts to SkOpts.
With this new arrangement, the benefits of inlining sk_memset16/32 have changed.

On x86, they're not significantly different, except for small N<=10 where the inlined code is significantly slower.
On ARMv7 with NEON, our custom code is still significantly faster for N>10 (up to 2x faster).  For small N<=10 inlining is still significantly faster.
On ARMv7 without NEON, our custom code is still ridiculously faster (up to 10x) than inlining for N>10, though for small N<=10 inlining is still a little faster.

We were not using the NEON memset16 and memset32 procs on ARMv8.  At first blush, that seems to be an oversight, but if so it's an extremely lucky one.  The ARMv8 code generation for our memset16/32 procs is total garbage, leaving those methods ~8x slower than just inlining the memset, using the compiler's autovectorization.

So, no need to inline any more on x86, and still inline for N<=10 on ARMv7.  Always inline for ARMv8.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1270573002
2015-07-31 10:46:50 -07:00
reed
96a52c8c64 remove drawimagerect flags, as skia no longer respects them
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1262333006
2015-07-31 08:49:11 -07:00
msarett
b46e5e2033 Rename SkCodec_libbmp to SkBmpCodec
BUG=skia:

Review URL: https://codereview.chromium.org/1254963006
2015-07-30 11:36:40 -07:00
mtklein
8317a1832f Lay groundwork for SkOpts.
This doesn't really do anything yet.  It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.

BUG=skia:4117

Committed: https://skia.googlesource.com/skia/+/ce2c5055cee5d5d3c9fc84c1b3eeed4b4d84a827

Review URL: https://codereview.chromium.org/1255193002
2015-07-30 07:30:16 -07:00
bungeman
3ac6b7551d Remove SK_BUILD_FOR SDL, BREW, and PALM.
SDL isn't an OS anyway, it's just a library views can use. Remaining
support for Brew was removed some time ago, and there are currently
no uses of SK_BUILD_FOR_PALM.

Review URL: https://codereview.chromium.org/1268573002
2015-07-29 13:37:27 -07:00
mtklein
e88b1fb7a5 Move non-trivial constructors out-of-line.
There is more than one way to skin this SkPathPriv.h cat.

These constructors are large enough that they probably shouldn't have
been inlined like this anyway.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1253963004
2015-07-29 13:14:05 -07:00
robertphillips
5f865b9cf1 Move LightingShader to effects
Additionally this CL:

forces the light colors to be opaque
forces the light direction to be normalized
adds a raster implementation
adds a gm

Review URL: https://codereview.chromium.org/1245883003
2015-07-29 12:28:04 -07:00
joshualitt
aa2f65818d Adding debug SkScalerContext which returns random mask formats
TBR=reed@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1260473004
2015-07-29 10:14:58 -07:00
caryclark
125960152d make tests portable by using 565 compatible colors
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1262703002
2015-07-29 05:27:47 -07:00
joshualitt
b542bae1f5 Rename GrInOrderDrawBuffer to GrBufferedDrawTarget
BUG=skia:

Review URL: https://codereview.chromium.org/1261033002
2015-07-28 09:58:39 -07:00
mtklein
fd8ed69447 Move SkTHash.h to include/private.
include/views/SkOSWindow_Win.h includes it.

To move SkTHash.h to include/private, SkChecksum.h needs to go there too.  To move SkChecksum.h to include/private, SkTLogic needs to go there too.

This adds a bunch of -Iinclude/private to tools.gyp I missed in the last CL.

No public API changes.
TBR=reed@google.com

BUG=skia:4126

Review URL: https://codereview.chromium.org/1260613006
2015-07-28 09:54:52 -07:00
mtklein
cd1f2daf44 add -Iinclude/private anywhere we have -Isrc/core
I'll be moving headers from src/core to include/private, so this guarantees
that anyone who was finding them via -Isrc/core can now find them via
-Iinclude/private.

This is purely mechanical, mostly to preserve my sanity, so it's likely
(harmless) overkill.

Chromium's GYP and GN builds already set -Iinclude/private for Skia builds.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1265443002
2015-07-28 08:55:14 -07:00
mtklein
56b78a7a2a Revert of Lay groundwork for SkOpts. (patchset #3 id:40001 of https://codereview.chromium.org/1255193002/)
Reason for revert:
Chromium doesn't call SkGraphics::Init().  This setup won't work.

Original issue's description:
> Lay groundwork for SkOpts.
>
> This doesn't really do anything yet.  It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.
>
> BUG=skia:4117
>
> Committed: https://skia.googlesource.com/skia/+/ce2c5055cee5d5d3c9fc84c1b3eeed4b4d84a827

TBR=djsollen@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4117

Review URL: https://codereview.chromium.org/1261743002
2015-07-27 12:03:23 -07:00
mtklein
ce2c5055ce Lay groundwork for SkOpts.
This doesn't really do anything yet.  It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1255193002
2015-07-27 10:52:33 -07:00
Brian Salomon
4239fc2f69 Remove skia_arch_width, fold into skia_arch_type.
DOCS_PREVIEW= https://skia.org/?cl=1228553010

BUG=skia:4042
R=borenet@google.com, mtklein@google.com

Review URL: https://codereview.chromium.org/1228553010
2015-07-27 09:10:36 -04:00
wangyix
cef14bf9ce Added GrGLBlend.h|cpp with helper function AppendPorterDuffBlend() in preparation for SkComposeShader gpu backend
BUG=skia:

Review URL: https://codereview.chromium.org/1254833003
2015-07-24 13:48:26 -07:00
msarett
a56884c17f Fix Android x86 compile on mac
It appears I failed to fully disable it on the first attempt.

BUG=skia:

Review URL: https://codereview.chromium.org/1249083004
2015-07-23 11:57:13 -07:00
borenet
243406e580 Add skia_use_android_framework_defines GYP_DEFINE
BUG=skia:4082

Review URL: https://codereview.chromium.org/1243383002
2015-07-22 13:29:25 -07:00
msarett
551369163f Fix Android framework build
The Android framework was failing on conditions in
libjpeg-turbo.gyp, even though libjpeg-turbo is listed
in dependencies! for the framework (maybe because I
forgot to add export_dependent_settings!).  This is fixed
by rearranging the gyp file.

BUG=skia:

Review URL: https://codereview.chromium.org/1249003002
2015-07-22 09:08:28 -07:00
hendrikw
10b371c6e3 ANGLE deps roll
If we ever want to allow the command buffer as a skia gles2 backend,
we need a more up to date version of ANGLE, specifically there are
4 defines that differ between newer and older versions of ANGLE which
we use in skia, I've updated these in this change.

I'm not quite sure if what I've done for the 'angle_path' is correct,
I tried setting it to a path relative to skia, and to '<(DEPTH)', both
of which do not compile correctly, only '../' worked.

Committed: https://skia.googlesource.com/skia/+/db0b1e796ddbd08e6be8a666537318b1c0e2ce56

Review URL: https://codereview.chromium.org/1244843003
2015-07-21 14:50:08 -07:00
bungeman
b7069e9c1f Compile with VS2015.
Visual Studio 2015 has additional warnings around noexcept and
disabling exceptions, which can be worked around with the
(undocumented) _HAS_EXCEPTIONS macro.

Visual Studio 2013 and 2015 have roundf in math.h, so use it to
avoid extra work and casts.

We avoid using cmath, as it undefs isfinite on gcc, but Visual Studio
2015 no longer provides overloads of copysign from math.h (which is
actually correct). As a result, use copysignf (which is available in
math.h in 2013 and 2015) directly.

Review URL: https://codereview.chromium.org/1244173005
2015-07-21 14:14:30 -07:00
hendrikw
cd94d7341f Revert of skia: ANGLE deps roll (patchset #1 id:1 of https://codereview.chromium.org/1244843003/)
Reason for revert:
Compile error that the try bots didn't catch :(

Original issue's description:
> ANGLE deps roll
>
> If we ever want to allow the command buffer as a skia gles2 backend,
> we need a more up to date version of ANGLE, specifically there are
> 4 defines that differ between newer and older versions of ANGLE which
> we use in skia, I've updated these in this change.
>
> I'm not quite sure if what I've done for the 'angle_path' is correct,
> I tried setting it to a path relative to skia, and to '<(DEPTH)', both
> of which do not compile correctly, only '../' worked.
>
> Committed: https://skia.googlesource.com/skia/+/db0b1e796ddbd08e6be8a666537318b1c0e2ce56

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1245223007
2015-07-21 14:06:10 -07:00
hendrikw
db0b1e796d ANGLE deps roll
If we ever want to allow the command buffer as a skia gles2 backend,
we need a more up to date version of ANGLE, specifically there are
4 defines that differ between newer and older versions of ANGLE which
we use in skia, I've updated these in this change.

I'm not quite sure if what I've done for the 'angle_path' is correct,
I tried setting it to a path relative to skia, and to '<(DEPTH)', both
of which do not compile correctly, only '../' worked.

Review URL: https://codereview.chromium.org/1244843003
2015-07-21 13:18:27 -07:00
msarett
cf2a6a47e4 Reenable yasm for Android x86 and x86-64 on Linux host
It turns out that gyp (kind of) has support for cross
compiling with a different host and target.  We simply
need to specify CC_host and CC_target instead of CC.

Making this change allows us to compile yasm on a Linux
host for Android.

We run into problems on Mac because
the linker on a Mac host requires different command line
arguments than the linker on the Android target.  In
looking through the code for gyp itself and speaking to
Ben, it doesn't appear to me that gyp supports passing
different arguments to host and target linkers.

I would imagine that we would have similar problems on
Windows.

Below is a link to a CL that would fix this issue in gyp.
It looks like it has been dropped for a long time.
Thanks to Ben for this link!
https://chromiumcodereview.appspot.com/10795044/

Also I'm adding a link to the build instructions for Chrome
(thanks again Ben).  It looks like they only support
building for Android from Linux.
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions

My next steps are:
1) Getting in touch with Torne or someone else with gyp to
see if people are aware of this issue or interested in
fixing it.
2) Deciding if skia should care about this issue.
3) Deciding if skia should work around this issue.

It'd be really great to hear your thoughts on (2) and (3).
My first thought is that we shouldn't care because, as
long as we always compile the production copy of skia for
Android on Linux, we will get the fast code.  Is this
a valid conclusion?  Is there a way to write Android apps
on Mac that accidentally use the slower code?

If we do care, there are workarounds:
For Mac, we can check in a yasm binary - it's a little
smaller than the one I am deleting in this CL :-/
For Windows, we *might* be able to use the yasm.exe binary
already in externals (we get this from DEPS because this is
how chromium uses yasm on Windows).
Are there other platforms that we care about?

Let me know what you think!

BUG=skia:4028
DOCS_PREVIEW= https://skia.org/?cl=1239333002

Review URL: https://codereview.chromium.org/1239333002
2015-07-21 12:01:48 -07:00
joshualitt
259fbf1916 Add sanity check to GrAtlasTextBlob
BUG=skia:

Review URL: https://codereview.chromium.org/1250693002
2015-07-21 11:39:35 -07:00
joshualitt
374b2f7cea rename BitmapTextBlob and move it to its own file
BUG=skia:

Review URL: https://codereview.chromium.org/1249663002
2015-07-21 08:05:03 -07:00
mtklein
54f313ccb8 Clean up dead xfermode opts code.
Now that SK_SUPPORT_LEGACY_XFERMODES is unused, tons of code becomes dead.

Nothing is needed in opts/ anymore for x86.
We still do runtime NEON detection, which just duplicates Sk4pxXfermode.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1230023011
2015-07-20 07:14:19 -07:00
reed
84984efeb6 Revert[2] of guard to remove DrawBitmapRectFlags
This reverts commit 91110195a2.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1240753003
2015-07-17 07:09:43 -07:00
joshualitt
9ec0d4342d Removing GrTemplates.h
BUG=skia:

Review URL: https://codereview.chromium.org/1233923004
2015-07-17 06:40:29 -07:00
scroggo
91110195a2 Revert of guard to remove DrawBitmapRectFlags (patchset #1 id:1 of https://codereview.chromium.org/1235393003/)
Reason for revert:
breaking android framework build

Original issue's description:
> guard to remove DrawBitmapRectFlags
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6fb0b6779e40ce05c20cf279f0ecff31fa3cd60d

TBR=fmalita@chromium.org,djsollen@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1230823007
2015-07-17 05:57:34 -07:00
reed
6fb0b6779e guard to remove DrawBitmapRectFlags
BUG=skia:

Review URL: https://codereview.chromium.org/1235393003
2015-07-16 06:10:02 -07:00
bungeman
786ece17c3 Allow Android font manager on *nix.
There is nothing left in the SkFontMgr_android.cpp which is specific
to Android, so allow it to be built and used on *nix platforms. This
allows for easier development and testing.

The only reason to limit to *nix platforms are the dependencies on
Expat and FreeType. This should be buildable and runnable on other
platforms when these dependencies are also available.

Review URL: https://codereview.chromium.org/1228833003
2015-07-15 10:58:47 -07:00
halcanary
4524813cbc experimental: remove old PDF benchmarking tools
TBR=

Review URL: https://codereview.chromium.org/1233093004
2015-07-15 08:06:29 -07:00
scroggo
b3d54d7c07 Let Android use old version of onDrawBitmapRect.
Define SK_SUPPORT_LEGACY_ONDRAWIMAGERECT when building for the
Android framework, since SkiaCanvasProxy overrides the old version
of the method.

Fixes master-skia build.

NOTRY=True

Review URL: https://codereview.chromium.org/1237903002
2015-07-14 13:59:10 -07:00
joshualitt
5ca41c1647 Remove GrRedBlackTree
BUG=skia:

Review URL: https://codereview.chromium.org/1226203013
2015-07-14 11:07:53 -07:00
joshualitt
3df1e2163f Another trivial cleanup
TBR=bsalomon@google.com
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039

Review URL: https://codereview.chromium.org/1229303003
2015-07-14 11:02:46 -07:00
mtklein
4abc186d02 Add a GYP flag to define SKNX_NO_SIMD when set.
Will use this with a new -SKNX_NO_SIMD bot.

BUG=skia:

Review URL: https://codereview.chromium.org/1227163016
2015-07-14 05:52:52 -07:00
joshualitt
6968428f44 Revert of Another trivial cleanup (patchset #6 id:100001 of https://codereview.chromium.org/1229303003/)
Reason for revert:
breaking things

Original issue's description:
> Another trivial cleanup
>
> TBR=bsalomon@google.com
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/52e7657cd850f95e66eb23c6d138ee45149a1039

TBR=robertphillips@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1233853004
2015-07-13 13:29:13 -07:00
robertphillips
3d32d768cd Add new SkPoint3 class
The existing Light filter and the upcoming Lighting Shader both need a Point3 class

Review URL: https://codereview.chromium.org/1229693009
2015-07-13 13:16:44 -07:00
joshualitt
52e7657cd8 Another trivial cleanup
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1229303003
2015-07-13 13:11:40 -07:00
joshualitt
690fc75b29 Get rid of GrMurmur3Hash
BUG=skia:

Review URL: https://codereview.chromium.org/1233933002
2015-07-13 12:49:13 -07:00
joshualitt
2419b360ea Add GrNonAtomicRef
BUG=skia:

Review URL: https://codereview.chromium.org/1238523002
2015-07-13 09:29:42 -07:00
mtklein
24d8249638 Tweak GYP to also link with XCode 7.
Using the XCode 7 beta, the file in the GYP doesn't exist, instead we get

/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib/libz.tbd

which is a text file describing libz and pointing to /usr/lib/libz.1.dylib.

There's a weird easy fix, which is that GYP looks for things in libraries like 'libz.dylib' and pattern match translates that to '-lz' on the command line.  (Infuriatingly, a literal '-lz' is interpreted as a file path...)

BUG=skia:

Review URL: https://codereview.chromium.org/1234493002
2015-07-13 08:13:03 -07:00
joshualitt
3989205322 remove some unused stuff
BUG=skia:

Review URL: https://codereview.chromium.org/1231163002
2015-07-10 14:14:03 -07:00
msarett
718e41dcb0 Fix msvs builds
BUG=skia:

Review URL: https://codereview.chromium.org/1229303002
2015-07-10 10:59:47 -07:00
scroggo
139491fbaa Use the upstream version of libwebp, v0.4.3.
DEPS:
Update to pull v0.4.3 of libwebp from upstream

gyp/libwebp.gyp:
Add new files, as referenced by the gyp file used by Chromium.

resource/tests:
Add regression tests for particular images.

BUG=skia:3442
BUG=skia:3315
BUG=skia:3429

Committed: https://skia.googlesource.com/skia/+/3aa0fb4d80c76b559ff4b82d5e569993aea06da1

Review URL: https://codereview.chromium.org/1178013008
2015-07-10 09:32:09 -07:00
mtklein
828877d726 Outline SkSpinlock::acquire().
The proportion of time spent doing useful work is well over 99% in acquire(),
so outlining it doesn't hurt speed at all, and makes it much easier to pick out
on a profile.

It'd be about 50/50 work/overhead if we outlined the extremely-cheap release().
I also tried outlining some SkRefCnt methods with similar mixed results.

BUG=skia:

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1212253013
2015-07-09 10:51:36 -07:00
jvanverth
d17a32966a Add normal map sample
This adds an example of an SkShader that does normal
mapping. It has a single directional light and an
ambient light.

Committed: https://skia.googlesource.com/skia/+/8e0da72ba890de395c9946ec6639c9e1e7b16027

Review URL: https://codereview.chromium.org/1212813009
2015-07-09 09:04:16 -07:00
msarett
72394ef87c Do not try to compile x86 and x86_64 .asm files on Android
This is currently only works on Linux hosts because we have checked
in a binary and does not work on Mac hosts.  We are disabling until
we find a suitable solution.

BUG=skia:4028

Review URL: https://codereview.chromium.org/1228823006
2015-07-09 07:55:01 -07:00
joshualitt
9cc1775e72 rename GrShaderDataManager -> GrProcessorDataManager
BUG=skia:

Review URL: https://codereview.chromium.org/1228683002
2015-07-09 06:28:14 -07:00
robertphillips
426388eeb7 Revert of Add normal map sample (patchset #6 id:100001 of https://codereview.chromium.org/1212813009/)
Reason for revert:
Compilation failures:

../../../../../samplecode/SampleLighting.cpp:13:18: fatal error: SkGr.h: No such file or directory

Original issue's description:
> Add normal map sample
>
> This adds an example of an SkShader that does normal
> mapping. It has a single directional light and an
> ambient light.
>
> Committed: https://skia.googlesource.com/skia/+/8e0da72ba890de395c9946ec6639c9e1e7b16027

TBR=reed@google.com,bsalomon@google.com,jvanverth@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1230603002
2015-07-08 14:46:12 -07:00
jvanverth
8e0da72ba8 Add normal map sample
This adds an example of an SkShader that does normal
mapping. It has a single directional light and an
ambient light.

Review URL: https://codereview.chromium.org/1212813009
2015-07-08 14:21:47 -07:00
scroggo
c1d1dd738e Revert of Use the upstream version of libwebp, v0.4.3. (patchset #6 id:70001 of https://codereview.chromium.org/1178013008/)
Reason for revert:
Breaking the build e.g. http://build.chromium.org/p/client.skia/builders/Perf-Mac10.8-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Release/builds/1082/steps/build%20nanobench/logs/stdio

../../../third_party/externals/libwebp/src/utils/./endian_inl.h:51:10: error: use of unknown builtin '__builtin_bswap16' [-Wimplicit-function-declaration]
  return __builtin_bswap16(x);
         ^
1 error generated.

Original issue's description:
> Use the upstream version of libwebp, v0.4.3.
>
> DEPS:
> Update to pull v0.4.3 of libwebp from upstream
>
> gyp/libwebp.gyp:
> Add new files, as referenced by the gyp file used by Chromium.
>
> resource/tests:
> Add regression tests for particular images.
>
> BUG=skia:3442
> BUG=skia:3315
> BUG=skia:3429
>
> Committed: https://skia.googlesource.com/skia/+/3aa0fb4d80c76b559ff4b82d5e569993aea06da1

TBR=djsollen@google.com,jzern@chromium.org,msarett@google.com,emmaleer@google.com,scroggo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3442

Review URL: https://codereview.chromium.org/1223583004
2015-07-08 10:57:22 -07:00
scroggo
3aa0fb4d80 Use the upstream version of libwebp, v0.4.3.
DEPS:
Update to pull v0.4.3 of libwebp from upstream

gyp/libwebp.gyp:
Add new files, as referenced by the gyp file used by Chromium.

resource/tests:
Add regression tests for particular images.

BUG=skia:3442
BUG=skia:3315
BUG=skia:3429

Review URL: https://codereview.chromium.org/1178013008
2015-07-08 10:48:40 -07:00
mtklein
60c0475575 Add tools/flatten to flatten nested pictures in .skps.
Tested by running on skps/sp_desk_nytimes.skp.
The output .skp had no nested draw picture calls, and the files were both 9.3M.

BUG=skia:

Review URL: https://codereview.chromium.org/1221303020
2015-07-08 10:06:01 -07:00
joshualitt
8ca93e7c73 Initial CL to create dummy GrShaderDataManager and thread it through
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1225673007
2015-07-08 06:51:43 -07:00
mtklein
1b24933e52 Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.
SkThread.h doesn't do anything anymore execept include those two,
and thankfully, it doesn't seem to be mentioned outside Skia.

No public API changes.
TBR=reed@google.com

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/c50acf2321d7a934c80d754e9cbe936dfb8eb4cc

Review URL: https://codereview.chromium.org/1215393002
2015-07-07 12:21:22 -07:00
msarett
1c8a587120 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

Committed: https://skia.googlesource.com/skia/+/40141b57f061fbfcc2fa38da942d9efe25aca4d0

Review URL: https://codereview.chromium.org/1180983002
2015-07-07 08:50:01 -07:00
borenet
11271fe3a4 Add scripts for running LLVM coverage
BUG=skia:2430

Review URL: https://codereview.chromium.org/1213063009
2015-07-06 07:43:58 -07:00
jvanverth
94a2fbc6cf Revert of Switch SkJpegCode to libjpeg-turbo (patchset #29 id:750001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
DEPS roll failing

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5
>
> Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75
>
> Committed: https://skia.googlesource.com/skia/+/40141b57f061fbfcc2fa38da942d9efe25aca4d0

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1226543003
2015-07-02 10:40:24 -07:00
jvanverth
02802f64ea Revert of Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate. (patchset #4 id:60001 of https://codereview.chromium.org/1215393002/)
Reason for revert:
Breaking the roll.

E.g. on android_chromium_gn_compile_dbg:

FAILED: /b/build/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -MMD -MF obj/skia/ext/libskia.SkMemory_new_handler.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=1 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DDONT_EMBED_BUILD_METADATA -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DUSE_PROPRIETARY_CODECS -DV8_USE_EXTERNAL_STARTUP_DATA -DVIDEO_HOLE=1 -DMOBILE_SAFE_BROWSING -DSAFE_BROWSING_SERVICE -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DSKIA_IMPLEMENTATION=1 -DSK_ARM_HAS_OPTIONAL_NEON -DSK_GAMMA_APPLY_TO_A8 -DSK_GAMMA_EXPONENT=1.4 -DSK_GAMMA_CONTRAST=0.0 -DSK_DEFAULT_FONT_CACHE_LIMIT=1048576 -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSKIA_DLL -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_ANDROID -DUSE_CHROMIUM_SKIA -DXML_STATIC -I../.. -Igen -I../../third_party/skia/include/private -I../../third_party/skia/src/core -I../../third_party/skia/src/image -I../../third_party/skia/src/opts -I../../third_party/skia/src/pdf -I../../third_party/skia/src/ports -I../../third_party/skia/src/sfnt -I../../third_party/skia/src/utils -I../../third_party/skia/src/lazy -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/zlib -I../../third_party/expat/files/lib -I../../third_party/freetype-android/include -I../../third_party/freetype-android/src/include -I../../third_party/android_tools/ndk/sources/android/cpufeatures -fno-strict-aliasing -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -mthumb -mthumb-interwork -fno-tree-sra -fno-caller-saves -funwind-tables -fPIC -pipe -ffunction-sections -funwind-tables -fno-short-enums -finline-limit=64 -mfpu=vfpv3-d16 -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fvisibility=hidden --sysroot=/b/build/slave/android_chromium_gn/build/src/third_party/android_tools/ndk/platforms/android-16/arch-arm -Os -fdata-sections -ffunction-sections -fomit-frame-pointer -g1 -Wno-format -Wendif-labels -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wno-extra -Wno-ignored-qualifiers -Wno-type-limits -Wno-unused-local-typedefs -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -Wno-deprecated -Wno-narrowing -Wno-literal-suffix -Wno-error=c++0x-compat -Wno-non-virtual-dtor -Wno-sign-promo -c ../../skia/ext/SkMemory_new_handler.cpp -o obj/skia/ext/libskia.SkMemory_new_handler.o
../../skia/ext/SkMemory_new_handler.cpp:12:52: fatal error: third_party/skia/include/core/SkThread.h: No such file or directory
 #include "third_party/skia/include/core/SkThread.h"

Original issue's description:
> Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.
>
> SkThread.h doesn't do anything anymore execept include those two,
> and thankfully, it doesn't seem to be mentioned outside Skia.
>
> No public API changes.
> TBR=reed@google.com
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c50acf2321d7a934c80d754e9cbe936dfb8eb4cc

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1214603003
2015-07-02 06:42:49 -07:00
msarett
40141b57f0 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

Review URL: https://codereview.chromium.org/1180983002
2015-07-01 14:41:02 -07:00
mtklein
c50acf2321 Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.
SkThread.h doesn't do anything anymore execept include those two,
and thankfully, it doesn't seem to be mentioned outside Skia.

No public API changes.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1215393002
2015-07-01 14:00:57 -07:00
Mike Klein
478c9e4851 Revert "Move headers used by headers in include/ to include/private."
This reverts commit 928e16565f.

BUG=skia:

Review URL: https://codereview.chromium.org/1213093004.
2015-07-01 16:35:59 -04:00
msarett
aa2a7de0ff Revert of Switch SkJpegCode to libjpeg-turbo (patchset #28 id:710001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
Broke iOS build.

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5
>
> Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1213093003
2015-07-01 13:11:08 -07:00
msarett
e9e3ee33f3 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

Review URL: https://codereview.chromium.org/1180983002
2015-07-01 12:36:18 -07:00
mtklein
928e16565f Move headers used by headers in include/ to include/private.
Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/a89f55198bdc58f0b6f6196907ab25a6afc1a661

Review URL: https://codereview.chromium.org/1217293004
2015-07-01 11:55:42 -07:00
jvanverth
4417c7f8bb Revert "Move headers used by headers in include/ to include/private."
This reverts commit a89f55198b.

Reason: breaking the roll.

TBR=mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1216033008
2015-07-01 09:45:46 -07:00
mtklein
a89f55198b Move headers used by headers in include/ to include/private.
Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

Review URL: https://codereview.chromium.org/1217293004
2015-07-01 08:41:15 -07:00
joshualitt
962cc98eb4 Add benchmarkstream to visualbench
BUG=skia:

Review URL: https://codereview.chromium.org/1215033002
2015-06-30 07:43:14 -07:00
joshualitt
91b6f32e07 Move visualbench to its own folder
BUG=skia:

Review URL: https://codereview.chromium.org/1216973002
2015-06-30 06:50:10 -07:00
kkinnunen
7aedda57f8 Refactor separable varying location info to be stored in GrGLProgram subclass
Refactor separable varying location info to be stored in GrGLProgram
subclass GrGLProgram instead of storing it in GrGLPathProcessor.

Separable varyings are exactly analoguous to uniforms: they are inputs
to the shader program. Shader compile-time information about uniforms is gathered to
GrGLProgramBuilder. This information is the converted to link-time
information, uniform locations, when constructing the program. Separable
varyings need to have same lifetime model.

This is needed in the future to support path rendering in Chromium. The
Chromium pseudo-extension will expose program fragment input binding
function similar to uniform binding function. Thus the separable varying
locations need to be decided and bound before link, e.g. before
GrGLProgram is created. This will be achieved in further patches by
overloading GrGLProgramBuilder::bindProgramResourceLocations() in
GrGLNvprProgramBuilder.

BUG=chromium:344330

Review URL: https://codereview.chromium.org/1186113007
2015-06-29 23:01:28 -07:00
bungeman
3fdde4e129 Remove old iOS porting files.
These files do not appear to be used, are unfinished, and should be
redundant with the mac porting files.

Review URL: https://codereview.chromium.org/1197963003
2015-06-29 14:12:41 -07:00
herb
c782b2a046 Implement shared locks in the style of pthread's rwlock.
BUG=skia:

Review URL: https://codereview.chromium.org/1215503005
2015-06-29 13:46:55 -07:00
msarett
f657b1093e Revert of Switch SkJpegCode to libjpeg-turbo (patchset #25 id:680001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
yasm is leaking memory :(.

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/926/steps/build%20dm/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d
>
> Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1214023003
2015-06-29 10:30:59 -07:00
msarett
f8bf9181d7 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

Review URL: https://codereview.chromium.org/1180983002
2015-06-29 10:14:11 -07:00
mtklein
2766c00fc0 remove SkInstCnt
It's been outclassed by Valgrind and leak sanitizer,
and it seems to be causing problems for external folks building Skia.

I'm not sure why our own builds seem unaffected.

Latest thread:
https://groups.google.com/forum/#!topic/skia-discuss/oj9FsQwwSF0

BUG=skia:

Review URL: https://codereview.chromium.org/1217573002
2015-06-26 11:45:03 -07:00
reed
4c21dc5ddf add drawImageNine
this also exposes nine-patch drawing directly to devices, and creates a shared iterator for unrolling a nine-patch into single rect->rect draws.

BUG=skia:

Review URL: https://codereview.chromium.org/1211583003
2015-06-25 12:32:03 -07:00
borenet
283714f0de Fix link error when running make tools with skia_shared_lib=1
I'm getting this error, which is fixed by this change:

[75/76] LINK skpdiff
FAILED: c++ -m64 -pie -Wl,-rpath=\$ORIGIN/lib/ -Wl,-rpath-link=lib/ -o skpdiff -Wl,--start-group obj/tools/skpdiff/skpdiff.skpdiff_main.o obj/tools/skpdiff/skpdiff.SkDiffContext.o obj/tools/skpdiff/skpdiff.SkImageDiffer.o obj/tools/skpdiff/skpdiff.SkPMetric.o obj/tools/skpdiff/skpdiff.skpdiff_util.o obj/tools/skpdiff/skpdiff.SkDifferentPixelsMetric_cpu.o obj/gyp/libflags.a obj/gyp/libpicture_utils.a -Wl,--end-group lib/libskia.so -lrt -lz
/usr/bin/ld: obj/tools/skpdiff/skpdiff.SkDiffContext.o: undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

BUG=skia:

Review URL: https://codereview.chromium.org/1206333002
2015-06-25 08:05:19 -07:00
mtklein
c0bdecb920 Revert of Switch SkJpegCode to libjpeg-turbo (patchset #11 id:540001 of https://codereview.chromium.org/1180983002/)
Reason for revert:
https://uberchromegw.corp.google.com/i/client.skia.compile/builders/Build-Ubuntu-GCC-MipsDSP2-Debug-Android/builds/1136/steps/build%20most/logs/stdio

Original issue's description:
> Add libjpeg-turbo library (depends on yasm)
> Mangle external function names to avoid conflict with libjpeg
> Take advantage of direct color conversion (RGBA, BGRA, 565)
> Prepare to use jpeg_skip_scanlines (when it is upstreamed)
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d

TBR=scroggo@google.com,djsollen@google.com,emmaleer@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1199253006
2015-06-24 15:14:48 -07:00
msarett
b60c3f8291 Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg
Take advantage of direct color conversion (RGBA, BGRA, 565)
Prepare to use jpeg_skip_scanlines (when it is upstreamed)

BUG=skia:

Review URL: https://codereview.chromium.org/1180983002
2015-06-24 15:10:25 -07:00
reed
71c3c760a8 add SkCanvas::drawAtlas
BUG=skia:

Review URL: https://codereview.chromium.org/1181913003
2015-06-24 10:29:18 -07:00
jvanverth
cba99b88fd Move GLSL-specific routines/classes to separate glsl directory
The purpose is to begin separating our GLSL-specific code from
our GL-specific code, so it can be used with the GL45 platform

Review URL: https://codereview.chromium.org/1202293002
2015-06-24 06:59:57 -07:00
bungeman
c53085413e Rename SkFontConfigParser_android SkFontMgr_android_parser.
There are a number of files with 'FontConfig' in their names which
just have to do with font configuration, but nothing to do with
the FontConfig project or even with each other. This clarifies
that these files deal with parsing for the Android font manager.

Review URL: https://codereview.chromium.org/1200103008
2015-06-23 13:25:46 -07:00
reed
dab1f60d12 remove SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS (now in SkUserConfig.h)
BUG=skia:
TBR=
NOTRY=True

Review URL: https://codereview.chromium.org/1200623003
2015-06-20 08:45:59 -07:00
robertphillips
fcf7829b67 remove SkDeviceProperties
There is a lot more clean up to do here but this is probably a big enough bite.

Review URL: https://codereview.chromium.org/1196683003
2015-06-19 11:49:52 -07:00
scroggo
6f5e619b87 Add SkWebpCodec, for decoding .webp images.
Based on SkImageDecoder_libwebp.

TODO:
Support YUV? (Longer term - may influence our API for SkImageGenerator)

BUG=skia:3257

Review URL: https://codereview.chromium.org/1044433002
2015-06-18 12:53:43 -07:00
reed
bedd0e87e6 remove SkData proc guard
BUG=skia:
NOTRY=True

Review URL: https://codereview.chromium.org/1188773008
2015-06-18 12:11:36 -07:00
bsalomon
241b56db1d Allows windowed apps to be built on the Mac just by writing a SkOSWindow subclass without needing nib/plist files.
Makes visualbench work on the Mac.

Review URL: https://codereview.chromium.org/1184143011
2015-06-18 11:49:42 -07:00
mtklein
525e90ab92 Try again to rename one SkJpegUtility.h to remove ambiguity.
This time rename the new codec one, which is not referenced externally.

BUG=skia:

Review URL: https://codereview.chromium.org/1181093008
2015-06-18 09:58:57 -07:00
bungeman
77f85adadb Move Android SkFontMgr::Factory to its own file.
Review URL: https://codereview.chromium.org/1190993002
2015-06-17 12:07:10 -07:00
reed
c292ad4c1d add guard for SkData proc change
BUG=skia:
NOTRY=True
TBR=

Review URL: https://codereview.chromium.org/1178023003
2015-06-17 11:48:57 -07:00
mtklein
61fa22be10 Add and use SkSemaphore
This allows a faster implementation of our SkTaskGroup thread pool.
It also means we don't need SkCondVar (which, remember, isn't supported on XP.)

Doing some testing with SampleApp, this really cuts down on the overhead from SkTaskGroup, e.g. 30% to 10%.

BUG=skia:

Review URL: https://codereview.chromium.org/1192573003
2015-06-17 10:50:25 -07:00
bungeman
0b1de2626a Move FontConfig factory into separate file.
This moves the SkFontMgr::Factory implementation which creates a
FontMgr around FontConfig into its own file, and allows the user
to create one manually.

Review URL: https://codereview.chromium.org/1189753007
2015-06-17 07:56:00 -07:00
bsalomon
48297f72fb Allow skia_win.cpp to be compiled in CONSOLE or GUI mode.
Make visualbench and SampleApp build in CONSOLE mode so that we can see stdout.

I verified that by undoing the gyp modifications both tools will build as GUI.

Review URL: https://codereview.chromium.org/1185303004
2015-06-16 12:21:00 -07:00
bungeman
5cf19498f9 Refactor SkFontHost_linux into SkFontMgr_custom.
Review URL: https://codereview.chromium.org/1184923002
2015-06-15 15:17:21 -07:00
scroggo
27631bd593 Revert "Remove ambiguity of SkJpegUtility name."
TBR=mtklein

This reverts commit 93858b49a9.

This revert should fix the Android framework build.

NOTREECHECKS=True
NOTRY=True

Review URL: https://codereview.chromium.org/1187463005
2015-06-15 09:10:03 -07:00
bungeman
c0c4d75da4 The correct case of 'sdl' directory in gyp.
The 'sdl' directory is lower case, but the gyp files refer to it
with upper case.
2015-06-12 17:24:51 -04:00
joshualitt
030dc847dc Visual bench on native android
BUG=skia:

Review URL: https://codereview.chromium.org/1164403002
2015-06-12 12:51:44 -07:00
mtklein
93858b49a9 Remove ambiguity of SkJpegUtility name.
We have two, one in images/, the other in codec/.  As codec's the new hotness,
I left it's name vanilla and suffixed the old one.

BUG=skia:

Review URL: https://codereview.chromium.org/1185733002
2015-06-12 08:43:30 -07:00
cdalton
ee0175f1b0 Move blend enums into GrBlend.h
Moves blend enums from GrXferProcessor.h to GrBlend.h, makes GrBlend.h
public.

BUG=skia:

Review URL: https://codereview.chromium.org/1180713008
2015-06-12 08:21:26 -07:00
ethannicholas
1a1b3ac0d4 Added GrAAFlatteningConvexPathRenderer.
This is an alternate version of GrAAConvexPathRenderer which handles
curves by first flattening them to straight lines.

BUG=skia:

Review URL: https://codereview.chromium.org/1158803002
2015-06-10 12:11:17 -07:00
bsalomon
55812362f1 Towards removing getTexture() on SkImage
Review URL: https://codereview.chromium.org/1166993002
2015-06-10 08:49:28 -07:00
msarett
b23e6aa676 Subset decoding benchmarks
It was my goal to create benchmarks that could measure all
of the use cases that we have identified.  I think single
subsets, translating, and scaling are the important ones.

It might be a good idea to discuss the document in greater
detail as well.  I just wanted to share this to aid the
discussion.
https://docs.google.com/a/google.com/document/d/1OxW96GDMAlw6dnzNXmiNX-F9oDBBlGXzSsgd0DMIkbI/edit?usp=sharing

BUG=skia:

Review URL: https://codereview.chromium.org/1160953002
2015-06-09 13:56:10 -07:00
reed
56263c78d8 delete (unused) TransparentShader
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1153193014
2015-06-05 11:31:26 -07:00
bungeman
f3b8f10f22 Remove SK_ANDROID_FREETYPE_HAS_MM from build.
This flag is now no longer used now that GX variations now seem
to have landed for good.

Review URL: https://codereview.chromium.org/1155303007
2015-06-04 07:38:52 -07:00
reed
64045423dd refactor bitmapshader to use a controller
BUG=skia:

Review URL: https://codereview.chromium.org/1153123003
2015-06-04 06:31:31 -07:00
joshualitt
7fe8ee4cb7 Expand VisualBench to a real benching tool
BUG=skia:

Review URL: https://codereview.chromium.org/1159213002
2015-06-01 10:03:55 -07:00
joshualitt
611cc5f964 delete experimental path renderers
BUG=skia:

Review URL: https://codereview.chromium.org/1160863006
2015-05-29 07:09:09 -07:00
joshualitt
7224c86632 add context override of GeometryBufferMapThreshold
BUG=skia:

Review URL: https://codereview.chromium.org/1159713006
2015-05-29 06:46:47 -07:00
cdalton
6fd158ea47 Implement Porter Duff XP with a blend table
Removes the runtime logic used by PorterDuffXferProcessor to decide
blend coeffs and shader outputs, and instead uses a compile-time
constant table of pre-selected blend formulas. Separates out the dst
read fallback into its own XP.

Introduces a new blend strategy for srcCoeff=0 that can apply coverage
with a reverse subtract blend equation instead of dual source
blending.

Adds new macros in GrBlend.h to analyze blend formulas both runtime.

Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no
longer used.

Adds a GM that verifies all xfermodes, including arithmetic, with the
color/coverage invariants used by Porter Duff.

Adds a unit test that verifies each Porter Duff formula with every
color/coverage invariant.

Major changes:

 * Uses a reverse subtract blend equation for coverage when srcCoeff=0
   (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't
   support dual source blending no longer require a dst copy for
   dst-in and modulate.

 * Sets BlendInfo::fWriteColor to false when the blend does not modify
   the dst. GrGLGpu will now use glColorMask instead of blending for
   these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]).

 * Converts all SA blend coeffs to One for opaque inputs, and ISA to
   Zero if there is also no coverage. (We keep ISA around when there
   is coverage because we use it to tweak alpha for coverage.)

 * Abandons solid white optimizations for the sake of simplicity
   (screen was the only mode that previous had solid white opts).

Minor differences:

 * Inconsequential differences in opt flags (e.g. we now return
   kCanTweakAlphaForCoverage_OptFlag even when there is no coverage).

 * Src coeffs when the shader outputs 0.

 * IS2C vs IS2A when the secondary output is scalar.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/9a70920db22b6309c671f8e5d519bb95570e4414

Review URL: https://codereview.chromium.org/1124373002
2015-05-27 15:08:33 -07:00
robertphillips
ccb1b57510 Move SkGpuDevice::internalDrawPath to GrBlurUtils::drawPathWithMaskFilter
This CL is ugly but it:

removes the stored SkGpuDevice back pointer from GrTextContext (at the cost of passing more parameters)
moves SkGpuDevice::internalDrawPath to GrDrawContext::drawPathFull

Unfortunately, the GrTextContext-derived classes still need the SkGpuDevice for filterTextFlags calls but I will try removing that in a separate CL.

Review URL: https://codereview.chromium.org/1157773003
2015-05-27 11:02:55 -07:00
joshualitt
da7b843fbd CL to add setFullscreen and setVsync to SkWindow
BUG=skia:

Review URL: https://codereview.chromium.org/1151333004
2015-05-27 09:19:03 -07:00
halcanary
a681433d42 SkPDF: with opaque draws, treat SRC mode as SRC_OVER
BUG=473572

Review URL: https://codereview.chromium.org/1159763004
2015-05-27 08:53:36 -07:00
bsalomon
dc47ff7f1f Split GrCaps impl out into its own cpp
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1151503003
2015-05-26 12:16:59 -07:00
robertphillips
ea46150344 Split drawing functionality out of GrContext and into new GrDrawContext
This is mainly a mechanical CL. There were some fiddly bits in GrContext.cpp where it no longer had access to the GrDrawTarget (and had to use the new GrDrawContext).

I've converted GrAARectRenderer & GrOvalRenderer into static classes so I could stop allocating them.

Review URL: https://codereview.chromium.org/1151283004
2015-05-26 11:38:03 -07:00
bungeman
c33db93d1b Revert of Implement Porter Duff XP with a blend table (patchset #12 id:220001 of https://codereview.chromium.org/1124373002/)
Reason for revert:
Blocking DEPS roll into Chromium. Crashing virtual/gpu/fast/canvas/canvas-composite-*.html tests with the assert

../../third_party/skia/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp:281: failed assertion "k110_GrGLSLGeneration != gpu->glslGeneration() || fOutputs.empty()"

Original issue's description:
> Implement Porter Duff XP with a blend table
>
> Removes the runtime logic used by PorterDuffXferProcessor to decide
> blend coeffs and shader outputs, and instead uses a compile-time
> constant table of pre-selected blend formulas.
>
> Introduces a new blend strategy for srcCoeff=0 that can apply coverage
> with a reverse subtract blend equation instead of dual source
> blending.
>
> Adds new macros in GrBlend.h to analyze blend formulas both runtime.
>
> Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no
> longer used.
>
> Adds a GM that verifies all xfermodes, including arithmetic, with the
> color/coverage invariants used by Porter Duff.
>
> Adds a unit test that verifies each Porter Duff formula with every
> color/coverage invariant.
>
> Major changes:
>
>  * Uses a reverse subtract blend equation for coverage when srcCoeff=0
>    (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't
>    support dual source blending no longer require a dst copy for
>    dst-in and modulate.
>
>  * Sets BlendInfo::fWriteColor to false when the blend does not modify
>    the dst. GrGLGpu will now use glColorMask instead of blending for
>    these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]).
>
>  * Converts all SA blend coeffs to One for opaque inputs, and ISA to
>    Zero if there is also no coverage. (We keep ISA around when there
>    is coverage because we use it to tweak alpha for coverage.)
>
>  * Abandons solid white optimizations for the sake of simplicity
>    (screen was the only mode that previous had solid white opts).
>
> Minor differences:
>
>  * Inconsequential differences in opt flags (e.g. we now return
>    kCanTweakAlphaForCoverage_OptFlag even when there is no coverage).
>
>  * Src coeffs when the shader outputs 0.
>
>  * IS2C vs IS2A when the secondary output is scalar.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9a70920db22b6309c671f8e5d519bb95570e4414

TBR=egdaniel@google.com,bsalomon@google.com,cdalton@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1153993002
2015-05-22 17:55:26 -07:00
bsalomon
682c269a15 Store context options on caps.
Committed: https://skia.googlesource.com/skia/+/f28cff71db2cbb1ff18a8fbf1e80ca761d1f69bc

Review URL: https://codereview.chromium.org/1158433006
2015-05-22 14:01:46 -07:00
bsalomon
08bf86d1b7 Revert of Store context options on caps. (patchset #3 id:40001 of https://codereview.chromium.org/1158433006/)
Reason for revert:
breaking chromeos build (???)

Original issue's description:
> Store context options on caps.
>
> Committed: https://skia.googlesource.com/skia/+/f28cff71db2cbb1ff18a8fbf1e80ca761d1f69bc

TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1151603005
2015-05-22 12:41:05 -07:00