Commit Graph

383 Commits

Author SHA1 Message Date
vandebo@chromium.org
6744d498fc [PDF] Add a ToUnicode mapping for fonts.
This makes text in PDFs searchable and copy&paste-able.

Code from arthurhsu@chromium.org.  Original review: http://codereview.appspot.com/4428082/

Review URL: http://codereview.appspot.com/4525042

git-svn-id: http://skia.googlecode.com/svn/trunk@1280 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 18:13:47 +00:00
reed@google.com
20efde71b4 Share code with SkRect
http://codereview.appspot.com/4523046/



git-svn-id: http://skia.googlecode.com/svn/trunk@1277 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 17:00:02 +00:00
vandebo@chromium.org
25adce81ce [PDF] Add support for Clear, Src, Dst, DstOver xfermodes.
This uses the refactoring in http://codereview.appspot.com/4459041/ to add support for additional xfer modes.  Calling setupContentEntry may affect previous content entries (removing, reordering, or modifying their clip) and indicates to the caller if it should draw the new item or not.

Review URL: http://codereview.appspot.com/4464043

git-svn-id: http://skia.googlecode.com/svn/trunk@1271 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 08:05:01 +00:00
vandebo@chromium.org
a0c7edbb08 [PDF] Fix setting of existing clip for layers.
The current approach of setting the existing clip just before drawing a layer into a device doesn't work.  SkDevice::clear() uses existing clip before that and if we need to put the content in a transparency group (i.e. for SrcIn xfermode), we need a valid existing clip.  Instead, change the factory to use a special constructor when creating a layer device.

Review URL: http://codereview.appspot.com/4495041

git-svn-id: http://skia.googlecode.com/svn/trunk@1270 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 07:58:08 +00:00
vandebo@chromium.org
9fbdf87518 [PDF] Refactor content stream creation in SkPDFDevice to support more xfermodes.
Instead of writing all drawing and state updates into the final content stream immediately, this change creates a new ContentEntry each time the transform, clip, or paint changes.  Drawing is done into a stream in the ContentEntry.  When the consumer asks for the content, we combine all the ContentEntries with appropriate updates to the state (clip, transform, paint) in between.  This allows us to modify the clip even after a drawing has completed.  It also lets us remove ContentEntries with no drawing.  Further optimization can be done to better use the stack features of PDF, for now we follow the previous model of having a single clip followed by a single transform on the graphic state stack.

Push rectangle logic into SkPDFUtil::AppendRectangle.
Change private functions to adhere to coding standards.

Review URL: http://codereview.appspot.com/4459041

git-svn-id: http://skia.googlecode.com/svn/trunk@1269 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 07:55:58 +00:00
reed@google.com
7744c205f2 use SkPoint, creating an alias for GrPoint
http://codereview.appspot.com/4498041/



git-svn-id: http://skia.googlecode.com/svn/trunk@1268 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 19:26:26 +00:00
bsalomon@google.com
fc29629525 Replace GrStringBuilder with SkString. First step in cleaning up the shader generator. Slight performance hit when creating a new shader (<10% of total shader gen time on my Windows box is spent in building our string before handing it to GL). Much of this can be recovered by better usage pattern of SkString in coming revisions.
Review URL: http://codereview.appspot.com/4465053/ 



git-svn-id: http://skia.googlecode.com/svn/trunk@1266 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 13:53:47 +00:00
bsalomon@google.com
0aa6c3e212 Tab -> spaces
git-svn-id: http://skia.googlecode.com/svn/trunk@1264 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 13:02:10 +00:00
reed@google.com
185d3d016d add SkScalarIsInt()
git-svn-id: http://skia.googlecode.com/svn/trunk@1262 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 12:18:08 +00:00
reed@google.com
a571c99228 don't require a ptr unless size > 0
git-svn-id: http://skia.googlecode.com/svn/trunk@1259 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-05 20:04:44 +00:00
reed@google.com
8d90eeba09 add find()
git-svn-id: http://skia.googlecode.com/svn/trunk@1243 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-04 18:03:00 +00:00
reed@google.com
3048d4fd4e remove deprecated getViewport/setViewport
git-svn-id: http://skia.googlecode.com/svn/trunk@1235 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-04 13:50:34 +00:00
reed@google.com
acd471f47c updated pipe
git-svn-id: http://skia.googlecode.com/svn/trunk@1231 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-03 21:26:46 +00:00
vandebo@chromium.org
1e1c36f4f8 Add comparison and assignment to SkClipStack (and fix an optimization bug).
Review URL: http://codereview.appspot.com/4423085

git-svn-id: http://skia.googlecode.com/svn/trunk@1230 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-03 16:26:09 +00:00
reed@google.com
7894b92b57 code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1229 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-03 15:41:49 +00:00
reed@google.com
2f3dc9dc4c add typefacecache
speedup lcd blits
clean up some samples



git-svn-id: http://skia.googlecode.com/svn/trunk@1220 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-02 17:33:45 +00:00
vandebo@chromium.org
be2048a371 [PDF] Fix fallout from r1217.
The width and height we pass to SkDevice must be postive.
Shader can no longer use negative coordinates (without transform).
Shader unflip matrix should use same values as passed to SkPDFDevice (height).
Most Shader dictionary entries should be scalars and not ints.

Review URL: http://codereview.appspot.com/4454047

git-svn-id: http://skia.googlecode.com/svn/trunk@1219 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-02 15:24:01 +00:00
ctguil@chromium.org
1526129380 PDF Device should report non-transformed size for width and height.
Review URL: http://codereview.appspot.com/4435074

git-svn-id: http://skia.googlecode.com/svn/trunk@1217 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-29 17:54:16 +00:00
reed@google.com
3b521d0533 update dox
code style



git-svn-id: http://skia.googlecode.com/svn/trunk@1215 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-29 11:53:41 +00:00
mike@reedtribe.org
e9e08cc7b2 rename SkPtrRecorder and related wrappers to SkPtrSet, since that is the pattern
is it providing. Also add a templated wrapper to handle typecasting of ptr types.



git-svn-id: http://skia.googlecode.com/svn/trunk@1214 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-29 01:44:52 +00:00
mike@reedtribe.org
e8f754a41c update dox
git-svn-id: http://skia.googlecode.com/svn/trunk@1213 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-29 01:02:43 +00:00
bsalomon@google.com
06e1795cd9 Add bounding rect for paths
Review URL: http://codereview.appspot.com/4442094/



git-svn-id: http://skia.googlecode.com/svn/trunk@1205 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-27 21:13:04 +00:00
tomhudson@google.com
4b33d28eb3 New 'skdiff' tool to compare two directories full of files, write diff images
into a third directory, and create a summary web page with metrics for easy
inspection of the results.



git-svn-id: http://skia.googlecode.com/svn/trunk@1200 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-27 15:39:30 +00:00
tomhudson@google.com
1447c6f7f4 Add missing flattenable registrations and CreateProc() functions;
fixes gm --serialize xfermode test case.



git-svn-id: http://skia.googlecode.com/svn/trunk@1199 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-27 14:09:52 +00:00
reed@google.com
f31663403b http://codereview.appspot.com/4436057/
Tag some more API headers with SK_API so they are exposed
when doing a DLL build.



git-svn-id: http://skia.googlecode.com/svn/trunk@1193 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-26 20:06:08 +00:00
reed@google.com
c009111446 http://codereview.appspot.com/4438070/
update SK_API for non-windows builds



git-svn-id: http://skia.googlecode.com/svn/trunk@1192 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-26 20:04:16 +00:00
reed@google.com
5b3d5349be add helper available()
git-svn-id: http://skia.googlecode.com/svn/trunk@1188 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-26 17:49:03 +00:00
reed@google.com
bb6992a9d6 add experimental canvas pipe
git-svn-id: http://skia.googlecode.com/svn/trunk@1187 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-26 17:41:56 +00:00
mike@reedtribe.org
ea4ac97dec make SkDeviceFactory reference counted
git-svn-id: http://skia.googlecode.com/svn/trunk@1180 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-26 11:48:33 +00:00
reed@google.com
1a32d4aed2 add SK_API
git-svn-id: http://skia.googlecode.com/svn/trunk@1178 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-25 20:02:38 +00:00
reed@google.com
739456585a devolve flattening parameters to their base classes
e.g. FlattenableReadBufer -> Reader32



git-svn-id: http://skia.googlecode.com/svn/trunk@1174 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-25 19:04:27 +00:00
mike@reedtribe.org
6b919c3537 code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1159 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-20 11:17:30 +00:00
mike@reedtribe.org
4135f28932 code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1158 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-20 11:04:30 +00:00
reed@google.com
6b7aee387d optimize when we have a colorfilter, but no shader or xfermode
git-svn-id: http://skia.googlecode.com/svn/trunk@1152 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-19 18:36:09 +00:00
reed@google.com
13659f1f8d handle overflow
note: gradient caller doesn't so we can still draw wrong when the caller
converts its initial fx from float->fixed. Perhaps SkClampRange should offer
a float interface as well.



git-svn-id: http://skia.googlecode.com/svn/trunk@1149 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-18 19:59:38 +00:00
reed@google.com
63c1ad82fc add fFx1 field, returning where to start the iterator for fCount1 range
add unittest



git-svn-id: http://skia.googlecode.com/svn/trunk@1145 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-18 14:15:36 +00:00
vandebo@chromium.org
77bcaa324a [PDF] Implement clear() method and a couple fixes.
+ If the clip matches the initial clip, don't set the clip.
+ Don't change the transform for drawPaint.

Review URL: http://codereview.appspot.com/4424041

git-svn-id: http://skia.googlecode.com/svn/trunk@1142 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 20:57:37 +00:00
bsalomon@google.com
8c3ff17e2c Add DLL exports (Fixes Multi-DLL build in Chrome against TOT skia)
git-svn-id: http://skia.googlecode.com/svn/trunk@1137 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 15:42:24 +00:00
reed@google.com
73ccb980e9 move header
fix warning in release build



git-svn-id: http://skia.googlecode.com/svn/trunk@1136 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 15:31:03 +00:00
Scroggo
9df214e836 http://codereview.appspot.com/4373057/
git-svn-id: http://skia.googlecode.com/svn/trunk@1135 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 14:48:08 +00:00
djsollen@google.com
f5dbe2f00f Upstream android changes.
reviewed by: reed


git-svn-id: http://skia.googlecode.com/svn/trunk@1134 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-15 13:41:26 +00:00
reed@google.com
2a98181f04 add SkCanvas::clear(SkColor color) to call the new virtual clear on device.
git-svn-id: http://skia.googlecode.com/svn/trunk@1131 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 18:59:28 +00:00
bsalomon@google.com
398109cc3e rename SkDevice::eraseColor to clear and make virtual.
Properly flush in GrContext before calling GrGpu::clear()

Review URL: http://codereview.appspot.com/4419043/



git-svn-id: http://skia.googlecode.com/svn/trunk@1130 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 18:40:27 +00:00
reed@google.com
43c50c8c77 add reflection asColorMode to SkColorFilter (for gpu)
git-svn-id: http://skia.googlecode.com/svn/trunk@1126 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 15:50:52 +00:00
bsalomon@google.com
586f48cfa8 Add genID for SkBitmaps with raw pixels
Review URL: http://codereview.appspot.com/4413047/



git-svn-id: http://skia.googlecode.com/svn/trunk@1125 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 15:07:22 +00:00
mike@reedtribe.org
a8282ef8f9 add mask for paint-bits to layerdrawlooper
change addLayer variants that don't respect paint changes to return void



git-svn-id: http://skia.googlecode.com/svn/trunk@1123 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-14 01:22:45 +00:00
reed@google.com
c0d4aa2088 fix asMode() to always succeed if the xfermode was built from a Mode
update dox to reflect this
update test



git-svn-id: http://skia.googlecode.com/svn/trunk@1121 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-13 21:12:04 +00:00
wjmaclean@chromium.org
1fbf760a12 Fix SkFixed overflows in SkFixedSquare, SkGradientShader.
Return SK_FixedMax when overflow occurs.

git-svn-id: http://skia.googlecode.com/svn/trunk@1117 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-13 13:31:06 +00:00
reed@google.com
0716c63332 expand SkLayerDrawLooper to allow for an xfermode when transfering the paint's color,
and allow that the offset be applied pre or post



git-svn-id: http://skia.googlecode.com/svn/trunk@1115 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-12 18:32:06 +00:00
vandebo@chromium.org
75f97e452e Generalize the flip origin argument to the PDF device constructor.
The argument still has a default value that does what most users will want, but provides more flexibility.
Chrome will use this change to support an initial translation of the origin to simulate a margin and to scale the entire content (needed on Windows).

When landing to Chrome, this will need http://codereview.chromium.org/6820038

Review URL: http://codereview.appspot.com/4373052

git-svn-id: http://skia.googlecode.com/svn/trunk@1111 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-11 23:24:18 +00:00