platform/upstream/libSkiaSharp.git
13 years agoadd new 2nd argument for rendertarget to SkGpuCanvas
reed@google.com [Tue, 18 Jan 2011 21:05:42 +0000 (21:05 +0000)]
add new 2nd argument for rendertarget to SkGpuCanvas

git-svn-id: http://skia.googlecode.com/svn/trunk@707 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoRemove notion of default rendertarget. This doesn't map well to usage patterns outsid...
bsalomon@google.com [Tue, 18 Jan 2011 20:57:22 +0000 (20:57 +0000)]
Remove notion of default rendertarget. This doesn't map well to usage patterns outside sample app. Make binding between SkGpuDevice and a GrRenderTarget more explicit. Create method on GrContext to wrap the current target in the 3D API with a GrRenderTarget.

git-svn-id: http://skia.googlecode.com/svn/trunk@706 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agodetect empty/inverted rect before using autobounds helper (as with prev. rev.)
reed@google.com [Tue, 18 Jan 2011 20:55:57 +0000 (20:55 +0000)]
detect empty/inverted rect before using autobounds helper (as with prev. rev.)

git-svn-id: http://skia.googlecode.com/svn/trunk@705 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agodon't use SkAutoPathBoundsUpdate until after we've checked for degenerate
reed@google.com [Tue, 18 Jan 2011 20:35:51 +0000 (20:35 +0000)]
don't use SkAutoPathBoundsUpdate until after we've checked for degenerate
dimensions, otherwise we might set the bounds, only to then abort and not
set any points.

Fixes assert if you call addRoundRect(r, 10, 10) when r is inverted
(i.e. r.fLeft > r.fRight)

git-svn-id: http://skia.googlecode.com/svn/trunk@704 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix stencil format array.
bsalomon@google.com [Tue, 18 Jan 2011 17:14:52 +0000 (17:14 +0000)]
Fix stencil format array.

git-svn-id: http://skia.googlecode.com/svn/trunk@703 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix BGRA on ES Issue 109.
bsalomon@google.com [Tue, 18 Jan 2011 16:54:04 +0000 (16:54 +0000)]
Fix BGRA on ES Issue 109.

git-svn-id: http://skia.googlecode.com/svn/trunk@702 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix vertex buffer size computation when deferred text is disabled. This change makes...
bsalomon@google.com [Tue, 18 Jan 2011 15:30:57 +0000 (15:30 +0000)]
Fix vertex buffer size computation when deferred text is disabled. This change makes it consistent with recent changes to the vertex layout bitfield in Issue 106.

git-svn-id: http://skia.googlecode.com/svn/trunk@701 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd black, opaque, blend variants for text blits, to exercise different
reed@google.com [Mon, 17 Jan 2011 19:45:43 +0000 (19:45 +0000)]
add black, opaque, blend variants for text blits, to exercise different
special cases in blitmask

git-svn-id: http://skia.googlecode.com/svn/trunk@700 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd SK_DISABLE_DITHER_32BIT_GRADIENT flag. If defined, disables the newly added
reed@google.com [Mon, 17 Jan 2011 18:46:37 +0000 (18:46 +0000)]
add SK_DISABLE_DITHER_32BIT_GRADIENT flag. If defined, disables the newly added
dithering for 32bit linear gradients.

git-svn-id: http://skia.googlecode.com/svn/trunk@699 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoenable sse2 source in makefile
reed@google.com [Mon, 17 Jan 2011 18:41:23 +0000 (18:41 +0000)]
enable sse2 source in makefile

git-svn-id: http://skia.googlecode.com/svn/trunk@698 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd SSE2 opt files to xcode
reed@google.com [Mon, 17 Jan 2011 18:37:43 +0000 (18:37 +0000)]
add SSE2 opt files to xcode

git-svn-id: http://skia.googlecode.com/svn/trunk@697 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoUse macro to call gl.
bsalomon@google.com [Thu, 13 Jan 2011 21:28:12 +0000 (21:28 +0000)]
Use macro to call gl.

git-svn-id: http://skia.googlecode.com/svn/trunk@696 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoRemove static from template specilizations (linux build complained)
reed@google.com [Thu, 13 Jan 2011 20:02:47 +0000 (20:02 +0000)]
Remove static from template specilizations (linux build complained)

git-svn-id: http://skia.googlecode.com/svn/trunk@695 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoTowards issue #106
bsalomon@google.com [Thu, 13 Jan 2011 19:52:45 +0000 (19:52 +0000)]
Towards issue #106

Adds notion of texture multiple stages but currently just uses 1.

git-svn-id: http://skia.googlecode.com/svn/trunk@694 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoIf you #define SK_ALLOW_OVER_32K_BITMAPS, then skia will try to draw bitmaps
reed@google.com [Thu, 13 Jan 2011 18:30:42 +0000 (18:30 +0000)]
If you #define SK_ALLOW_OVER_32K_BITMAPS, then skia will try to draw bitmaps
whose dimensions exceed 32K. In my testing, this is fine, but I'm coding this
as an opt-in feature for now, to allow for more testing before its enabled
by default.

git-svn-id: http://skia.googlecode.com/svn/trunk@693 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoinitialize SkGlyph::fMaskFormat to avoid valgrind warnings
reed@google.com [Thu, 13 Jan 2011 16:33:36 +0000 (16:33 +0000)]
initialize SkGlyph::fMaskFormat to avoid valgrind warnings
rebaseline gradients now that we dither our 32bit src

git-svn-id: http://skia.googlecode.com/svn/trunk@692 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd dithering to 32bit linear gradients
reed@google.com [Thu, 13 Jan 2011 16:22:35 +0000 (16:22 +0000)]
add dithering to 32bit linear gradients

git-svn-id: http://skia.googlecode.com/svn/trunk@691 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoShould be calculating alignment based on the vertex size.
bsalomon@google.com [Wed, 12 Jan 2011 21:20:18 +0000 (21:20 +0000)]
Should be calculating alignment based on the vertex size.

git-svn-id: http://skia.googlecode.com/svn/trunk@690 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agorename DrawState to DrState -- MS decided to #define DrawState, complicating
reed@google.com [Wed, 12 Jan 2011 18:14:28 +0000 (18:14 +0000)]
rename DrawState to DrState -- MS decided to #define DrawState, complicating
our (compiler) lives :(

git-svn-id: http://skia.googlecode.com/svn/trunk@689 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd helpers to initialize our var-int args before calling GL. Some drivers
reed@google.com [Wed, 12 Jan 2011 17:14:53 +0000 (17:14 +0000)]
add helpers to initialize our var-int args before calling GL. Some drivers
assert that those are zero on input, even though they are logically
output-only parameters.

git-svn-id: http://skia.googlecode.com/svn/trunk@688 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix refcount bug - as picture gets referenced by canvas when canvas is a
reed@google.com [Wed, 12 Jan 2011 17:14:04 +0000 (17:14 +0000)]
fix refcount bug - as picture gets referenced by canvas when canvas is a
picture-recording canvas, so it can't live on the stack. Probably a bug:
nested pictures should probably ref some internal impl, so that callers can be
free to use the stack when they want to.

git-svn-id: http://skia.googlecode.com/svn/trunk@687 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agogit-svn-id: http://skia.googlecode.com/svn/trunk@685 2bbb7eff-a529-9590-31e7-b0007b416f81
reed@google.com [Tue, 11 Jan 2011 19:45:38 +0000 (19:45 +0000)]
git-svn-id: skia.googlecode.com/svn/trunk@685 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoexpose gpu-device-factory
reed@google.com [Tue, 11 Jan 2011 18:59:23 +0000 (18:59 +0000)]
expose gpu-device-factory
use that factory in gpucanvas, rather than overriding createDevice

note: I think we now don't need the canvas parameter in device-factory

git-svn-id: http://skia.googlecode.com/svn/trunk@684 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd getter/setter for device-factory on canvas
reed@google.com [Tue, 11 Jan 2011 18:32:13 +0000 (18:32 +0000)]
add getter/setter for device-factory on canvas

git-svn-id: http://skia.googlecode.com/svn/trunk@683 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd port for Brew - untested
reed@google.com [Tue, 11 Jan 2011 15:53:52 +0000 (15:53 +0000)]
add port for Brew - untested

git-svn-id: http://skia.googlecode.com/svn/trunk@682 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agouse -O2 for release, -g for debug (so we can get symbols for gdb)
reed@google.com [Mon, 10 Jan 2011 14:54:30 +0000 (14:54 +0000)]
use -O2 for release, -g for debug (so we can get symbols for gdb)

git-svn-id: http://skia.googlecode.com/svn/trunk@681 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoinit src either opaquely (e.g. white), or with a valid ctable index (e.g. 0)
reed@google.com [Mon, 10 Jan 2011 14:04:07 +0000 (14:04 +0000)]
init src either opaquely (e.g. white), or with a valid ctable index (e.g. 0)

git-svn-id: http://skia.googlecode.com/svn/trunk@680 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoremove obsolete, unsupported sound files
reed@google.com [Fri, 7 Jan 2011 15:34:36 +0000 (15:34 +0000)]
remove obsolete, unsupported sound files

git-svn-id: http://skia.googlecode.com/svn/trunk@679 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix issue 99 -- unneeded assignment inside find_y
reed@google.com [Fri, 7 Jan 2011 15:00:44 +0000 (15:00 +0000)]
fix issue 99 -- unneeded assignment inside find_y
move find_y to right above its only caller (Spanerator)
reformat Spanerator methods to match coding style

git-svn-id: http://skia.googlecode.com/svn/trunk@678 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoMake SampleApp build on Win32 (still requires glew, this needs to be fixed)
bsalomon@google.com [Wed, 5 Jan 2011 16:34:41 +0000 (16:34 +0000)]
Make SampleApp build on Win32 (still requires glew, this needs to be fixed)
In fbo test funciton set min filter to nearest (for systems that don't support rendering to level of a texture that isn't mip map complete.)
Add a lot more sample slides to the win32 build
Fix texture red/blue color swap on windows.

git-svn-id: http://skia.googlecode.com/svn/trunk@677 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoupdate dox to reflect that the default colorspace is CGColorSpaceCreateDeviceRGB()
reed@google.com [Wed, 5 Jan 2011 16:29:02 +0000 (16:29 +0000)]
update dox to reflect that the default colorspace is CGColorSpaceCreateDeviceRGB()

git-svn-id: http://skia.googlecode.com/svn/trunk@676 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agorevert to DeviceRGB colorspace by default, which was changed accidentially
reed@google.com [Wed, 5 Jan 2011 16:07:35 +0000 (16:07 +0000)]
revert to DeviceRGB colorspace by default, which was changed accidentially
in rev. 637

git-svn-id: http://skia.googlecode.com/svn/trunk@675 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd template macro to "safely" perform casts w/o breaking strict-aliasing
reed@google.com [Wed, 5 Jan 2011 15:50:27 +0000 (15:50 +0000)]
add template macro to "safely" perform casts w/o breaking strict-aliasing
fix aliasing warnings

git-svn-id: http://skia.googlecode.com/svn/trunk@674 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agorev. 637 changed the settings for premultiplied on the info parameter. This
reed@google.com [Wed, 5 Jan 2011 15:49:43 +0000 (15:49 +0000)]
rev. 637 changed the settings for premultiplied on the info parameter. This
change incorrectly assumed that all cases wanted premultipled-last, which was
incorrect.

Reverting to the previous values.

git-svn-id: http://skia.googlecode.com/svn/trunk@673 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix for issue 93: need to rewind the shared stream each time openStream() is called
reed@google.com [Tue, 4 Jan 2011 21:25:43 +0000 (21:25 +0000)]
fix for issue 93: need to rewind the shared stream each time openStream() is called

git-svn-id: http://skia.googlecode.com/svn/trunk@672 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix build for scalar==fixed
reed@google.com [Tue, 4 Jan 2011 19:58:20 +0000 (19:58 +0000)]
fix build for scalar==fixed

git-svn-id: http://skia.googlecode.com/svn/trunk@671 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoRemove user-specific visual studio project files.
bsalomon@google.com [Tue, 4 Jan 2011 14:31:49 +0000 (14:31 +0000)]
Remove user-specific visual studio project files.

(Issue 71)

git-svn-id: http://skia.googlecode.com/svn/trunk@670 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix uninitialized warning
reed@google.com [Tue, 4 Jan 2011 12:52:02 +0000 (12:52 +0000)]
fix uninitialized warning

git-svn-id: http://skia.googlecode.com/svn/trunk@669 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agostatic inline eliminates multiple definitions (and makes it zero-cost, since
reed@android.com [Tue, 4 Jan 2011 01:29:52 +0000 (01:29 +0000)]
static inline eliminates multiple definitions (and makes it zero-cost, since
it will be inlined)

git-svn-id: http://skia.googlecode.com/svn/trunk@668 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agomake inline helper static, so it can be included from than one .cpp
reed@android.com [Mon, 3 Jan 2011 19:52:17 +0000 (19:52 +0000)]
make inline helper static, so it can be included from than one .cpp

git-svn-id: http://skia.googlecode.com/svn/trunk@667 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd colorspace option to SkBitmap -> CGImageRef utility (patch from nico)
reed@android.com [Mon, 3 Jan 2011 13:48:50 +0000 (13:48 +0000)]
add colorspace option to SkBitmap -> CGImageRef utility (patch from nico)

git-svn-id: http://skia.googlecode.com/svn/trunk@666 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoremove unneeded file (will be automatically generated)
reed@android.com [Sat, 1 Jan 2011 16:06:43 +0000 (16:06 +0000)]
remove unneeded file (will be automatically generated)

git-svn-id: http://skia.googlecode.com/svn/trunk@665 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoreplace various png_[type]_NULL defines with just NULL
reed@google.com [Fri, 31 Dec 2010 18:11:59 +0000 (18:11 +0000)]
replace various png_[type]_NULL defines with just NULL
libpng 1.4 removed some of these from their headers :(

git-svn-id: http://skia.googlecode.com/svn/trunk@664 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix bug where createTexture may bind a texture to GL without ever updating fHWState...
bsalomon@google.com [Thu, 23 Dec 2010 20:59:40 +0000 (20:59 +0000)]
Fix bug where createTexture may bind a texture to GL without ever updating fHWState.fTexture (when texture is not bound to FBO).

Other minor changes:
Add commented out GL logging define to GrUserConfig
Remove dead GrGpuD3D9 file from xcode proj

git-svn-id: http://skia.googlecode.com/svn/trunk@663 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoupdate copyright
reed@google.com [Thu, 23 Dec 2010 20:34:08 +0000 (20:34 +0000)]
update copyright

git-svn-id: http://skia.googlecode.com/svn/trunk@662 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agofix build for linux
reed@google.com [Thu, 23 Dec 2010 20:20:51 +0000 (20:20 +0000)]
fix build for linux
partial impl for GPU on linux (need getProcAddress and SkEGLContext)

git-svn-id: http://skia.googlecode.com/svn/trunk@661 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd gpu to gm tool
reed@google.com [Thu, 23 Dec 2010 19:29:18 +0000 (19:29 +0000)]
add gpu to gm tool
add pass-through read/write pixels API to canvas

git-svn-id: http://skia.googlecode.com/svn/trunk@660 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoStop using GrSamplerState to track the texture parameters for GL textures. It has...
bsalomon@google.com [Thu, 23 Dec 2010 16:53:57 +0000 (16:53 +0000)]
Stop using GrSamplerState to track the texture parameters for GL textures. It has become larger and now holds state that isn't tracked per-texture by GL. Also remove unused setSamplerStateImm from GrGpuGL

git-svn-id: http://skia.googlecode.com/svn/trunk@659 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoupdate baselines to add 2point-radial gradients, and use gpu-friendly xfermode code
reed@google.com [Thu, 23 Dec 2010 16:45:33 +0000 (16:45 +0000)]
update baselines to add 2point-radial gradients, and use gpu-friendly xfermode code

git-svn-id: http://skia.googlecode.com/svn/trunk@658 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agorequire lpng12 for gm tool (since Mac encoder tweaks the results for colorspace ...
reed@google.com [Thu, 23 Dec 2010 16:34:58 +0000 (16:34 +0000)]
require lpng12 for gm tool (since Mac encoder tweaks the results for colorspace "correction")
update baselines using png

git-svn-id: http://skia.googlecode.com/svn/trunk@657 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoDelete D3D9 gpu class. Was fixed-function only, had significant defeciencies around...
bsalomon@google.com [Thu, 23 Dec 2010 16:04:36 +0000 (16:04 +0000)]
Delete D3D9 gpu class. Was fixed-function only, had significant defeciencies around vertex array formats, and is hasn't been updated with respect to parent class changes (won't compile).

git-svn-id: http://skia.googlecode.com/svn/trunk@656 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agomerge in gpu changes to gradientshaders
reed@google.com [Thu, 23 Dec 2010 15:19:47 +0000 (15:19 +0000)]
merge in gpu changes to gradientshaders

git-svn-id: http://skia.googlecode.com/svn/trunk@655 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agosilence some of our startup spew
reed@google.com [Thu, 23 Dec 2010 15:12:59 +0000 (15:12 +0000)]
silence some of our startup spew
tie skia and gr's debug symbols together in the Makefile

git-svn-id: http://skia.googlecode.com/svn/trunk@654 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd gpu to the default makefile
reed@google.com [Thu, 23 Dec 2010 15:00:45 +0000 (15:00 +0000)]
add gpu to the default makefile
move skia-gpu files into skia/src/gpu

git-svn-id: http://skia.googlecode.com/svn/trunk@653 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFixing results of incorrect conflict resolution in r646.
wjmaclean@chromium.org [Thu, 23 Dec 2010 14:23:25 +0000 (14:23 +0000)]
Fixing results of incorrect conflict resolution in r646.

git-svn-id: http://skia.googlecode.com/svn/trunk@652 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoflush inorder drawtarget (i.e. flushText) before we purge the atlas/cache
reed@google.com [Wed, 22 Dec 2010 22:16:59 +0000 (22:16 +0000)]
flush inorder drawtarget (i.e. flushText) before we purge the atlas/cache

git-svn-id: http://skia.googlecode.com/svn/trunk@651 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoForce bool StageDesc to be a byte so that our memcmp equality test will work. Fixes...
bsalomon@google.com [Wed, 22 Dec 2010 22:13:51 +0000 (22:13 +0000)]
Force bool StageDesc to be a byte so that our memcmp equality test will work. Fixes static assert failure in xcode release build.

git-svn-id: http://skia.googlecode.com/svn/trunk@650 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd gpu backend (not hooked up yet)
reed@google.com [Wed, 22 Dec 2010 21:39:39 +0000 (21:39 +0000)]
add gpu backend (not hooked up yet)

git-svn-id: http://skia.googlecode.com/svn/trunk@649 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoremove obsolete test
reed@google.com [Wed, 22 Dec 2010 21:10:33 +0000 (21:10 +0000)]
remove obsolete test

git-svn-id: http://skia.googlecode.com/svn/trunk@648 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFixed tab character.
wjmaclean@chromium.org [Wed, 22 Dec 2010 17:43:58 +0000 (17:43 +0000)]
Fixed tab character.

git-svn-id: http://skia.googlecode.com/svn/trunk@647 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoSecurity fixes re getSize().
wjmaclean@chromium.org [Wed, 22 Dec 2010 17:43:54 +0000 (17:43 +0000)]
Security fixes re getSize().

git-svn-id: http://skia.googlecode.com/svn/trunk@646 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd for quick gl-offscreen context (so we can draw and then readpixels for GM)
reed@google.com [Tue, 21 Dec 2010 16:26:39 +0000 (16:26 +0000)]
add for quick gl-offscreen context (so we can draw and then readpixels for GM)

git-svn-id: http://skia.googlecode.com/svn/trunk@645 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years ago-d dir will write out a difference-bitmap for each compare that failes
reed@google.com [Mon, 20 Dec 2010 21:10:29 +0000 (21:10 +0000)]
-d dir will write out a difference-bitmap for each compare that failes

git-svn-id: http://skia.googlecode.com/svn/trunk@644 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoremove ZLIB include from SkUserConfig for how (doesn't work on mac sampleapp) but,
reed@google.com [Mon, 20 Dec 2010 20:53:13 +0000 (20:53 +0000)]
remove ZLIB include from SkUserConfig for how (doesn't work on mac sampleapp) but,
add it to Makefile if SKIA_PDF_SUPPORT is true

Use compile_assert (yea!)

git-svn-id: http://skia.googlecode.com/svn/trunk@643 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd option to write PDFs from gm
reed@google.com [Mon, 20 Dec 2010 19:46:07 +0000 (19:46 +0000)]
add option to write PDFs from gm
fix some compile warnings (reorder initializers, init local ptr)

git-svn-id: http://skia.googlecode.com/svn/trunk@642 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd SkFlate.cpp
reed@google.com [Mon, 20 Dec 2010 18:48:46 +0000 (18:48 +0000)]
add SkFlate.cpp

git-svn-id: http://skia.googlecode.com/svn/trunk@641 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd
reed@android.com [Mon, 20 Dec 2010 18:34:17 +0000 (18:34 +0000)]
add

git-svn-id: http://skia.googlecode.com/svn/trunk@640 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoadd
reed@android.com [Mon, 20 Dec 2010 18:33:15 +0000 (18:33 +0000)]
add

git-svn-id: http://skia.googlecode.com/svn/trunk@639 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoupdate for GPU backend
reed@android.com [Mon, 20 Dec 2010 18:32:39 +0000 (18:32 +0000)]
update for GPU backend

git-svn-id: http://skia.googlecode.com/svn/trunk@638 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agomerge with changes for GPU backend
reed@android.com [Mon, 20 Dec 2010 18:26:13 +0000 (18:26 +0000)]
merge with changes for GPU backend

git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix perf regression in Color32.
senorblanco@chromium.org [Thu, 16 Dec 2010 19:07:45 +0000 (19:07 +0000)]
Fix perf regression in Color32.

The regression was due to the fact that we were calling PlatformColorProc() for
every span (which in turns makes CPUID, a fairly expensive call).  Since we draw
a lot of rects, and rects have 1-pixel wide spans for the vertical segments,
that's a lot of CPUID.

Fixed by cacheing the result of PlatformColorProc(), as is done for the other
platform-specific blitters.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@636 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoUnreviewed; ARM build fix.
senorblanco@chromium.org [Wed, 15 Dec 2010 16:20:59 +0000 (16:20 +0000)]
Unreviewed; ARM build fix.

git-svn-id: http://skia.googlecode.com/svn/trunk@635 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agodump message confirming read or write directory
reed@android.com [Tue, 14 Dec 2010 17:46:14 +0000 (17:46 +0000)]
dump message confirming read or write directory

git-svn-id: http://skia.googlecode.com/svn/trunk@634 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoSSE2 optimizations for 32bit Color operation.
senorblanco@chromium.org [Mon, 13 Dec 2010 15:27:20 +0000 (15:27 +0000)]
SSE2 optimizations for 32bit Color operation.

[Patch from weiwei.li@intel.com]

SSE2 optimization has been added by Stephen White before, this improves the skia
performance on SSE2-supporting platform. (please refer to below issues)

Issue 171055: More SSE2ification
Issue 157141: More SSE2ification
Issue 150060: minor tweaks to SSE2 code for -fPIC
Issue 144072: SSE2 optimizations for 32bit blending blitters

This CL implements SSE2 optimizations for the 32bit Color operation. Like above
issues, it uses CPUID to detect for SSE2 and changes the platform procs at
runtime as well. The 32bit Color operation is heavily used on Chrome HTML5
canvas operations. Take Microsoft IE test drives Pulsating Bubbles as example
(http://ie.microsoft.com/testdrive/Performance/PulsatingBubbles/Default.xhtml),
if running this cases on Chrome, the overhead of 32bit Color operation is about
40~50%. So this CL will make skia performance more better, and also make Chrome
HTML5 canvas performance more better.

Additional, this CL has passed the skia bench & tests validation, the result is
pretty good. We also apply this CL to the latest chromium, and re-run Microsoft
IE test drives Pulsating Bubbles, the performance is improved by almost 9~10%.

git-svn-id: http://skia.googlecode.com/svn/trunk@633 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoUpstream mulDiv255Ceil() from WebKit to the skia repository.
senorblanco@chromium.org [Tue, 7 Dec 2010 21:07:56 +0000 (21:07 +0000)]
Upstream mulDiv255Ceil() from WebKit to the skia repository.

(Patch by Noel Gordon (noel.gordon@gmail.com))

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

git-svn-id: http://skia.googlecode.com/svn/trunk@632 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoPatch by Mike Lawther (mikelawther@chromium.org).
senorblanco@chromium.org [Mon, 6 Dec 2010 23:45:58 +0000 (23:45 +0000)]
Patch by Mike Lawther (mikelawther@chromium.org).

The HTML5 canvas client of BlurDrawLooper needs the option to not apply the
canvas transform to the blur offset.

see
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-elemen...
- "The shadowOffsetX and shadowOffsetY attributes specify the distance that the
shadow will be offset in the positive horizontal and positive vertical distance
respectively. Their values are in coordinate space units. They are not affected
by the current transformation matrix."

This patch is part of fixing
http://code.google.com/p/chromium/issues/detail?id=64647.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@631 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoCorrectly handle SkPath::kInverseWinding_FillType
agl@chromium.org [Mon, 6 Dec 2010 18:52:40 +0000 (18:52 +0000)]
Correctly handle SkPath::kInverseWinding_FillType

Fix for http://code.google.com/p/skia/issues/detail?id=87

Even when SkPath::kInverseWinding_FillType is given, Skia left some
lines not filled(cleared) in one case.

Patch-by: morrita
http://codereview.appspot.com/3443041

git-svn-id: http://skia.googlecode.com/svn/trunk@630 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAdd flate compression test and fix bugs.
vandebo@chromium.org [Thu, 2 Dec 2010 22:55:33 +0000 (22:55 +0000)]
Add flate compression test and fix bugs.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@628 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAdd deflate support to SkPDFStream.
vandebo@chromium.org [Wed, 1 Dec 2010 22:17:20 +0000 (22:17 +0000)]
Add deflate support to SkPDFStream.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@627 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAllow zero text size to be specified for an SkPaint.
vandebo@chromium.org [Wed, 17 Nov 2010 21:44:28 +0000 (21:44 +0000)]
Allow zero text size to be specified for an SkPaint.

We have to support zero sized fonts and generate correct metrics
to pass Acid3.  There don't seem to be any requirements that textsize
be >0, just that it not be negative.

Original issue: http://codereview.appspot.com/3174041/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@626 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years ago Add safe size/copy functions to Skia.
wjmaclean@chromium.org [Tue, 16 Nov 2010 20:22:41 +0000 (20:22 +0000)]
Add safe size/copy functions to Skia.

    This patch adds four methods to SkBitmap. There are two functions to return
    "safe size", defined as the number of pixels from the value returned by
    getPixels() to the end of the allocated buffer.

    There is one version of fillPixels() to copy the bitmap instance into an
    external buffer (with specified size, and using specified stride), and another
    fillPixels() to copy from an external buffer to the instance bitmap. In the
    latter case the specified height, width and pixel format must match that used by
    the bitmap instance, although the specified stride may be any value at least as
    large as the minimum stride for the specified geometry. It is assumed that the
    external buffer is of size at least (height - 1)*stride + width *
    bytesPerPixel.

    Both fillPixels() functions return false if the copy is not possible with the
    specified parameters.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@625 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoPDF: Add text support with a font framework (font embedding to come).
vandebo@chromium.org [Thu, 11 Nov 2010 21:37:00 +0000 (21:37 +0000)]
PDF: Add text support with a font framework (font embedding to come).

Supports fakeBold, underline, strikethrough, mode (fill, stroke, both), size, skew, alignment (left, center, right).
Missing is drawFontOnPath and font lookup and embedding.
Changed SkPDFString to support how it is used from drawText methods.
Moved compile assert into SkTypes.
Moved constants and utility function used to support fakeBold, underline, and strikethrough into higher level locations.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@624 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoRemove include of SkGLDevice.h from SkGLCanvas.h
vandebo@chromium.org [Thu, 11 Nov 2010 00:49:41 +0000 (00:49 +0000)]
Remove include of SkGLDevice.h from SkGLCanvas.h

The '#include "SkGLDevice.h"' from include/core/SkDevice.h requires internal
Skia code to be added to the include search paths when using the deprecated API.
This change adds back SkGLCanvas.cpp to avoid exposing SkGLDevice.h to the
public API.

The change also includes an explicit virtual destructor on SkDeviceFactory to
silence a -Wnon-virtual-dtor warning and allow for -Werror.

Original Issue: http://codereview.appspot.com/3009041/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@623 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAdd clipping support and some small fixes.
vandebo@chromium.org [Wed, 3 Nov 2010 23:55:28 +0000 (23:55 +0000)]
Add clipping support and some small fixes.

Reorganize how the PDF graphic state stack is managed (fixing several bugs incidentally).
Style: fix variables with underscores.
Bug: fix image matrix application order, which enabled a small refactor.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@622 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAdd PDF support for drawDevice using a form xobject.
vandebo@chromium.org [Tue, 26 Oct 2010 19:54:45 +0000 (19:54 +0000)]
Add PDF support for drawDevice using a form xobject.

This depends on:
http://codereview.appspot.com/2719041
http://codereview.appspot.com/2720041
http://codereview.appspot.com/2721041

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

git-svn-id: http://skia.googlecode.com/svn/trunk@621 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoImplement SkPDFDevice::drawPath(...)
vandebo@chromium.org [Tue, 26 Oct 2010 19:51:44 +0000 (19:51 +0000)]
Implement SkPDFDevice::drawPath(...)

This depends on http://codereview.appspot.com/2721041

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

git-svn-id: http://skia.googlecode.com/svn/trunk@620 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoSeveral cleanups:
vandebo@chromium.org [Tue, 26 Oct 2010 19:48:49 +0000 (19:48 +0000)]
Several cleanups:

Fix the spelling of resource in several places
Make getResouce(resourceList) part of SkPDFObject
make SkDynamicMemoryWStream::getOffset and SkPDFPage::getMediaBox const
Add a temporary NOT_IMPLEMENTED macro instead of using SkASSERT

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

git-svn-id: http://skia.googlecode.com/svn/trunk@619 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoMove the device capability method to SkDevice.
vandebo@chromium.org [Tue, 26 Oct 2010 19:47:30 +0000 (19:47 +0000)]
Move the device capability method to SkDevice.

These are not the capabilities of the factory, but of the device.  Additionally, it is more often needed when you have a device then when you have a factory, which caused creating of a new factory.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@618 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoCleanup/unify matrix transform for PDF backend.
vandebo@chromium.org [Tue, 26 Oct 2010 19:45:06 +0000 (19:45 +0000)]
Cleanup/unify matrix transform for PDF backend.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@617 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix SkDraw::validate to work with vector Devices.
vandebo@chromium.org [Tue, 26 Oct 2010 19:44:10 +0000 (19:44 +0000)]
Fix SkDraw::validate to work with vector Devices.

Vector devices don't have a (valid) fBitmap, so pass in width and height.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@616 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoBug fix in SkPDFImage.
vandebo@chromium.org [Tue, 26 Oct 2010 19:43:14 +0000 (19:43 +0000)]
Bug fix in SkPDFImage.

Need to lock the pixels to make sure they are there.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@615 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFirst pieces of SkPDFDevice. Supports:
vandebo@chromium.org [Wed, 20 Oct 2010 22:23:29 +0000 (22:23 +0000)]
First pieces of SkPDFDevice. Supports:

Matrix transforms.
Rendering bitmaps.
Basic paint parameters.
Rendering rectangles, points, lines, polygons.
Render a paint to the page.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@614 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoClamp the maximum size of glyph width we will attempt to render.
scarybeasts@gmail.com [Mon, 18 Oct 2010 23:29:36 +0000 (23:29 +0000)]
Clamp the maximum size of glyph width we will attempt to render.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@607 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix a signedness issue with massive allocations, and also a truncation issue on
scarybeasts@gmail.com [Mon, 18 Oct 2010 22:56:49 +0000 (22:56 +0000)]
Fix a signedness issue with massive allocations, and also a truncation issue on
64-bit.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@606 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoFix a memory leak in the new Canvas/Device workflow.
vandebo@chromium.org [Fri, 15 Oct 2010 18:58:19 +0000 (18:58 +0000)]
Fix a memory leak in the new Canvas/Device workflow.

The previous change made it difficult to inherit from SkCanvas without leaking memory.  By making SkDeviceFactory not reference counted, the right thing happens more naturally, just NewCanvas : public SkCanvas(new NewDeviceFactory()) {...}

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

git-svn-id: http://skia.googlecode.com/svn/trunk@605 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoRefactor SkCanvas so that backends don't need to override it.
vandebo@chromium.org [Wed, 13 Oct 2010 22:13:05 +0000 (22:13 +0000)]
Refactor SkCanvas so that backends don't need to override it.

Methods or classes that should go away are marked deprecated. The only thing I know of that breaks backward compatibility is SkCanvas((SkDevice*)NULL), but that is fairly unlikely to occur in the wild because that constructor had a default value of NULL.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@604 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoSkPath::arcTo() will cause uninitialized memory reads in the following cases:
senorblanco@chromium.org [Wed, 13 Oct 2010 18:47:00 +0000 (18:47 +0000)]
SkPath::arcTo() will cause uninitialized memory reads in the following cases:

- when the previous point in the path and (x1, y1) are coincident
- when (x1, y1) and (x2, y2) are coincident

These cause the setNormalize() calls to leave the "before" and "after" vectors
uninitialized, respectively, which are then used to compute cosh and sinh.

I chose to implement HTML5 canvas behaviour for these cases (as well as for the
case where all three points are collinear):  add a line to the first point, and
bail.  I think this is ok, since skia is mostly used for HTML5 browsers, and
this case is degenerate anyway.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@603 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoHigh level pdf classes and pdf specific interface.
vandebo@chromium.org [Tue, 12 Oct 2010 23:08:13 +0000 (23:08 +0000)]
High level pdf classes and pdf specific interface.

The guts of the implementation will be in SkPDFDevice and below.  This is a first implementation of everything above that point.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@602 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoAddress senorblanco's comments on r600.
vandebo@chromium.org [Fri, 1 Oct 2010 23:26:55 +0000 (23:26 +0000)]
Address senorblanco's comments on r600.

Don't inline constructors and destructors.
Include license in test file.
A few nits
Also, cleanup a couple compile warnings.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@601 2bbb7eff-a529-9590-31e7-b0007b416f81

13 years agoInitial PDF backend commit: directories, build rules, primitives
vandebo@chromium.org [Fri, 24 Sep 2010 22:25:30 +0000 (22:25 +0000)]
Initial PDF backend commit: directories, build rules, primitives

This change establishes and tests the building blocks of the PDF file format.
For now, PDF code is not compiled by default.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@600 2bbb7eff-a529-9590-31e7-b0007b416f81