Commit Graph

1445 Commits

Author SHA1 Message Date
vandebo@chromium.org
6112c215fb [PDF] Add support for SrcIn, SrcOut, DstIn, DstOut xfermodes.
This change uses the soft mask (aka soft clip) functionality of PDF to implement the xfermodes.  It has to put existing content (dst) into a form xobject as well as putting the new (src) content into a different form xobject.  It then draws one of them with the other as the soft mask.
To accomplish this, we add a call to finishContentEntry after each call to setUpContentEntry - this is kind of a hack, but I don't see a better way to extract src.
Unfortunately, soft mask is specified in the Graphic State PDF object (and not in the form xobject), so when handling one of these modes, we add a one time GS object to set the soft mask and invoke a simple GS to reset the soft mask when done.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1320 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-13 03:50:38 +00:00
vandebo@chromium.org
d604481f7a [PDF] Fix windows SkFontHost::OpenStream for TTC fonts.
Review URL: http://codereview.appspot.com/4515074

git-svn-id: http://skia.googlecode.com/svn/trunk@1319 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-13 03:41:29 +00:00
reed@google.com
af8edcc477 update dox
git-svn-id: http://skia.googlecode.com/svn/trunk@1318 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 22:31:01 +00:00
reed@google.com
a6ff4dc22d add 'p' to toggle on/off testing the pipe
git-svn-id: http://skia.googlecode.com/svn/trunk@1317 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 22:08:24 +00:00
bsalomon@google.com
12ad3aa49b Disable blend for edge AA not general AA
Review URL: http://codereview.appspot.com/4526051/




git-svn-id: http://skia.googlecode.com/svn/trunk@1316 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 20:34:19 +00:00
Scroggo
5d7574099b Style fix
git-svn-id: http://skia.googlecode.com/svn/trunk@1315 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 18:27:05 +00:00
senorblanco@chromium.org
92e0f222fb Edge antialiasing for convex shapes in Ganesh
This patch implements edge antialiasing for convex shapes, using the fragment
shader to compare against the edge equations for each triangle.  Currently, it
only works for flat shaded primitives (i.e., it was not integrated into the
"active stages" path).  The skia.gyp changes cause this code to be compiled into
SampleApp, but do not enable the tesselated path by default.

Notes:  the SkOSWindow_Unix.cpp change is to silence a valgrind warning about
memcpy() with overlapping regions.  The GrBinHashKey change is to avoid running
a two-pass hash (GrProgramDesc is now 52 bytes or so, exceeding the 32 byte
default size).

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1314 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 15:49:15 +00:00
epoger@google.com
189520db79 Fix intentional breakage in previous commit
git-svn-id: http://skia.googlecode.com/svn/trunk@1313 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 13:50:57 +00:00
epoger@google.com
262d5f78c0 Intentional breakage to test notifications, will fix quickly
git-svn-id: http://skia.googlecode.com/svn/trunk@1312 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 13:48:24 +00:00
epoger@google.com
540fb22fe9 Tiny comment-only change to trigger update
git-svn-id: http://skia.googlecode.com/svn/trunk@1311 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 13:39:43 +00:00
reed@google.com
31891584fe cleanup previous array of paints
git-svn-id: http://skia.googlecode.com/svn/trunk@1310 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 03:03:56 +00:00
Scroggo
0bad67303d Allow blending if there is a color filter.
git-svn-id: http://skia.googlecode.com/svn/trunk@1309 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 20:25:01 +00:00
bsalomon@google.com
dcf1b0b0ab Add space between mediump and float in 2pt radial vertex uniform decl
Review URL http://codereview.appspot.com/4544041/




git-svn-id: http://skia.googlecode.com/svn/trunk@1308 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 19:00:54 +00:00
epoger@google.com
67d78b18d3 Fix my intentional break.
git-svn-id: http://skia.googlecode.com/svn/trunk@1307 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:51:01 +00:00
vandebo@chromium.org
78dad54080 [PDF] Fix Chrome crash - don't assume that SkDraw.fClipStack != NULL.
Chrome bug is crbug.com/82198.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1306 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:46:03 +00:00
epoger@google.com
76c5847bcd Intentionally break tests, will fix quickly.
git-svn-id: http://skia.googlecode.com/svn/trunk@1305 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:45:12 +00:00
epoger@google.com
f28b78b0bb Another comment-only change to test notifications
git-svn-id: http://skia.googlecode.com/svn/trunk@1304 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:32:30 +00:00
Scroggo
a8a57be564 Remove a warning.
git-svn-id: http://skia.googlecode.com/svn/trunk@1303 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:16:56 +00:00
epoger@google.com
823c973d3d Tiny comment-only change to test notifications
git-svn-id: http://skia.googlecode.com/svn/trunk@1302 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:10:18 +00:00
Scroggo
01b87ec6a6 Store 1/255 as a constant to reduce number of divides.
git-svn-id: http://skia.googlecode.com/svn/trunk@1301 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 18:05:38 +00:00
bsalomon@google.com
f475a33146 Remove dead debug code.
Review URL: http://codereview.appspot.com/4521056/



git-svn-id: http://skia.googlecode.com/svn/trunk@1300 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 17:29:58 +00:00
Scroggo
25a61c37b7 Remove unused variable.
git-svn-id: http://skia.googlecode.com/svn/trunk@1299 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 17:04:25 +00:00
bsalomon@google.com
2d9ddf9df1 Keep program cache consistent when program creation fails.
Review URL: http://codereview.appspot.com/4523056/

git-svn-id: http://skia.googlecode.com/svn/trunk@1298 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 16:52:59 +00:00
Scroggo
97c88c255c Add color filters to gpu path.
git-svn-id: http://skia.googlecode.com/svn/trunk@1297 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 14:05:25 +00:00
reed@google.com
0faac1e857 remove some dead code in pipes
inherit from SampleView for more samples
add L key to toggle using SkGPipe



git-svn-id: http://skia.googlecode.com/svn/trunk@1296 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 05:58:58 +00:00
reed@google.com
c1c5b15e41 add include/core to header path for release build
git-svn-id: http://skia.googlecode.com/svn/trunk@1295 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 05:10:16 +00:00
reed@google.com
b55d118e32 check-point for pipe: flatten/unflatten objects for single paint
still need replacement policy



git-svn-id: http://skia.googlecode.com/svn/trunk@1294 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 00:42:04 +00:00
vandebo@chromium.org
34dae87794 [PDF] Fix ending condition for font advance construction.
The old code always ended (the last sequence of glyphs) on a range, even if there was a very long run at the end.  This fixes that.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1293 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-10 23:25:03 +00:00
twiz@google.com
246bd0f271 git-svn-id: http://skia.googlecode.com/svn/trunk@1292 2bbb7eff-a529-9590-31e7-b0007b416f81 2011-05-10 23:10:26 +00:00
reed@google.com
4a6ae8b642 add master images for macbook (which differ in the gpu variant from gm/base)
git-svn-id: http://skia.googlecode.com/svn/trunk@1291 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-10 22:59:06 +00:00
reed@google.com
f2eb5ab780 fix bug where we wrote uninitialized data to the flatten stream for shaders.
Both shader and gradient_shader write matrices to the flatten stream. However, they were
just calling write(&matrix, sizeof(SkMatrix)) and the matrix can contain lazily-computed
function ptrs as part of its internal cache. Thus two matrices that are logically the
same may write different bytes.

This is a problem because picture relies on flattening objects and then using the
flatten stream as a key into its cache. This matrix-write bug effectively kills the
effectiveness of the cache for shaders.

The fix is to write proper read/write functions for matrix (and region btw). These
call through to the existing low-level flatten routines (which just write into a
memory ptr).



git-svn-id: http://skia.googlecode.com/svn/trunk@1290 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-10 22:56:42 +00:00
bsalomon@google.com
cc4dac3dac Make GrMatrix an alias of SkMatrix. Add new methods to SkMatrix.
Review URL: http://codereview.appspot.com/4538043/

Checked in on behalf of reed@ with some additional work (remove the do-nother sk->gr matrix converter).



git-svn-id: http://skia.googlecode.com/svn/trunk@1289 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-10 13:52:42 +00:00
bsalomon@google.com
ee9aa30457 Fixes from Sk/Gr rect unification.
git-svn-id: http://skia.googlecode.com/svn/trunk@1288 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 22:32:52 +00:00
reed@google.com
757cdc4e73 check for missing filename (needs to be specified when tool is launched)
git-svn-id: http://skia.googlecode.com/svn/trunk@1287 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 21:59:56 +00:00
reed@google.com
87ec860f38 remove unneeded asserts (which may fail from imprecise blits into the bitmap, but
do not affect the blits at head)



git-svn-id: http://skia.googlecode.com/svn/trunk@1286 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 21:59:30 +00:00
bsalomon@google.com
72b4fcb587 Fix unused var warning
git-svn-id: http://skia.googlecode.com/svn/trunk@1285 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 20:47:34 +00:00
bsalomon@google.com
822968fc66 Fixup old VS2010 project in case anyone is using it
git-svn-id: http://skia.googlecode.com/svn/trunk@1284 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 18:53:14 +00:00
bsalomon@google.com
55b4e8038d remove deleted include file (oops)
git-svn-id: http://skia.googlecode.com/svn/trunk@1283 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 18:50:47 +00:00
bsalomon@google.com
b9afba3193 Remove previous shader generator class. No longer compiles due to elimination of separate GrStringBuilder class in favor or SkString.
git-svn-id: http://skia.googlecode.com/svn/trunk@1282 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 18:44:52 +00:00
bsalomon@google.com
9196130af8 Make shader generator more legible. Get rid of some magic values.
Review URL: http://codereview.appspot.com/4531043/


git-svn-id: http://skia.googlecode.com/svn/trunk@1281 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 18:39:58 +00:00
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
vandebo@chromium.org
339ac3d0a7 [PDF] (regression) Update font if size changes.
Review URL: http://codereview.appspot.com/4532044

git-svn-id: http://skia.googlecode.com/svn/trunk@1279 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 17:36:36 +00:00
vandebo@chromium.org
69d4ca32ec [PDF] Fix bug in graphic state comparison.
SkPDFGraphicState::GSCanonicalEntry::operator== was out of sync with SkPDFGraphicState::populateDict  leading to graphic state objects with the same value.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1278 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 17:34:19 +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
reed@google.com
59f9961d00 remove #if 0 code
git-svn-id: http://skia.googlecode.com/svn/trunk@1276 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 13:37:36 +00:00
bsalomon@google.com
1da0e5e26c Suppress int/NULL comparison warning
git-svn-id: http://skia.googlecode.com/svn/trunk@1275 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 13:28:55 +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