humper@google.com
810ae48f82
move template specializations to inline functions in the header to make windows happy again
...
BUG=
Review URL: https://codereview.appspot.com/7099053
git-svn-id: http://skia.googlecode.com/svn/trunk@7164 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-14 20:11:00 +00:00
humper@google.com
6d29eda491
remove dynamic_cast because rtti is disabled on some platforms (but not all??)
...
BUG=
Review URL: https://codereview.appspot.com/7102056
git-svn-id: http://skia.googlecode.com/svn/trunk@7161 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-14 19:20:28 +00:00
humper@google.com
7af56bee17
Runtime configuration system for skia. This will allow developers to control settings at launch time without relying on compile-time flags or recompilation. It can be used to turn features on and off, as well as to control numeric quantities to 'tune' algorithms. Once I make sure it's working across all platforms I'll send out a quick tutorial on its use.
...
Review URL: https://codereview.appspot.com/7098051
git-svn-id: http://skia.googlecode.com/svn/trunk@7158 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-14 18:49:19 +00:00
reed@google.com
4ed0fb7684
revert 6766, thereby re-landing 6762-6763 now that the bots are ready
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 20:48:18 +00:00
reed@google.com
25c1408c3d
revert 6762-6763, since those require new skps to be generated, and we can't
...
do that immediately right now... will re-submit when we can.
git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:15:31 +00:00
reed@google.com
68d61ed83e
make RRect and Oval first-class drawing primitives in SkCanvas.
...
add RRect as a first-class clip primitive.
Review URL: https://codereview.appspot.com/6923058
git-svn-id: http://skia.googlecode.com/svn/trunk@6762 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:02:53 +00:00
vollick@chromium.org
57a54e33cf
Add SkMatrix44 constructor that allows user to control the initialization
...
method. Preliminary results using Chromium's cc_perftests
show that we can avoid almost half of the default constructors from
redundantly/unnecessarily initializing the matrix to identity.
Review URL: https://codereview.appspot.com/6872056
git-svn-id: http://skia.googlecode.com/svn/trunk@6742 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-10 20:16:10 +00:00
mike@reedtribe.org
f8b1ebc35b
add helpers for isTranslate and isScaleTranslate
...
special-case determinant for isScaleTranslate
git-svn-id: http://skia.googlecode.com/svn/trunk@6725 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-10 03:27:47 +00:00
skia.committer@gmail.com
0264fb4543
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6687 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-06 02:01:25 +00:00
reed@google.com
99b5c7f94b
optimize translate and scale
...
add map2() to optimize for mapping an array of 2D points into homogeneous 4-vector
Review URL: https://codereview.appspot.com/6874064
git-svn-id: http://skia.googlecode.com/svn/trunk@6685 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-05 22:13:59 +00:00
djsollen@google.com
fdabcb511d
Add missing SK_API definition at request of Chromium callers
...
Review URL: https://codereview.appspot.com/6878050
git-svn-id: http://skia.googlecode.com/svn/trunk@6671 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-05 06:15:42 +00:00
skia.committer@gmail.com
e659c2e820
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6660 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-04 02:01:25 +00:00
reed@google.com
7d68335eb4
add getTypes() to SkMatrix44, to cache how complex the matrix is.
...
add bench
optimize operator== by performing 4 compares in a row before checking
optimize setconcat by noting when we can write the answer directly into this
At least on this macbook, I had to mark helpers like isIdentity() as inline to get them inlined.
Review URL: https://codereview.appspot.com/6863053
git-svn-id: http://skia.googlecode.com/svn/trunk@6655 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-03 21:19:52 +00:00
robertphillips@google.com
93f0332418
Fixed remaining clang compiler warnings
...
https://codereview.appspot.com/6865053/
git-svn-id: http://skia.googlecode.com/svn/trunk@6646 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-03 17:35:19 +00:00
bsalomon@google.com
42619d8df2
Rename SkTDLinkedList to SkTInternalLinked list, add some methods useful for forthcoming SkTLList.
...
Review URL: https://codereview.appspot.com/6858101
git-svn-id: http://skia.googlecode.com/svn/trunk@6643 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-03 14:54:59 +00:00
jamesr@chromium.org
deb4c16969
Keep track of identity SkMatrix44s
...
This keeps a bool on SkMatrix44 indicating if we know for sure that the matrix
is identity, similar to the TypeMask on SkMatrix. This is useful to early-out
of potentially expensive matrix math at the cost of some memory.
Review URL: https://codereview.appspot.com/6854113
git-svn-id: http://skia.googlecode.com/svn/trunk@6620 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 21:17:16 +00:00
reed@google.com
fe7b1ed30a
add SkPictureUtils::GatherPixelRefs()
...
Review URL: https://codereview.appspot.com/6845106
git-svn-id: http://skia.googlecode.com/svn/trunk@6615 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 21:00:39 +00:00
skia.committer@gmail.com
ab38f7acb3
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6577 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-28 02:02:11 +00:00
reed@google.com
631940c8c4
don't use bit-wise test for equality when using floats.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6557 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-27 13:13:22 +00:00
sugoi@google.com
7775fd5779
Deferred canvas can now be flushed if an image is beyond a certain size to avoid a costly image copy.
...
BUG=http://code.google.com/p/chromium/issues/detail?id=137924
TEST=TestDeferredCanvasBitmapSizeThreshold unit test
Review URL: https://codereview.appspot.com/6852071
git-svn-id: http://skia.googlecode.com/svn/trunk@6527 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-21 15:47:04 +00:00
vollick@chromium.org
f11cf9ff88
Add SkMatrix44::setColMajord, etc.
...
We have accessors for efficiently getting the matirx data, and it would be nice
if we had similar methods for setting the matrix entries.
Review URL: https://codereview.appspot.com/6851063
git-svn-id: http://skia.googlecode.com/svn/trunk@6494 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-19 21:02:06 +00:00
vollick@chromium.org
9b21c25e74
Add SkMatrix44::setTranspose
...
It turned out that adding getDouble(...) and setDouble(...) made this change
easier, so I've included that in this cl as well.
Review URL: https://codereview.appspot.com/6845048
git-svn-id: http://skia.googlecode.com/svn/trunk@6424 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-14 21:33:55 +00:00
vollick@chromium.org
5596a69e9f
Add support for SK_MSCALAR_IS_FLOAT
...
The default is SK_MSCALAR_IS_FLOAT. You'll have to explicitly define SK_MSCALAR_IS_DOUBLE if that's what you want.
BUG=None
Review URL: https://codereview.appspot.com/6843049
git-svn-id: http://skia.googlecode.com/svn/trunk@6403 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-13 20:12:00 +00:00
vollick@chromium.org
3959a76ab0
Changing the visibility of SkMatrix44::determinant().
...
Review URL: https://codereview.appspot.com/6819080
git-svn-id: http://skia.googlecode.com/svn/trunk@6395 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-13 15:08:22 +00:00
reed@google.com
dd31131021
add const to src parameter for mapMScalars()
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6386 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-12 20:43:59 +00:00
reed@google.com
1ea95be560
add explicit mapScalars and mapMScalars entry-points, instead of just map()
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6373 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-09 21:39:48 +00:00
reed@google.com
20d44677a1
simplify macros, since we no longer support scalar == fixed
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6372 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-09 21:28:55 +00:00
scroggo@google.com
4d3c28158a
Implement SkCondVar for windows.
...
Only works on Vista or later, since it uses condition variables.
Review URL: https://codereview.appspot.com/6812062
git-svn-id: http://skia.googlecode.com/svn/trunk@6225 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-31 19:29:13 +00:00
scroggo@google.com
4177ef4b22
Add SkThreadPool for managing threads.
...
Skia-ized from https://codereview.appspot.com/6755043/
TODO: Use SkThread and platform independent features.
Review URL: https://codereview.appspot.com/6777064
git-svn-id: http://skia.googlecode.com/svn/trunk@6217 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-31 15:52:16 +00:00
junov@google.com
52a00cac51
Adding virtual method to SkDeferredCanvas::NotificationClient for signaling when commands are skipped due to the skip on clear optimization.
...
TEST=DeferredCanvas unit test
BUG=http://code.google.com/p/chromium/issues/detail?id=116840
Review URL: https://codereview.appspot.com/6590050
git-svn-id: http://skia.googlecode.com/svn/trunk@5747 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-01 15:27:14 +00:00
junov@chromium.org
a38dfb6981
Adding hasPendingCommands API method to SkDeferredCanvas
...
BUG=http://code.google.com/p/chromium/issues/detail?id=146178
Review URL: https://codereview.appspot.com/6550050
git-svn-id: http://skia.googlecode.com/svn/trunk@5632 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 22:10:33 +00:00
junov@chromium.org
fb10389403
Adding a silent playback option to SkGPipeRead
...
Testing state consistency after silent playback in CanvasTest indirectly
through SkDeferredCanvas.
BUG=http://code.google.com/p/chromium/issues/detail?id=146178
TEST=CanvasTest unit test, and bench with --mode deferredSilent
Review URL: https://codereview.appspot.com/6542047
git-svn-id: http://skia.googlecode.com/svn/trunk@5619 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-20 19:35:43 +00:00
reed@google.com
7112173c3c
re-re-land 5578
...
will follow w/ new .skp files to keep the waterfall green (I hope)
git-svn-id: http://skia.googlecode.com/svn/trunk@5584 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 15:14:33 +00:00
reed@google.com
10f9f4a844
revert 5580
...
git-svn-id: http://skia.googlecode.com/svn/trunk@5581 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 14:04:54 +00:00
reed@google.com
eab16dea1c
re-land 5578 w/ pipe fix
...
git-svn-id: http://skia.googlecode.com/svn/trunk@5580 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 13:47:20 +00:00
reed@google.com
c75c36a14b
revert 5578 -- broke pipe
...
git-svn-id: http://skia.googlecode.com/svn/trunk@5579 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 13:20:52 +00:00
reed@google.com
f1ab723033
Change drawBitmapRect to take a float-src-rect instead of integer-src-rect. This
...
allows the client more control over the scaling. Because of virtual overrides
and wanting to keep the old call-sites up and running, this CL renames the
virtual entry-point to drawBitmapRectToRect, and downgrades drawBitmapRect to
a non-virtual helper function.
The implementation is to use the float-rect for computing the matrix, but still
cons-up an integer rect for the purposes of subsetting the original bitmap. We
do this by calling float_src->roundOut(&int_src) so that we include all
(partially) covered src pixels.
No change needed on SkDevice, since that signature is explicitly passed the
computed matrix.
Review URL: https://codereview.appspot.com/6501140
git-svn-id: http://skia.googlecode.com/svn/trunk@5578 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 12:59:44 +00:00
rmistry@google.com
fbfcd56021
Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/ )
...
This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054
git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:09:54 +00:00
junov@chromium.org
5280548558
Stop refcounting SkDeferredCanvas::NotificationClient
...
User code (i.e. WebKit) is now responsible for the lifetime scope of the notification client.
With http://trac.webkit.org/changeset/125804 skia-side ref counting has become unnecessary and undesirable.
Review URL: https://codereview.appspot.com/6443146
git-svn-id: http://skia.googlecode.com/svn/trunk@5169 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 14:25:04 +00:00
junov@chromium.org
d433c4eb67
Cleaning up deprecated API in SkDeferredCanvas
...
Review URL: https://codereview.appspot.com/6461077
git-svn-id: http://skia.googlecode.com/svn/trunk@5152 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-17 14:50:16 +00:00
bungeman@google.com
e8f0592ae8
DirectWrite font host for skia.
...
https://codereview.appspot.com/5417063/
git-svn-id: http://skia.googlecode.com/svn/trunk@5128 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-16 16:13:40 +00:00
robertphillips@google.com
a22e2117e4
Extended Inst counting to find "unknown" leaked object (SkTMaskGamma)
...
http://codereview.appspot.com/6453127/
git-svn-id: http://skia.googlecode.com/svn/trunk@5123 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-16 14:58:06 +00:00
junov@chromium.org
9ed02b9da2
Augmenting SkDeferredCanvas notification interface to signal flushes and memory allocations
...
Renamed SkDeferredCanvas::DeviceContext to SkDeferredCanvas::NotificationClient
BUG=http://code.google.com/p/chromium/issues/detail?id=136828
TEST=Added coverage for new API to DeferredCanvas unit test. Added DeferredCanvas bench test to track deferred canvas overhead cost.
Review URL: https://codereview.appspot.com/6442108
git-svn-id: http://skia.googlecode.com/svn/trunk@5078 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 13:36:26 +00:00
junov@chromium.org
88e29146c1
Moving DeferredDevice and DeferredGPipeController classes out of the deferred canvas API header
...
Review URL: https://codereview.appspot.com/6449104
git-svn-id: http://skia.googlecode.com/svn/trunk@4989 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 16:48:22 +00:00
junov@chromium.org
3de7acc180
Removing the SkPicture backend from SkDeferredCanvas code
...
Review URL: https://codereview.appspot.com/6446095
git-svn-id: http://skia.googlecode.com/svn/trunk@4974 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 14:53:59 +00:00
junov@chromium.org
2e14ba8ceb
Adding API to SkGPipe and SkDeferredCanvas for controlling memory usage externally
...
BUG=http://code.google.com/p/chromium/issues/detail?id=136828
Review URL: https://codereview.appspot.com/6454102
git-svn-id: http://skia.googlecode.com/svn/trunk@4971 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 14:26:57 +00:00
junov@chromium.org
d122fd5ab5
Turning on deferred canvas SkGPipe backend by default
...
Review URL: https://codereview.appspot.com/6452080
git-svn-id: http://skia.googlecode.com/svn/trunk@4897 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-01 20:00:03 +00:00
scroggo@google.com
15011ee5e4
Make SkDeferredCanvas query SkGPipeWriter for space allocated for bitmaps.
...
SkGPipe now has a method to report how much memory is used for its shared heap.
BUG=http://code.google.com/p/skia/issues/detail?id=738
TEST=DeferredCanvasTest
Review URL: https://codereview.appspot.com/6445046
git-svn-id: http://skia.googlecode.com/svn/trunk@4791 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 20:03:32 +00:00
junov@chromium.org
b10a6bd0a7
Refactoring how SkDeferredCanvas manages mutable bitmaps
...
This CL makes the SkGPipe flavor of SkDeferredCanvas properly
decide whether to flush or record mutable bitmaps. The flushing
is now managed by conditionally switching the canvas to non-deferred
mode, which avoids an unnecessary transient copy of the bitmap.
BUG=http://code.google.com/p/chromium/issues/detail?id=137884
TEST=DeferredCanvas unit test, sub test TestDeferredCanvasMemoryLimit
Review URL: https://codereview.appspot.com/6421060
git-svn-id: http://skia.googlecode.com/svn/trunk@4756 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:27:13 +00:00
bungeman@google.com
0eec2d0486
Remove SkSfntUtils, as it is not longer used.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4735 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 17:50:25 +00:00