Commit Graph

533 Commits

Author SHA1 Message Date
reed@google.com
24fb8e2cce mark viewport APIs as deprecated
git-svn-id: http://skia.googlecode.com/svn/trunk@1108 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-11 19:42:50 +00:00
reed@google.com
ad91799832 code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1106 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-11 19:01:12 +00:00
bsalomon@google.com
5877ffd5ea Add APIs and plumbing for external rendertaret-textures w/ and w/out MSAA.
Review URL: http://codereview.appspot.com/4388049/



git-svn-id: http://skia.googlecode.com/svn/trunk@1102 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-11 17:58:48 +00:00
mike@reedtribe.org
4e1d3acc16 code style
git-svn-id: http://skia.googlecode.com/svn/trunk@1095 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-10 01:04:37 +00:00
mike@reedtribe.org
2c8fc5a703 add init() to SkTLazy to create a default instance
use SkLazyPaint in internalDrawBitmap



git-svn-id: http://skia.googlecode.com/svn/trunk@1093 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-10 00:35:29 +00:00
mike@reedtribe.org
bcc1d33e94 coding style updates
git-svn-id: http://skia.googlecode.com/svn/trunk@1090 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-09 19:16:54 +00:00
mike@reedtribe.org
0e2810be95 add optional bitflags to control which aspect of each layer's paint is applied
git-svn-id: http://skia.googlecode.com/svn/trunk@1083 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-08 02:41:54 +00:00
reed@google.com
4e2b3d3fb1 Simplify drawloopers and drawfilters. This allows the canvas to keep its
promise that const SkPaint& stay const (so we don't have bugs if a const paint
is referenced from two threads in pictures)



git-svn-id: http://skia.googlecode.com/svn/trunk@1074 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-07 14:18:59 +00:00
reed@google.com
a076e9be17 use new template class SkTLazy for deferred paint initialization
git-svn-id: http://skia.googlecode.com/svn/trunk@1070 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-06 20:17:29 +00:00
vandebo@chromium.org
139d84b263 Remove transitionary version of getAdvancedTypefaceMetrics. Webkit has been updated.
Review URL: http://codereview.appspot.com/4383041

git-svn-id: http://skia.googlecode.com/svn/trunk@1068 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-06 18:18:20 +00:00
vandebo@chromium.org
c7a38f38c9 Make SkFlate buffers statically sized (fixes Windows compile).
Review URL: http://codereview.appspot.com/4357054

git-svn-id: http://skia.googlecode.com/svn/trunk@1059 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-05 20:11:32 +00:00
bsalomon@google.com
669fdc4ed8 Adds read pixels to GrTexture and GrRenderTarget
Adds SkGrRenderTargetPixelRef for SkBitmaps that are backed by RTs that aren't textures.
Adds onReadPixels implementations for SkGr pixel ref types



git-svn-id: http://skia.googlecode.com/svn/trunk@1056 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-05 17:08:27 +00:00
reed@google.com
62ab7addb0 export SkDraw::ComputeRectType() and share that with SkGpuDevice
git-svn-id: http://skia.googlecode.com/svn/trunk@1055 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-05 14:08:25 +00:00
vandebo@chromium.org
f71b2103d5 [PDF] Make the NOT_IMPLEMENTED macro not print anything by default.
Review URL: http://codereview.appspot.com/4351046

git-svn-id: http://skia.googlecode.com/svn/trunk@1050 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-04 19:46:31 +00:00
reed@google.com
761fb62b0e reenable fast stroked rects, now that we correctly handle non-square scale
also, degenerate non-antialias rectangles now draw properly



git-svn-id: http://skia.googlecode.com/svn/trunk@1049 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-04 18:58:05 +00:00
mike@reedtribe.org
7ff678bc16 faster stroke rects
git-svn-id: http://skia.googlecode.com/svn/trunk@1042 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-04 14:38:12 +00:00
reed@google.com
50dfa0130b add pixelref->readPixels()
unimplemented (for now) on the gpu side



git-svn-id: http://skia.googlecode.com/svn/trunk@1037 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-01 19:05:36 +00:00
reed@google.com
f1ec465f87 add () to fix warning
git-svn-id: http://skia.googlecode.com/svn/trunk@1033 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-04-01 14:30:00 +00:00
bsalomon@google.com
8fe72477f2 Add GrResource base class for ibs, texs, vbs, etc.
Add lostContext() to GrContext.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1026 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 21:26:44 +00:00
reed@google.com
a7d948523d replace SkRefDict with SkMetaData (much more general)
git-svn-id: http://skia.googlecode.com/svn/trunk@1025 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 21:23:07 +00:00
ctguil@chromium.org
dfc5ffe478 Additional SK_API annotations needed for print preview on windows.
Review URL: http://codereview.appspot.com/4324042

git-svn-id: http://skia.googlecode.com/svn/trunk@1022 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 20:14:49 +00:00
vandebo@chromium.org
325cb9aa17 Improve the SkAdvancedTypefaceMetrics interface w.r.t. vertical advances.
Add a template function to type safe-combine bits of a bit field.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@1020 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 18:36:29 +00:00
reed@google.com
e733071abe add refcnt helper to metadata
add unittests for metadata



git-svn-id: http://skia.googlecode.com/svn/trunk@1019 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 18:23:21 +00:00
reed@google.com
5e3496e555 move SkMetaData into core
git-svn-id: http://skia.googlecode.com/svn/trunk@1018 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 17:10:42 +00:00
reed@google.com
9266fed56a add getTopLayer(), so clients don't have to use a LayerIter just to get
the top. (very common for chrome)



git-svn-id: http://skia.googlecode.com/svn/trunk@1016 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-30 00:18:03 +00:00
vandebo@chromium.org
cae5fba82e Store content streams in an SkStream instead of an SkString (64k size limit).
Review URL: http://codereview.appspot.com/4272070

git-svn-id: http://skia.googlecode.com/svn/trunk@1011 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-28 19:03:50 +00:00
reed@google.com
94f6a730bb add experimental Relay class
git-svn-id: http://skia.googlecode.com/svn/trunk@1010 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-28 03:47:18 +00:00
reed@google.com
7ff8d81290 add dox for drawPath, describing how to interpret the prePathMatrix.
git-svn-id: http://skia.googlecode.com/svn/trunk@1006 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-25 15:08:16 +00:00
reed@google.com
b123c9d997 Remove optional impl for SkClampMax that relied on not wrapping, as in fact
we do sometimes (e.g. gradients).



git-svn-id: http://skia.googlecode.com/svn/trunk@1003 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-24 19:17:31 +00:00
Scroggo
0f185c2709 Move zoomer into SampleApp
git-svn-id: http://skia.googlecode.com/svn/trunk@1002 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-24 18:35:50 +00:00
scroggo
7b11807968 Fix a crash.
http://codereview.appspot.com/4272065/


git-svn-id: http://skia.googlecode.com/svn/trunk@986 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-23 15:04:26 +00:00
reed@google.com
0a0a236c3b Initialize fClip in SkBounder, in case doIRect() is called before it is used
inside a canvas (which calls setClip).

Export a global empty region. Used by SkBounder's constructor.



git-svn-id: http://skia.googlecode.com/svn/trunk@985 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-23 13:51:55 +00:00
reed@google.com
df49991eb3 add SkCreateTypefaceFromCTFont() to create a typeface directly from a CTFontRef
Compute the actual style from the returned CTFontRef, rather than assuming the
request will always be met.



git-svn-id: http://skia.googlecode.com/svn/trunk@979 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-22 14:07:59 +00:00
scroggo
08526c07f4 Add a 'fatbits' mode to unix sample app.
git-svn-id: http://skia.googlecode.com/svn/trunk@978 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-22 14:03:21 +00:00
bsalomon@google.com
918261018f Add GR_DLL builds to Ganesh (minimal exports for Chrome multi-dll for now).
Review URL:  http://codereview.appspot.com/4301044/




git-svn-id: http://skia.googlecode.com/svn/trunk@970 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-21 19:51:57 +00:00
mike@reedtribe.org
dd0cd34067 allow window-subclass to handle dispatching click events (for resize)
add drag tracking to Draw



git-svn-id: http://skia.googlecode.com/svn/trunk@967 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-21 00:53:39 +00:00
mike@reedtribe.org
b7d956df46 add draw sample
git-svn-id: http://skia.googlecode.com/svn/trunk@966 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-20 20:19:16 +00:00
vandebo@chromium.org
57463e1908 Make SkDeviceFactory part of the API.
Review URL: http://codereview.appspot.com/4273081

git-svn-id: http://skia.googlecode.com/svn/trunk@965 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-19 17:27:49 +00:00
scroggo
b66365f5dd Updates to the unix sample app.
Rather than placing pixels, use XPutImage to place the bitmap on screen.

Modify the color arrangements for 8888 when building the sample app, so
they agree with X.

Add a title to simple sample.

Include SkTouchGesture.



git-svn-id: http://skia.googlecode.com/svn/trunk@963 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-18 21:43:03 +00:00
reed@google.com
97fa34c5f0 change operator== to return bool instead of int
update dox formating



git-svn-id: http://skia.googlecode.com/svn/trunk@956 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-18 14:44:42 +00:00
bsalomon@google.com
c8ad63e5e4 Initial GYP file for skia / gr. Builds SampleApp on Mac, Windows, Linux.
Review URL: http://codereview.appspot.com/4282056/

git-svn-id: http://skia.googlecode.com/svn/trunk@955 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-18 14:29:44 +00:00
reed@google.com
9d07fec374 update dox for setLooper()
update some { } styles



git-svn-id: http://skia.googlecode.com/svn/trunk@948 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-16 20:02:59 +00:00
reed@google.com
52f57e1d11 add fling
git-svn-id: http://skia.googlecode.com/svn/trunk@946 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-16 12:10:02 +00:00
ctguil@chromium.org
109a2e3afa Add SK_API to SkCreateTypefaceFromLOGFONT.
Review URL: http://codereview.appspot.com/4273062

git-svn-id: http://skia.googlecode.com/svn/trunk@945 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-16 00:31:36 +00:00
ctguil@chromium.org
7ffb1b21ab Add code needed to build skia as a windows dll within the chromium project.
- Export/import skia APIs if SKIA_DLL is defined.
- This change has no effect on skia.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@944 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-15 21:27:08 +00:00
reed@google.com
f67e4cf4c1 add filterTextFlags() to SkDevice (virtual) to allow device subclasses to
filter what text features we try to use. The filtering allows for implementation
limitations to dictate when we turn off certain text features.



git-svn-id: http://skia.googlecode.com/svn/trunk@943 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-15 20:56:58 +00:00
reed@google.com
98539c607b support lcd16 in text atlas (sans shader support)
git-svn-id: http://skia.googlecode.com/svn/trunk@939 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-15 15:40:16 +00:00
scroggo
b7e9aee1ac Add a sample application that runs on unix.
git-svn-id: http://skia.googlecode.com/svn/trunk@938 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-15 15:15:15 +00:00
djsollen@google.com
cd9d69b9ce Upstreaming changes from android.
- fix compile warnings in the GPU code
- upstream android specific code (ifdef protected)
- fail gracefully when a custom allocator fails



git-svn-id: http://skia.googlecode.com/svn/trunk@936 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-14 20:30:14 +00:00
reed@google.com
e31241cfe3 undo recent addition of kLCD16_Format to FormatIsLCD()
git-svn-id: http://skia.googlecode.com/svn/trunk@926 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-11 20:09:42 +00:00
vandebo@chromium.org
f77e27deb9 Use Type3 fonts for platforms that don't yet support SkFontHost::GetAdvancedTypefaceMetrics.
Review URL: http://codereview.appspot.com/4273041

git-svn-id: http://skia.googlecode.com/svn/trunk@922 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-10 22:50:28 +00:00
reed@google.com
8bd4c7964f add kLCD16_Format to the list in FormatIsLCD()
git-svn-id: http://skia.googlecode.com/svn/trunk@920 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-10 19:25:22 +00:00
bsalomon@google.com
498a623e2e Remove offscreen GL support from SampleApp and SkOSWindow. This never worked anywhere but Mac and it doesn't work there anymore.
git-svn-id: http://skia.googlecode.com/svn/trunk@918 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-10 18:24:15 +00:00
reed@google.com
f88d6765a5 check-point for kLCD16_Format mask support
disabled for now in SkPaint.cpp (for further testing)



git-svn-id: http://skia.googlecode.com/svn/trunk@917 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-10 15:06:27 +00:00
reed@google.com
63a6060fcd add realloc() to SkAutoSMalloc, plus some documentation
git-svn-id: http://skia.googlecode.com/svn/trunk@913 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-10 13:07:35 +00:00
reed@google.com
981d479800 http://codereview.appspot.com/3980041/
Add blitmask procs (with optional platform acceleration)
patch by yaojie.yan



git-svn-id: http://skia.googlecode.com/svn/trunk@910 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-09 12:55:47 +00:00
vandebo@chromium.org
da912d61ed [PDF] Add support for Shaders.
- Shaders, or as they are referred to in PDF, patterns, are drawn in the coordinate system of the initial page, so when we canonicalize them, we have to consider the current transform and where they are constructed.

- Image shaders are tiled by default, this makes repeat and mirror modes easy, but means we have to draw a pattern as large as the current clip to support clamp mode.

- Gradient shaders are implemented with type 4 functions, which are basically small snippets of post script code.  I've tried to make the code generation modular and heavily commented to make it easy to understand or expand.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@905 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 18:31:02 +00:00
reed@google.com
ddbf4c85de remove unused methods from SkRefPtr, as a check-point for better understanding
what we want to do with this class.



git-svn-id: http://skia.googlecode.com/svn/trunk@903 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 16:06:06 +00:00
reed@google.com
8cad58624b add const to SkColorShader's asABitmap
git-svn-id: http://skia.googlecode.com/svn/trunk@900 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 14:51:44 +00:00
reed@google.com
7c2f27d788 make asABitmap() const
change private cache fields in gradient to be mutable



git-svn-id: http://skia.googlecode.com/svn/trunk@898 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-07 19:29:00 +00:00
bsalomon@google.com
bf4338cb3b Fix Sample App on Win32 GL window resize, fix sk->gr convexity hint, fix grpath uninit warnings
Review URL http://codereview.appspot.com/4247055/


git-svn-id: http://skia.googlecode.com/svn/trunk@895 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 22:48:25 +00:00
reed@google.com
6f8f292aa7 add origin to device
used for interpreting the clipstack when a device is a layer



git-svn-id: http://skia.googlecode.com/svn/trunk@894 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 22:27:10 +00:00
ctguil@chromium.org
f966fd35cf Add SkPDFUtils.cpp to build.
git-svn-id: http://skia.googlecode.com/svn/trunk@893 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 21:47:04 +00:00
ctguil@chromium.org
9db86bb9cd PDF Type3 Support.
git-svn-id: http://skia.googlecode.com/svn/trunk@892 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 21:43:27 +00:00
bsalomon@google.com
5aaa69e433 Fixups for clipstack, convexity test for paths.
Review URL http://codereview.appspot.com/4250056/

git-svn-id: http://skia.googlecode.com/svn/trunk@891 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 20:29:08 +00:00
ctguil@chromium.org
0bc7bf5fe4 Implement SkScalerContext_Windows::generateGlyphCount() and provide access via SkGlyphCache interface.
* This will be used by PDF font code.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@888 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 19:04:57 +00:00
reed@google.com
9b74b1114a export SkCreateTypefaceFromLOGFONT
git-svn-id: http://skia.googlecode.com/svn/trunk@886 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 15:56:12 +00:00
vandebo@chromium.org
094316bd28 [PDF] Restrict scalars to the range that PDF understands.
* Add a config flag to ignore the restrictions
* Apply restriction to both SkPDFScalar and scalars used in content streams.
* +/- 32,767 for the integer part.
* +/1 1/65536 for the fraction part.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@882 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 03:15:13 +00:00
reed@google.com
e280f1d164 bump SkStrAppendScalar_MaxSize to 15 to handle 3-digit exponents on some
platforms (like windows)



git-svn-id: http://skia.googlecode.com/svn/trunk@881 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-03 18:43:14 +00:00
vandebo@chromium.org
677cbedda7 Expose explicit functions to stringify float's and fixed's.
See http://codereview.appspot.com/4240050/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@880 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-03 18:20:12 +00:00
bsalomon@google.com
d302f1401b Add support for clipstack to Gr. GrClip is now a list of rects and paths with set operations to combine them. The stencil buffer is used to perform the set operations to put the clip into the stencil buffer. Building Gr's clip from Skia's clipStack is currently disabled due to the fact that Skia's clipStack is relative to the root layer not the current layer. This will be fixed in a subsequent CL.
git-svn-id: http://skia.googlecode.com/svn/trunk@878 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-03 13:54:13 +00:00
reed@google.com
1d12b1fd66 add setXYWH to rects
new tests for circles



git-svn-id: http://skia.googlecode.com/svn/trunk@877 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-03 13:23:35 +00:00
reed@google.com
8072e4fdc8 bump SkStrAppendScalar_MaxSize to 14 to accomodate the largest string now that
scalar->string uses %.8g. Floats have at most 8 significant digits, plus we add
more space for sign, decimal point and exponent.

add tests to check these limits.



git-svn-id: http://skia.googlecode.com/svn/trunk@872 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 15:44:08 +00:00
vandebo@chromium.org
0129410fbe [PDF] Fix broken encoding conversion code for non-multibyte fonts.
Review URL: http://codereview.appspot.com/4245044

git-svn-id: http://skia.googlecode.com/svn/trunk@863 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-28 19:52:18 +00:00
reed@google.com
a67573e25f http://codereview.appspot.com/4233041/
Add templated version of SkAutoTUnref.
Add unittests for it.
Remove unused helper apis on SkAutoUnref.



git-svn-id: http://skia.googlecode.com/svn/trunk@858 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-25 18:10:29 +00:00
vandebo@chromium.org
c2a9b7fe56 [PDF] Remove one copy of each content stream.
Review URL: http://codereview.appspot.com/4231044

git-svn-id: http://skia.googlecode.com/svn/trunk@856 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 23:22:30 +00:00
vandebo@chromium.org
f60a001d1a [PDF] Change the way flip origin is done.
The PDF shader matrix is dependent on flip origin or not, so we need to set it at device creation time.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@855 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 23:14:04 +00:00
vandebo@chromium.org
112706d4c5 Add SkBitmap::getColor(int x, int y) - return the color of a pixel in a bitmap.
Review URL: http://codereview.appspot.com/4230041

git-svn-id: http://skia.googlecode.com/svn/trunk@854 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 22:50:55 +00:00
vandebo@chromium.org
d90c141feb [PDF] Clean up SkPDFStream and make it inherit from SkPDFDict.
A stream is a dictionary (with a couple particular entries) plus the data.
The common parent is useful for the shader implementation.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@852 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 21:50:04 +00:00
reed@google.com
93c5f9e787 Guard globalRef() virtual with #ifdef ANDROID, as these are not implemented
nor called by Skia proper.



git-svn-id: http://skia.googlecode.com/svn/trunk@850 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 18:09:46 +00:00
reed@google.com
875b4ecef7 add isFixedWidth() to expose the newly added attribute
git-svn-id: http://skia.googlecode.com/svn/trunk@849 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 18:03:12 +00:00
vandebo@chromium.org
d3ae77965e Add asAGradient shader extraction API.
Store initial gradient parameters.
Add compile asserts in GPU code for BitmapType ordering.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@845 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-24 00:21:06 +00:00
reed@google.com
7d7ca79c3e add fClipStack optional field to SkDraw (it is always set by canvas)
git-svn-id: http://skia.googlecode.com/svn/trunk@844 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-23 22:39:18 +00:00
djsollen@google.com
57f4969724 merge from android tree:
- optional parameters added to descriptorProc and allocPixels
- clip options to image decoders
- check for xfermode in blitter_a8
- UNROLL loops in blitrow

reviewed by reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@841 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-23 20:46:31 +00:00
reed@google.com
5b31b0f1ea add fixed-width attribute to typeface
(patch from russellbrenner)



git-svn-id: http://skia.googlecode.com/svn/trunk@837 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-23 14:41:42 +00:00
bsalomon@google.com
57788b5ada Fix warnings about struct being forward declared as a class
git-svn-id: http://skia.googlecode.com/svn/trunk@833 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 21:00:31 +00:00
reed@google.com
46799cd9f0 change virtual setMatrixClip() to take a SkClipStack parameter.
git-svn-id: http://skia.googlecode.com/svn/trunk@831 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 20:56:26 +00:00
bsalomon@google.com
ffca400ef6 Make a separate path renderer object. Move enum types to GrTypes.h
Review URL http://codereview.appspot.com/4167067/



git-svn-id: http://skia.googlecode.com/svn/trunk@829 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 20:34:01 +00:00
reed@google.com
5c3d1471e4 add clipstack to canvas. not used yet, but will be for devices (e.g. gpu) that
want to see how the clip was built



git-svn-id: http://skia.googlecode.com/svn/trunk@824 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 19:12:23 +00:00
reed@google.com
4c09d5cd4b rename SkDeque::Iter to SkDeque::F2BIter, since it runs front-to-back (in preparation
for another iter that runs back-to-front (B2FIter).

add unittest for Deque



git-svn-id: http://skia.googlecode.com/svn/trunk@821 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-22 13:16:38 +00:00
senorblanco@chromium.org
4868e6b221 [Committed on behalf of junov@chromium.org]
Fixed rendering of shadows under bitmaps.  
Added an option to SkBlurMask to produce higher quality blurs.  
The HQ blur option is propagated through SkBlurDrawLooper so that it can be invoked by WebKit for drawing shadows.
Added a shadow rendering test to gm.

Bugs fixed: 146, 150
Related Chromium bugs: 11153, 42654
Code review: http://codereview.appspot.com/4174049



git-svn-id: http://skia.googlecode.com/svn/trunk@818 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-18 19:03:01 +00:00
reed@google.com
40981ba42a remove dead conditional code
git-svn-id: http://skia.googlecode.com/svn/trunk@811 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-18 12:57:26 +00:00
bsalomon@google.com
c6cf72381b Hide alloc size vs content size below API
Remove old gl shaders class
Move texture matrix to sampler class

git-svn-id: http://skia.googlecode.com/svn/trunk@808 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-17 16:43:10 +00:00
reed@google.com
e686322eba add no-check version of SkPackARGB32, for callers that want to deliberately
build a SkPMColor that may not be valid premultiplied (e.g. compatibility
with webgl)

see https://bugs.webkit.org/show_bug.cgi?id=54023



git-svn-id: http://skia.googlecode.com/svn/trunk@796 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-15 14:22:19 +00:00
vandebo@chromium.org
6f72d1eacd Provide windows font host implementation needed to support TrueType text in pdf backend.
- Move AdvanceMetric template functions into new file SkAdvancedTypefaceMetrics.cpp

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

git-svn-id: http://skia.googlecode.com/svn/trunk@789 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-14 23:19:59 +00:00
reed@google.com
077910e20c add SkScalarIsFinite(), and use it for a more portable impl of SkRect::isValidCoords()
git-svn-id: http://skia.googlecode.com/svn/trunk@775 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-08 21:56:39 +00:00
vandebo@chromium.org
4854327772 [PDF] Add support for xfermodes / blend modes.
- Change SkGraphicState to track and set the blend mode (xfermode) for modes built in to PDF (non porter duff modes + src over).
- Add SkXfermode::asMode() to retrieve xfermode as an enum for non porter duff modes.
- Move SkXfermode.cpp around a bit to support asMode() -- Generally move utility functions toward the top of the file.
- Make SkPDFFormXObject an isolated transparency group, as it used for saveLayer, which draws on transparent, not the device background.
- Set the graphic state in drawDevice and drawBitmap in order to get the right xfermode and alpha.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@774 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-08 19:28:07 +00:00
vandebo@chromium.org
79ac4fd6eb [PDF] Change SkPDFFormXObject to not hold a reference to device.
This prevents two copies of the content stream from sticking around.  It also fixes an invalid memory reference because SkCanvas::internalRestore deletes the device (maybe it should just unref) after drawing it onto the main device.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@773 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-08 19:22:40 +00:00
reed@google.com
3dd42b3c87 update dox for readPixels()
git-svn-id: http://skia.googlecode.com/svn/trunk@772 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-07 22:44:43 +00:00
reed@google.com
88daf2803a check for SK_BUILD_FOR_BREW
git-svn-id: http://skia.googlecode.com/svn/trunk@771 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-07 20:05:49 +00:00
wjmaclean@chromium.org
116b2bcd2c Proposed fix for crash in Cr70244.
git-svn-id: http://skia.googlecode.com/svn/trunk@764 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-07 17:48:37 +00:00
reed@google.com
82065d667f remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites with
SkSafeRef() and SkSafeUnref().

This is basically a bug waiting to happen. An optimizing compiler can remove
checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on
precisely this check...

void SkRefCnt::safeRef() {
    if (this) {
        this->ref();
    }
}

Since a compiler might skip the if-clause, it breaks the intention of this
method, hence its removal.

static inline void SkSafeRef(SkRefCnt* obj) {
    if (obj) {
        obj->ref();
    }
}

This form is not ignored by an optimizing compile, so we use it instead.




git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-07 15:30:46 +00:00
vandebo@chromium.org
1aef2ed83c [PDF] Start from an identity transform for drawDevice.
drawDevice, like drawSprite should start from the identity transform instead of applying the passed translation on top of the current transform.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@757 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-03 21:46:10 +00:00
reed@android.com
48cf8ac144 change forward decl of SkMatrix from struct (wrong) to class (correct)
fixes issue http://code.google.com/p/skia/issues/detail?id=139



git-svn-id: http://skia.googlecode.com/svn/trunk@755 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-03 15:51:56 +00:00
vandebo@chromium.org
c48b2b330f Cleanup SkPDFTypfaceInfo and make it more generic.
Renamed to SkAdvancedTypefaceMetrics.
Include Em size and return all metrics in unscaled font units.
Make retrieval of advances optional.
Reorder SkAdvancedTypefaceMetrics to be somewhat logical.
Change the types of fields in SkAdvancedTypefaceMetrics to their minimum required size.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@752 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-02 02:11:22 +00:00
vandebo@chromium.org
f7c157610f [PDF] Clean up ref counting.
Return ref'd objs where possible enabling removal of many SkRefPtr<> variables.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@750 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-01 22:19:44 +00:00
vandebo@chromium.org
1cfa2c4586 [PDF] Support image alpha channel plus a couple small fixes.
Fix bug in rendering paths with cubic segments.
Only compress data if the compressed size is smaller than the uncompressed size.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@747 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-31 19:35:43 +00:00
vandebo@chromium.org
befebb8a84 [PDF] Honor srcRect in drawBitmap.
Review URL: http://codereview.appspot.com/4083045

git-svn-id: http://skia.googlecode.com/svn/trunk@745 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-29 01:38:50 +00:00
reed@google.com
9d0d195ca4 update dox on bitmap configs
document testing build-flag for large bitmaps



git-svn-id: http://skia.googlecode.com/svn/trunk@744 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-28 22:19:22 +00:00
vandebo@chromium.org
8af0b36165 Fix windows build.
Review URL: http://codereview.appspot.com/3996048

git-svn-id: http://skia.googlecode.com/svn/trunk@739 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-26 21:59:00 +00:00
reed@google.com
dea520fc93 move into core for now, so we can build SkFontHost_FreeType.cpp
git-svn-id: http://skia.googlecode.com/svn/trunk@738 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-26 20:32:23 +00:00
reed@google.com
c93a17f2df fix mac build (don't need typedef struct foo foo)
git-svn-id: http://skia.googlecode.com/svn/trunk@733 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-26 04:37:53 +00:00
reed@google.com
3636ed558f embed a refdict inside SkDevice
udate unittests to test refdict's destructor



git-svn-id: http://skia.googlecode.com/svn/trunk@731 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 23:50:57 +00:00
reed@google.com
0e190d0e12 add refdict class, for holding a dictionary of reference-counted objects
-- experimental



git-svn-id: http://skia.googlecode.com/svn/trunk@730 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 23:36:05 +00:00
vandebo@chromium.org
02cc5aa736 Update SkPDFDevice::drawPath signature to match SkDevice.
Review URL: http://codereview.appspot.com/4068044

git-svn-id: http://skia.googlecode.com/svn/trunk@729 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 22:06:29 +00:00
vandebo@chromium.org
2a22e10ab2 Add Truetype and Type 1 font embedding support
Sorry this is such a large CL.  It was very exploratory for me to make this
work.

- Add an interface to SkFontHost to retrieve font information and provide NULL implementations on all platforms except Linux.
- Segment large Type 1 fonts into fonts with shared resources with 255 glyphs each.
- Convert the various Type 1 formats to the form PDF wants.
- Update font as we draw text instead of as part of the graphical state.
- Remove built-in font support, we can't really use it.

Other changes I can pull out to a separate CL if you like.

- Add SkTScopedPtr class.
- Fix double free of resources.
- Fix bug in resource unique-ifying code.
- Don't print anything for any empty clip path.
- Fix copy paste error - MiterLimit.
- Fix sign extension bug in SkPDFString
- Fix FlateTest rename that was missed on a previous commit.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@728 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 21:01:34 +00:00
reed@google.com
c921843d85 fixes for some warnings:
- #if of something that was not defined
- explicit constructor call for baseclass in copy-constructor of subclass

http://code.google.com/p/skia/issues/detail?id=112



git-svn-id: http://skia.googlecode.com/svn/trunk@727 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 19:05:12 +00:00
reed@google.com
37a3133d20 fix comments for U8CPU and S16CPU
http://code.google.com/p/skia/issues/detail?id=113



git-svn-id: http://skia.googlecode.com/svn/trunk@723 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-25 14:55:42 +00:00
bsalomon@google.com
5782d712ff Rev the GrContext interface. Context has draw* functions that take a new GrPaint object. Removed many of the lower-level GrGpu function call-throughs on context.
Remove unused/unsupported point size (we don't draw non-hairline points using GL points).
Change current* getter functions to get* for consistency.
Fix bounds when drawing inverse-filled paths.


git-svn-id: http://skia.googlecode.com/svn/trunk@718 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-21 21:03:59 +00:00
bsalomon@google.com
2e7b43d33c 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
2011-01-18 20:57:22 +00:00
reed@google.com
d3b13bd5af 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
2011-01-13 16:33:36 +00:00
reed@google.com
7b201d2254 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
2011-01-11 18:59:23 +00:00
reed@google.com
4b22602383 add getter/setter for device-factory on canvas
git-svn-id: http://skia.googlecode.com/svn/trunk@683 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-11 18:32:13 +00:00
reed@google.com
232a660169 remove obsolete, unsupported sound files
git-svn-id: http://skia.googlecode.com/svn/trunk@679 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-07 15:34:36 +00:00
reed@google.com
5a8a131d8a 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
2011-01-05 16:29:02 +00:00
reed@google.com
1fcd51e6b2 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
2011-01-05 15:50:27 +00:00
reed@google.com
72cf4927e5 fix build for scalar==fixed
git-svn-id: http://skia.googlecode.com/svn/trunk@671 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-01-04 19:58:20 +00:00
reed@android.com
4aaee0aecd 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
2011-01-04 01:29:52 +00:00
reed@android.com
ad789ee56f 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
2011-01-03 19:52:17 +00:00
reed@android.com
38669c12c5 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
2011-01-03 13:48:50 +00:00
reed@google.com
51df9e3fe3 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
2010-12-23 19:29:18 +00:00
reed@google.com
873cb1e23b 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
2010-12-23 15:00:45 +00:00
reed@google.com
c31ce1076c 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
2010-12-21 16:26:39 +00:00
reed@google.com
d642329293 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
2010-12-20 20:53:13 +00:00
reed@google.com
0770044da6 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
2010-12-20 19:46:07 +00:00
reed@android.com
f2b98d67dc merge with changes for GPU backend
git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-12-20 18:26:13 +00:00
senorblanco@chromium.org
29e5054dd0 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
2010-12-16 19:07:45 +00:00
senorblanco@chromium.org
c3856384e4 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
2010-12-13 15:27:20 +00:00
senorblanco@chromium.org
ec7a30cc86 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
2010-12-07 21:07:56 +00:00
senorblanco@chromium.org
038aff623d 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
2010-12-06 23:45:58 +00:00
vandebo@chromium.org
a09ef977b6 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
2010-12-01 22:17:20 +00:00
wjmaclean@chromium.org
86bff1f008 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
2010-11-16 20:22:41 +00:00
vandebo@chromium.org
28be72b63e 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
2010-11-11 21:37:00 +00:00
vandebo@chromium.org
8c1d88dcfb 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
2010-11-11 00:49:41 +00:00
vandebo@chromium.org
7e2ff7cf7d 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
2010-11-03 23:55:28 +00:00
vandebo@chromium.org
eb6c7596af 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
2010-10-26 19:54:45 +00:00
vandebo@chromium.org
a518086928 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
2010-10-26 19:48:49 +00:00
vandebo@chromium.org
35fc62b960 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
2010-10-26 19:47:30 +00:00
vandebo@chromium.org
ddbbd805b5 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
2010-10-26 19:45:06 +00:00
vandebo@chromium.org
99a45d3b5a 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
2010-10-26 19:44:10 +00:00
vandebo@chromium.org
9b49dc0db8 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
2010-10-20 22:23:29 +00:00
scarybeasts@gmail.com
17f694b038 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
2010-10-18 23:29:36 +00:00
vandebo@chromium.org
b70ae310bb 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
2010-10-15 18:58:19 +00:00
vandebo@chromium.org
8d84fac294 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
2010-10-13 22:13:05 +00:00
vandebo@chromium.org
d877fdbb6e 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
2010-10-12 23:08:13 +00:00
vandebo@chromium.org
f66025d59a 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
2010-10-01 23:26:55 +00:00
vandebo@chromium.org
8459d4e5e3 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
2010-09-24 22:25:30 +00:00
reed@android.com
ce4e53a234 add abstract wrapper for platform-specific bitmap backends
git-svn-id: http://skia.googlecode.com/svn/trunk@596 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-09-09 16:01:26 +00:00
agl@chromium.org
c9c9ebbc29 Make SKColorSetARGB() a macro when not building debug.
This allows GCC to avoid generating static initializers for code that
uses it.

Patch by: Dave Moore

http://codereview.appspot.com/1883043/show

git-svn-id: http://skia.googlecode.com/svn/trunk@592 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-07-28 17:10:30 +00:00
reed@android.com
097a351353 add SkRegion::setRects(), and its unit tests
git-svn-id: http://skia.googlecode.com/svn/trunk@588 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-07-13 18:35:14 +00:00
kbr@chromium.org
2e086190e5 Added optional "ambiguous" outgoing argument to XRay queries so that
calling code may choose different y-coordinates for better robustness.
Tested and verified manually inside O3D.

BUG=none
TEST=none

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


git-svn-id: http://skia.googlecode.com/svn/trunk@586 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-07-07 22:20:35 +00:00
reed@android.com
4040861465 oops, also update dox for saveLayerAlpha
git-svn-id: http://skia.googlecode.com/svn/trunk@585 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-07-02 17:24:23 +00:00
reed@android.com
ad164b2025 update dox for saveLayer()
git-svn-id: http://skia.googlecode.com/svn/trunk@584 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-07-02 17:20:51 +00:00
agl@chromium.org
a2c71cbd51 Add support for forcing autohinting.
http://codereview.appspot.com/1651044/show

git-svn-id: http://skia.googlecode.com/svn/trunk@580 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-06-17 20:49:17 +00:00
reed@android.com
f59799139b rename round, ceil, etc. to avoid some platform macros
git-svn-id: http://skia.googlecode.com/svn/trunk@577 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-06-15 00:57:50 +00:00
reed@android.com
e89d3ec443 Fix 64-bit Mac warnings/memory corruption
git-svn-id: http://skia.googlecode.com/svn/trunk@569 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-05-18 21:23:30 +00:00
reed@android.com
033e03cb19 export line counts
git-svn-id: http://skia.googlecode.com/svn/trunk@568 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-05-18 21:17:43 +00:00
reed@android.com
5ee64ad6b5 update to match latest skia apis
git-svn-id: http://skia.googlecode.com/svn/trunk@566 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-05-17 14:34:13 +00:00
agl@chromium.org
5f6a0762f1 Add a SkTypeface::CreateForChars() function.
This allows us to do font fallback for strange scripts.
Added empty stubs to the implementations on all platforms.

Patch-by: Evan Martin
Signed-off-by: Adam Langley

http://codereview.appspot.com/950041

git-svn-id: http://skia.googlecode.com/svn/trunk@557 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-20 22:06:40 +00:00
reed@android.com
756f6dd82d dox
git-svn-id: http://skia.googlecode.com/svn/trunk@556 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-16 20:56:00 +00:00
reed@android.com
b00cd7258c add SkRefPtr class (for testing at the moment)
git-svn-id: http://skia.googlecode.com/svn/trunk@555 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-16 20:35:47 +00:00
reed@android.com
337d42626b remove obsolete header
git-svn-id: http://skia.googlecode.com/svn/trunk@544 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-13 13:40:58 +00:00
reed@android.com
9aa8b32233 add SKIA_VERSION_[MAJOR, MINOR, PATCH] in header and SkGraphics API
git-svn-id: http://skia.googlecode.com/svn/trunk@542 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-13 13:22:54 +00:00
reed@android.com
2687ae05cb add more MakeFoo factories for SkRect
git-svn-id: http://skia.googlecode.com/svn/trunk@541 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-12 21:21:59 +00:00
reed@android.com
735b790150 fix dither-to-4444 to keep the alpha value >= colors
git-svn-id: http://skia.googlecode.com/svn/trunk@534 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-04-06 21:03:33 +00:00
reed@android.com
8381e007dc add inherit-from-root-transform flag (for fixed-positioning)
git-svn-id: http://skia.googlecode.com/svn/trunk@532 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-03-23 20:10:46 +00:00
reed@android.com
3f1f06a26b add optional pref-config table to codecs
git-svn-id: http://skia.googlecode.com/svn/trunk@519 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-03-03 21:04:12 +00:00
reed@android.com
8de2e6de5b add kNONE_LCDOrder for screens with no recognizable rgb order
git-svn-id: http://skia.googlecode.com/svn/trunk@518 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-03-02 19:56:53 +00:00
reed@android.com
d055c1fde2 convert matrix <--> matrix44
add glyphrec to bounder



git-svn-id: http://skia.googlecode.com/svn/trunk@516 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-03-01 14:54:05 +00:00
reed@android.com
745bfbd74d add localToGlobal and parents
git-svn-id: http://skia.googlecode.com/svn/trunk@511 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-24 17:16:35 +00:00
reed@android.com
233481ebd0 add static Make methods to return rects
git-svn-id: http://skia.googlecode.com/svn/trunk@508 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-24 01:49:13 +00:00
reed@android.com
da6fb3246a more layers extracted from webkit
git-svn-id: http://skia.googlecode.com/svn/trunk@503 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-19 21:41:30 +00:00
reed@android.com
81dc331e65 update layers
git-svn-id: http://skia.googlecode.com/svn/trunk@502 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-18 19:32:03 +00:00
reed@android.com
86d4008e89 add layers
git-svn-id: http://skia.googlecode.com/svn/trunk@501 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-12 17:17:10 +00:00
reed@android.com
dc3381fc81 update save/restore comments to mention that the drawFilter is also saved
add wrapper for harfbuzz font/fontclass



git-svn-id: http://skia.googlecode.com/svn/trunk@500 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-11 16:05:15 +00:00
reed@android.com
ed8dbf74a7 experimental draft, please ignore
git-svn-id: http://skia.googlecode.com/svn/trunk@499 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-11 13:56:04 +00:00
reed@android.com
c83d422b63 doh - fix build
git-svn-id: http://skia.googlecode.com/svn/trunk@498 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-11 11:17:00 +00:00
reed@android.com
60bc6d5cb0 add Make to SkTSize
git-svn-id: http://skia.googlecode.com/svn/trunk@497 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-11 11:09:39 +00:00
reed@android.com
eebf5cb6c0 add copysign for ints and floats
fix addArc to not wrap around if the sweepAngle is close to 360 but lost
precision when convert to radians (and then to unit vectors ala sin/cos)



git-svn-id: http://skia.googlecode.com/svn/trunk@495 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-09 18:30:59 +00:00
reed@android.com
d3aa4ff7a5 add countPoints() and getPoint()
git-svn-id: http://skia.googlecode.com/svn/trunk@494 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-09 16:38:45 +00:00
senorblanco@chromium.org
4526a847da This patch allows the use of the native FreeType emboldening
algorithm when "fake bold" text is used in SkPaint.

It's enabled by #defining SK_USE_FREETYPE_EMBOLDEN.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@490 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-05 23:08:20 +00:00
reed@android.com
ba09de4c4b respect edgetype in quickreject
git-svn-id: http://skia.googlecode.com/svn/trunk@489 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-05 20:46:05 +00:00
reed@android.com
945a139553 add SkXRay geometry routines
git-svn-id: http://skia.googlecode.com/svn/trunk@488 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-05 20:41:02 +00:00
reed@android.com
a5dcaf6fd8 add containsText() api
git-svn-id: http://skia.googlecode.com/svn/trunk@487 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-02-05 17:12:32 +00:00
reed@android.com
ac753098e8 add some utils to SkPoint
git-svn-id: http://skia.googlecode.com/svn/trunk@485 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-28 21:34:33 +00:00
reed@android.com
6f59815b3d refactor helper functions out of libjpeg wrapper
git-svn-id: http://skia.googlecode.com/svn/trunk@476 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-21 15:34:19 +00:00
reed@android.com
ec10d21eb9 remove obsolete SK_BUILD_FOR_BREW conditional
git-svn-id: http://skia.googlecode.com/svn/trunk@473 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-12 22:58:35 +00:00
reed@android.com
9d3a985aa3 add glyph->unichar query (inverse of a cmap)
git-svn-id: http://skia.googlecode.com/svn/trunk@472 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-08 14:07:42 +00:00
agl@chromium.org
13c8558e37 Fix r466 which was causing Chromium valgrind failures.
See the added comment for details.

TBR=reed (since it's a build fix)

git-svn-id: http://skia.googlecode.com/svn/trunk@469 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-04 23:56:43 +00:00
reed@android.com
474a12c497 Added a virtual to SkBounder, called by text, that passes
the glyph's ID as well as its bounds. Made the universal
doIRect() non-abstract so that a child class can override
either the general flavor or the text flavor.



git-svn-id: http://skia.googlecode.com/svn/trunk@468 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-04 19:35:33 +00:00
reed@android.com
69975b0fce chant __ARM_ARCH_4__ to __ARM_ARCH_4T__, to reflect known android targets
git-svn-id: http://skia.googlecode.com/svn/trunk@467 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-04 19:23:32 +00:00
agl@chromium.org
e95c91e6d9 Add flag to enable bitmap strikes.
http://codereview.appspot.com/183096

git-svn-id: http://skia.googlecode.com/svn/trunk@466 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-01-04 18:27:55 +00:00
reed@android.com
e191b16fda update windows port
git-svn-id: http://skia.googlecode.com/svn/trunk@461 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-18 21:33:39 +00:00
reed@android.com
63debae4c1 initial checkin for visualstudio build support
git-svn-id: http://skia.googlecode.com/svn/trunk@460 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-16 17:25:43 +00:00
reed@android.com
cb60844b34 add drawData() to canvas, to record data blobs
git-svn-id: http://skia.googlecode.com/svn/trunk@452 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-12-04 21:32:27 +00:00
reed@android.com
e522ca5d5f fix winding bug in lineclipper
expose path.dump() all the time
UP arrow now toggles a grid of clip rects in sample app



git-svn-id: http://skia.googlecode.com/svn/trunk@443 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-23 20:10:41 +00:00
reed@android.com
90209caa68 doh. make the new S16 and U16 checkers inline
git-svn-id: http://skia.googlecode.com/svn/trunk@442 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-21 19:58:04 +00:00
reed@android.com
d457775787 add checks for exceeding 16bits, and apply those for glyphs in getMetrics()
git-svn-id: http://skia.googlecode.com/svn/trunk@441 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-21 02:48:11 +00:00
senorblanco@chromium.org
9a62fa7052 Remove SK_USE_OLD_255_TO_256.
Review URL:  http://codereview.appspot.com/156057/show.



git-svn-id: http://skia.googlecode.com/svn/trunk@438 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-20 04:25:41 +00:00
reed@android.com
e28ff55d98 retool clipping in hairlines to catch huge coordinates
git-svn-id: http://skia.googlecode.com/svn/trunk@436 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-19 20:46:39 +00:00
reed@android.com
909994fbae new scanconversion technique
This technique geometrically clips all segments against the clip bounds,
ensuring that we never send a value to the edgelist that might overflow in
fixedpoint.

Current disabled in SkScan_Path.cpp by a #define. There are a few minor pixel
differences between this and the old technique, as found by the gm tool, so
at the moment this new code is off by default.



git-svn-id: http://skia.googlecode.com/svn/trunk@432 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-18 16:09:51 +00:00
reed@android.com
77f0ef726f add quadclipping utility, plus sample test
git-svn-id: http://skia.googlecode.com/svn/trunk@429 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-17 18:47:52 +00:00
senorblanco@chromium.org
4e753558fc More SSE2-ification; fix for gcc -msse2.
Review URL:  http://codereview.appspot.com/154163



git-svn-id: http://skia.googlecode.com/svn/trunk@428 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-16 21:09:00 +00:00
reed@android.com
70149060a7 add lineclipper, and test case
git-svn-id: http://skia.googlecode.com/svn/trunk@427 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-16 20:39:43 +00:00
reed@android.com
e72fee513a add onSendClickToChildren to views, so a view can capture all clicks.
speedup some of the unittests that were too slow
minor cleanup in SkScan_Path, in prep for larger changes



git-svn-id: http://skia.googlecode.com/svn/trunk@426 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-16 14:52:01 +00:00
reed@android.com
f0f4e9abba remove const modifiers on function return types (unneeded, and caused an error
on some gccs).



git-svn-id: http://skia.googlecode.com/svn/trunk@425 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-13 19:00:49 +00:00
reed@android.com
0db5a7fae5 update dox for SkAvoidXfermode (as best I could)
fix 565 and 4444 implementations



git-svn-id: http://skia.googlecode.com/svn/trunk@420 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-09 16:01:36 +00:00
senorblanco@chromium.org
9272761b22 SSE2 optimizations for 32bit blending blitters.
This CL implements SSE2 optimizations for 3 of the 32bit blending blitters.  It
uses CPUID to detect for SSE2 at runtime.  In order to accomodate runtime
detection, it changes the platform procs from static arrays to static
functions.

It also includes an implementation of SkTime for Win32.

http://codereview.appspot.com/144072



git-svn-id: http://skia.googlecode.com/svn/trunk@418 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-04 20:51:06 +00:00
reed@android.com
161b00bae2 add SkEvalCubicInterval
git-svn-id: http://skia.googlecode.com/svn/trunk@416 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-03 15:33:14 +00:00
reed@android.com
34245c7871 add OVerView slide to samplecode
change inline functions in SkColorPriv.h to static inline



git-svn-id: http://skia.googlecode.com/svn/trunk@415 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-03 04:00:48 +00:00
reed@android.com
3f2025fdb5 rename gamma to table, since it is more general than just gamma
git-svn-id: http://skia.googlecode.com/svn/trunk@412 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-10-29 17:37:56 +00:00
reed@android.com
3cfda413a2 add gamma maskfilter, especially nice when applied after a blur
git-svn-id: http://skia.googlecode.com/svn/trunk@411 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-10-29 15:19:10 +00:00
reed@android.com
a563162780 move boundarypatch into utils
git-svn-id: http://skia.googlecode.com/svn/trunk@410 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-10-28 14:27:20 +00:00
reed@android.com
2ee7c64015 update on boundary patches
git-svn-id: http://skia.googlecode.com/svn/trunk@409 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-10-28 14:25:34 +00:00
reed@android.com
0f0cfaecf2 check-point for reviving animator
git-svn-id: http://skia.googlecode.com/svn/trunk@380 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-10-13 13:33:16 +00:00
reed@android.com
bb9aea999c record dither setting so we can replay it when we (re)decode
git-svn-id: http://skia.googlecode.com/svn/trunk@368 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-24 17:21:05 +00:00
reed@android.com
c4cae85752 add BlitRow procs for 32->32, to allow for neon and other optimizations.
call these new procs in (nearly) all the places we had inlined loops before.
In once instance (blitter_argb32::blitAntiH) we get different results by a
  tiny bit. The new code is more accurate, and exactly inline with all of the
  other like-minded blits, so I think the change is good going forward.



git-svn-id: http://skia.googlecode.com/svn/trunk@366 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-23 15:06:10 +00:00
reed@android.com
9186103dfd don't put the class name in front of the method
git-svn-id: http://skia.googlecode.com/svn/trunk@365 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-23 00:43:53 +00:00
senorblanco@chromium.org
7ef071fc2f Two-point radial gradient implementation.
Review URL:  http://codereview.appspot.com/112058



git-svn-id: http://skia.googlecode.com/svn/trunk@361 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-22 17:25:29 +00:00
reed@android.com
ed881c2704 add neon opts for matrix procs
git-svn-id: http://skia.googlecode.com/svn/trunk@353 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-09-15 14:10:42 +00:00
reed@android.com
19a89f287f add boolean tests and IF/ELSE/END
git-svn-id: http://skia.googlecode.com/svn/trunk@344 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-30 03:24:51 +00:00
reed@android.com
3c9b2a4a0e expand SkShader's flag kConstInY to 16 and 32 variants, allowing a shader
(like gradients) to support predithering. If they do, then they would suppress
kConstInY16, since they no longer are const.

The blitters now check for each flag separately, so we don't have to give up
const-in-Y in the 32bit case, since in that mode we don't care about dithering.



git-svn-id: http://skia.googlecode.com/svn/trunk@339 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-27 19:28:37 +00:00
reed@android.com
c64599649b special case 1x1 bitmaps when drawn as a shader (treat as a solid color)
git-svn-id: http://skia.googlecode.com/svn/trunk@336 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-25 19:15:31 +00:00
reed@android.com
0da41dbf5b add detach() method
git-svn-id: http://skia.googlecode.com/svn/trunk@334 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-25 16:03:59 +00:00
reed@android.com
cafc9f9e80 fixes around isOpaque and dithering
- copyTo() now preserves isOpaqueness, and BitmapCopyTest tests it
- bitmap shader doesn't claim to have shadespan16 if dithering is on, since its
  sampler doesn't auto-dither (note that gradients do auto-dither in their
  16bit sampler)
- blitter setup just relies on the shader to report if its 16bit sampler can be
  called (allowing gradients to say yes regardless of dither, but bitmaps to say
  no if dithering is on)



git-svn-id: http://skia.googlecode.com/svn/trunk@331 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-22 03:44:57 +00:00
deanm@chromium.org
d5ed395048 Fix compliation on gcc-4.3 and ARMv5T
- smulbb is only on ARMv5TE and above (p316, ARM Architecture Reference Manual)
 - an empty clobber list causes a compiler error with my compiler, gcc-4.3.2

Patch by Joel Stanley <joel@jms.id.au>

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


git-svn-id: http://skia.googlecode.com/svn/trunk@329 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-21 17:17:35 +00:00
reed@android.com
6c5f6f25b4 add 'r' (rotate) 's' (scale) options to SampleApp to test those matrix ops on
all slides

add beforeChild/afterChild methods for parents to wack the canvas before/after
it draws. These are called after the std child-view translate and clip, unlike
beforeChildren/afterChildren



git-svn-id: http://skia.googlecode.com/svn/trunk@324 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-14 16:08:38 +00:00
agl@chromium.org
4484d23ab4 Remove assertion in getAddrLCD.
Because the underlying mask extends a pixel to the left and right (or
top and bottom on vertical LCDs), the requested pixel can actaully be
one pixel outside the bounds, thus this assertion is incorrect.

http://codereview.appspot.com/105077


git-svn-id: http://skia.googlecode.com/svn/trunk@312 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-11 17:21:21 +00:00
reed@android.com
29348cb061 add -forceFilter to bench tool
move some utils out of effects/



git-svn-id: http://skia.googlecode.com/svn/trunk@307 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-08-04 18:17:15 +00:00
reed@android.com
ac98154faa add GetFileName api to SkFontHost
git-svn-id: http://skia.googlecode.com/svn/trunk@299 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-31 16:17:01 +00:00
reed@android.com
e2ca20740b ws fixes
use enum in getHinting() function, rather than hard-coded constants



git-svn-id: http://skia.googlecode.com/svn/trunk@290 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-27 16:39:38 +00:00
reed@android.com
41f8d4807b remove const from function return-type signature (useless, and generates gcc
warnings)



git-svn-id: http://skia.googlecode.com/svn/trunk@286 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-23 16:00:37 +00:00
reed@android.com
36a4c2aa2d Add SkFontHost::FilterRect() which allows the font host to filter our request
before we turn it into a font-cache entry, for the cases where the scaler will
ignore and/or collapse certain feature requests (e.g. doesn't support all levels
of hinting)



git-svn-id: http://skia.googlecode.com/svn/trunk@283 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-22 19:52:11 +00:00
reed@android.com
f549369fcd rename SK_BUILD_SUBPIXEL to SK_SUPPORT_LCDTEXT to better match the name of the
feature (since we already have subpixel text support)

fix some debug-compile problems

update Makefile for lcd files



git-svn-id: http://skia.googlecode.com/svn/trunk@282 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-22 19:21:01 +00:00
agl@chromium.org
f03642675e Typo fix.
git-svn-id: http://skia.googlecode.com/svn/trunk@279 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-21 18:58:43 +00:00
agl@chromium.org
309485b7b5 Subpixel glyph rendering support.
This patch adds support for rendering subpixel glyphs (using
Freetype). In order to control this rendering see
SkPaint::setLCDRenderText in SkPaint.h.

To setup the LCD mode, see SkFontHost::SetSubpixelOrientation and
SkFontHost::SetSubpixelOrder in SkFontHost.h.

This patch also adds more fine grained control over hinting (again,
only for Freetype currently). One can now control the hinting with
SkPaint::setHinting.


git-svn-id: http://skia.googlecode.com/svn/trunk@275 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-21 17:41:32 +00:00
reed@android.com
83f7bc30af remove conditional build flag for mipmaps
remove obsolete SkBitmapShader.cpp file



git-svn-id: http://skia.googlecode.com/svn/trunk@271 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-17 02:42:41 +00:00
reed@android.com
1134426f6b respect preferred config when png is index-based
git-svn-id: http://skia.googlecode.com/svn/trunk@261 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-08 20:09:23 +00:00
reed@android.com
40443b2371 fix (aaaargh) white-space
git-svn-id: http://skia.googlecode.com/svn/trunk@260 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-08 15:11:19 +00:00
reed@android.com
187d559590 add dox for scalarcomparetype
use internal mutable version of drawPath when we've cons'd up a path on behalf
of a rect



git-svn-id: http://skia.googlecode.com/svn/trunk@258 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-07-08 14:03:56 +00:00