Commit Graph

1067 Commits

Author SHA1 Message Date
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
twiz@google.com
316338a4eb Correction of the non-portable use of dynamically allocated stack arrays in the
pdf shader code.

I briefly looked into making use of alloca, but that is also non-portable, and
deprecated in many environments.  Fell back to the SkTDArray class as a common
denominator.

This problem was introduce by the following CL:
http://codereview.appspot.com/4239061/



git-svn-id: http://skia.googlecode.com/svn/trunk@912 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-09 23:14:04 +00:00
reed@google.com
ee467ee79d Correct blitmask procs to recognize that we pass them an SkColor, and if they
want a SkPMColor, they need to call SkPreMultiplyColor()

Add Opaque and Black optimizations for blitmask_d32



git-svn-id: http://skia.googlecode.com/svn/trunk@911 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-09 13:23:57 +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
bsalomon@google.com
0b50b2ed46 If we compute an exact clip bounds prefer it over user passed bounds. Also clarify that bounds are conservative.
Review URL: http://codereview.appspot.com/4254063/
 


git-svn-id: http://skia.googlecode.com/svn/trunk@909 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 21:07:21 +00:00
bsalomon@google.com
eb3828e29d Remove deleted GrApi.h from gpu xcode project
git-svn-id: http://skia.googlecode.com/svn/trunk@908 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 20:21:18 +00:00
bsalomon@google.com
c919200c5a Add new pdf files to SampleApp xcode proj
git-svn-id: http://skia.googlecode.com/svn/trunk@907 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 20:19:54 +00:00
vandebo@chromium.org
5b073680ec Enable compiling the PDF backend by default in the makefile.
Use SKIA_PDF_SUPPORT=false to disable the PDF backend.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@906 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 18:33:31 +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
bsalomon@google.com
e8c701cbf5 Add filters to organize the VS project. Remove unused Gr files.
Review URL http://codereview.appspot.com/4243064/

git-svn-id: http://skia.googlecode.com/svn/trunk@904 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 18:19:05 +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
480ab7d5f1 add LF at end of file (dumb warning)
git-svn-id: http://skia.googlecode.com/svn/trunk@902 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 15:36:57 +00:00
reed@google.com
27a1e77858 add LF at end of file (ancient warning appeased)
git-svn-id: http://skia.googlecode.com/svn/trunk@901 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-08 15:34: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
a6d59f60aa fix warnings in VS 2010
drawPaint() doesn't need +1 to fill its bounds



git-svn-id: http://skia.googlecode.com/svn/trunk@899 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-07 21:29:21 +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
ed856100c8 Fix warning about uninit var subpathClosed
git-svn-id: http://skia.googlecode.com/svn/trunk@897 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-07 14:07:01 +00:00
vandebo@chromium.org
6bcf995a26 [PDF] Re add line accidentally removed in r892.
git-svn-id: http://skia.googlecode.com/svn/trunk@896 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-05 00:24:50 +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
f7c2c4544f Update windows port of of SkFontHost::GetAdvancedTypefaceMetrics to use calculateGlyphCount.
Review URL: http://codereview.appspot.com/4245060

git-svn-id: http://skia.googlecode.com/svn/trunk@890 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 19:39:56 +00:00
reed@google.com
eca7d34f1d fix () warning
git-svn-id: http://skia.googlecode.com/svn/trunk@889 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 19:33:13 +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
ctguil@chromium.org
ee8c3176e5 Add include\ports to include path for SampleApp project on windows.
Review URL: http://codereview.appspot.com/4241049

git-svn-id: http://skia.googlecode.com/svn/trunk@887 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 19:03:26 +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
reed@google.com
b0a984d5a6 delete unused file
git-svn-id: http://skia.googlecode.com/svn/trunk@885 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 14:05:03 +00:00
thakis@chromium.org
34f50edbd5 Delete another unused file.
git-svn-id: http://skia.googlecode.com/svn/trunk@884 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-04 07:47:04 +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
reed@google.com
759876a922 Our region blitter (invoked by region::setPath()) must have its scanlines
fed to it in scanline order (Y sorted, then X sorted).

If, however, we call rgn->setPath(path, otherRgn) with path in inverse mode,
then our scan converter code looks like this:

if (inverse)
    blit_top
scan_convert_path
if (inverse)
    blit_bottom

This is fine, unless otherRgn is complex. If it is, then blit_top will want to
efficiently "blit" otherRgn (the part above the path), and that means calling
blitRect in an iterator. That can result in chunks being passed to our blitter
(which is really accumulating scanlines) out of scanline order.

The change is to detect that otherRgn is complex, and if it is, just perform
the op in two steps:

1. setPath on a tmp region, limited by the bounds of otherRgn (simple)
2. intersect this tmp region with the currRgn.

This is effectively what we do for non-intersect ops. Intersect was different
only because we could (sometimes) avoid the step of create a tmp region.



git-svn-id: http://skia.googlecode.com/svn/trunk@879 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-03 14:32:51 +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
55b6b58d8f Fix inverse scanconversion -- be sure to keep our calls to SkBlitter in scanline
order (top to bottom), since the region blitter explicitly requires this.



git-svn-id: http://skia.googlecode.com/svn/trunk@876 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-02 15:58:18 +00:00
bsalomon@google.com
7239aab311 Sample that exercises complex clipping variations.
git-svn-id: http://skia.googlecode.com/svn/trunk@875 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-02 15:35:28 +00:00
reed@google.com
d6f5a81955 #ifdef protect win specific code (e.g. LOGFONT)
git-svn-id: http://skia.googlecode.com/svn/trunk@874 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-02 14:34:11 +00:00
reed@google.com
22a0221968 check that alloc() succeeded before calling the scaler's getImage()
git-svn-id: http://skia.googlecode.com/svn/trunk@873 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 21:33:48 +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
reed@google.com
b652427197 remove obsolete generateLineHeight
use canonical lfHeight so we can compare different LOGFONTs and map
equivalent fonts (except for height) to the same typeface. To do this I
add fSize to scale the output from GDI to get from the canonical int textSize
to the actual fractional size.



git-svn-id: http://skia.googlecode.com/svn/trunk@871 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 15:18:14 +00:00
reed@google.com
f9bb7a8e20 fix float->int warning
git-svn-id: http://skia.googlecode.com/svn/trunk@870 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 15:15:13 +00:00
reed@google.com
ea282db262 fix warnings from windows
git-svn-id: http://skia.googlecode.com/svn/trunk@869 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 15:14:44 +00:00
ctguil@chromium.org
88183bc684 Add uniscribe library to windows release configuration.
Review URL: http://codereview.appspot.com/4253045

git-svn-id: http://skia.googlecode.com/svn/trunk@866 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-03-01 02:41:03 +00:00
reed@google.com
fa06e52803 use sprintf to generate float->string for SkString routines, removing the
worry of first converting the scalar to a fixed.



git-svn-id: http://skia.googlecode.com/svn/trunk@865 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-28 21:29:58 +00:00
reed@google.com
958c39bd05 export SkCreateTypefaceFromLOGFONT
git-svn-id: http://skia.googlecode.com/svn/trunk@864 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-28 21:08:23 +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
ctguil@chromium.org
58b28fb749 Remove SkRefCnt.cpp from windows build.
Review URL: http://codereview.appspot.com/4239043

git-svn-id: http://skia.googlecode.com/svn/trunk@862 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-25 22:21:15 +00:00
reed@google.com
77f0c8ba4e remove SkRefCnt.cpp
git-svn-id: http://skia.googlecode.com/svn/trunk@861 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-02-25 22:08:55 +00:00