Commit Graph

148 Commits

Author SHA1 Message Date
senorblanco@chromium.org
027de5f922 GPU-based Gaussian blur.
This is a first stab at implementing a GPU-based
Gaussian blur in Ganesh.  The convolution shader is implemented as a new
filtering mode.  There are several known issues:

- no support for blur types other than "normal"
- FBO truncation problem at high zoom values
- uses bilinear for upsampling instead of Mitchell

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1830 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-08 18:03:33 +00:00
bsalomon@google.com
22c5deaf75 Fix div by zero in GPU degenerate radials (and add sample and gm baselines)
Review URL: http://codereview.appspot.com/4675062/


git-svn-id: http://skia.googlecode.com/svn/trunk@1817 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-07 14:38:03 +00:00
bsalomon@google.com
2c17fcdc45 Reduce gets of ext string and check validity of stencil format enums
Review URL: http://codereview.appspot.com/4678043/



git-svn-id: http://skia.googlecode.com/svn/trunk@1801 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-06 17:47:02 +00:00
bsalomon@google.com
25fd36c7ef Indexed drawing for paths with multiple contours
Review URL: http://codereview.appspot.com/4648071/



git-svn-id: http://skia.googlecode.com/svn/trunk@1800 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-06 17:41:08 +00:00
bsalomon@google.com
9ae4429f9d Don't send NULL buffer data hint in chrome
Review URL: http://codereview.appspot.com/4657067/



git-svn-id: http://skia.googlecode.com/svn/trunk@1778 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-01 15:21:59 +00:00
bsalomon@google.com
ee435122d7 Tesselate path once for tiled offscreen AA
Review URL: http://codereview.appspot.com/4661062/


git-svn-id: http://skia.googlecode.com/svn/trunk@1777 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-01 14:57:55 +00:00
bsalomon@google.com
3582bf9e3d Remove GrAuto*Malloc, replace with SkAuto*Malloc
Review URL: http://codereview.appspot.com/4629088



git-svn-id: http://skia.googlecode.com/svn/trunk@1774 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-30 21:32:31 +00:00
junov@google.com
4ee7ae5dcf Adding the notion of a volatile bitmap to SkBitmap.
Volatility is a hint that indicates that the contents of a bitmap 
are ephemeral. SkGpuDevice will not preserve volatile bitmaps
in its texture cache, and will use textures from a pool of
keyless (recyclable) textures to avoid the performance hit of
texture allocation and release.

A subsequent change is required in webkit in order to take advantage
of this optimization. putImageData, and other methods that create
temporary bitmaps will have to mark their bitmaps as volatile.
before rendering them through skia.



git-svn-id: http://skia.googlecode.com/svn/trunk@1769 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-30 17:30:49 +00:00
tomhudson@google.com
d22b6e4351 Remove global curve subdivision tolerance from GrPathUtils.
Put in framework for changing curve subdivision tolerance when rendering
offscreen AA tiles; however, comment out actual tolerance changes because
of possible quality issues with simple circles (q.v. Arcs slide of SampleApp).



git-svn-id: http://skia.googlecode.com/svn/trunk@1702 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-24 15:53:40 +00:00
caryclark@google.com
1eeaf0ba23 Add support for 8 bits/component glyphs, to
better match the fonts produced by CoreText on OS/X.

M    include/config/SkUserConfig.h
M    include/core/SkMask.h
M    include/core/SkScalerContext.h
M    src/core/SkBlitter_ARGB32.cpp
M    src/core/SkScalerContext.cpp
M    src/core/SkPaint.cpp
M    src/gpu/SkGrFontScaler.cpp
M    src/ports/SkFontHost_mac_coretext.cpp
M    src/ports/SkFontHost_mac.cpp
M    gpu/include/GrTypes.h
M    gpu/src/GrAtlas.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@1672 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-22 13:19:43 +00:00
bsalomon@google.com
6aab8e3df7 Initialize members to satisfy coverity.
Code review: http://codereview.appspot.com/4657043/



git-svn-id: http://skia.googlecode.com/svn/trunk@1665 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-21 20:32:12 +00:00
bsalomon@google.com
25fb21f5df Refactor GrDrawTarget vertex/index api
Review URL: http://codereview.appspot.com/4631056/



git-svn-id: http://skia.googlecode.com/svn/trunk@1662 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-21 18:17:25 +00:00
Scroggo
b092140c18 Remove redundant GrTouchGesture. Switch its only user to SkTouchGesture.
Review at http://codereview.appspot.com/4636045/


git-svn-id: http://skia.googlecode.com/svn/trunk@1636 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-17 15:17:07 +00:00
bsalomon@google.com
b5b3168a64 First pass at improving temporary tex/rt reuse
Review URL: http://codereview.appspot.com/4625043/




git-svn-id: http://skia.googlecode.com/svn/trunk@1616 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-16 18:05:35 +00:00
tomhudson@google.com
e67bd3fbc9 Rename GrGLBug to GrGLCapability.
Default all architectures to kProbe_GrGLCapability.
Use new facilities better from GrGpuGL.cpp



git-svn-id: http://skia.googlecode.com/svn/trunk@1613 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-16 14:08:04 +00:00
tomhudson@google.com
30e4bb6667 Avoid checking to see if a bool is less than zero.
Create a symbolic name for -1 when it means "don't know, probe at runtime".



git-svn-id: http://skia.googlecode.com/svn/trunk@1606 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-15 19:41:46 +00:00
senorblanco@chromium.org
129b8e3237 Implement edge AA for concave polys in the tesselated path renderer.
Review URL:  http://codereview.appspot.com/4571072/



git-svn-id: http://skia.googlecode.com/svn/trunk@1600 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-15 17:52:09 +00:00
bsalomon@google.com
7ac249bdc7 Enable SSAA on inverse filled paths
Review URL: http://codereview.appspot.com/4613044/



git-svn-id: http://skia.googlecode.com/svn/trunk@1584 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-14 18:46:24 +00:00
tomhudson@google.com
747bf293d4 FBO probing at Context startup is very expensive. This patch removes the
test of whether FBOs work at all, and adds parameters to the GrGLInterface
so that values can be passed into the Context creation routines instead
of executing the probes.

The GrGLInterface now defaults to run FBO tests on Android (since hardware
varies), but assumes success on desktop and software platforms.



git-svn-id: http://skia.googlecode.com/svn/trunk@1582 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-14 18:16:52 +00:00
bsalomon@google.com
3914958a49 Fix text-as-path with skshader on gpu
Review URL: http://codereview.appspot.com/4576057/



git-svn-id: http://skia.googlecode.com/svn/trunk@1575 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-13 21:55:32 +00:00
bsalomon@google.com
79d2dbed5a uint32_t -> int for texture extents
Review URL: http://codereview.appspot.com/4584053/



git-svn-id: http://skia.googlecode.com/svn/trunk@1574 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-13 19:28:02 +00:00
bsalomon@google.com
919583674b Consider hw render target limit for offscreen supersample and tile
Review URL: http://codereview.appspot.com/4575041/



git-svn-id: http://skia.googlecode.com/svn/trunk@1568 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-13 17:58:13 +00:00
junov@google.com
53a5584bb0 Adding functionality for purgin graphics resource handles
This will allow a fix to WebKit for preventing a crash when the graphics
context is destroyed before the GrContext

BUG=http://code.google.com/p/chromium/issues/detail?id=85309



git-svn-id: http://skia.googlecode.com/svn/trunk@1551 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-08 22:55:10 +00:00
reed@google.com
9b24d25c6b include SkTypes.h
git-svn-id: http://skia.googlecode.com/svn/trunk@1474 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-01 20:27:53 +00:00
bsalomon@google.com
d7beab4252 Fix copy/paste bug that checks same stencil field twice in isDisabled().
git-svn-id: http://skia.googlecode.com/svn/trunk@1442 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-27 16:42:30 +00:00
bungeman@google.com
8c5753ea2e Fixed point no longer crashes when GL enabled in gm tests.
http://codereview.appspot.com/4532073/


git-svn-id: http://skia.googlecode.com/svn/trunk@1394 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-20 19:11:50 +00:00
bsalomon@google.com
0251b2fe99 Tag GrPrintf with GR_API so that it is exposed to users of a Skia DLL
Review URL: http://codereview.appspot.com/4530059/


git-svn-id: http://skia.googlecode.com/svn/trunk@1392 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-20 18:50:54 +00:00
bsalomon@google.com
271cffc77b Add dual source blending support for proper blending with coverage.
Review URL: http://codereview.appspot.com/4535088/



git-svn-id: http://skia.googlecode.com/svn/trunk@1390 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-20 14:13:56 +00:00
bsalomon@google.com
2368f6f572 Remove createPlatformRenderTarget, undeprecate createRenderTargetFrom3DAPIState
Review URL: http://codereview.appspot.com/4552053/



git-svn-id: http://skia.googlecode.com/svn/trunk@1387 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-19 21:22:39 +00:00
senorblanco@chromium.org
64cc579efa The plain Makefile was using -Wall, but the gyp build wasn't. This CL turns on
-Wall -Wextra and -Wno-unused in common.gypi.  This revealed a lot of warnings
(and some actual bugs), all of which I fixed here.  This is pretty mindless
stuff for the most part (order of intialization, missing initializers, && within
||, etc), but will allow us to build cleanly with -Wall and -Wextra (and
-Werror, if we so choose).

I put defaults into switches that were missing cases.  I could put in the actual
missing enums instead if that's desired.  I could also assert on missing enums
instead of break, if that's desired.  I wasn't sure how to test the stuff in
"animator", so that should be looked at a bit more closely.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1386 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-19 19:58:58 +00:00
senorblanco@chromium.org
ef3913bcbf Batch up draws into triangle fans as large as possible when drawing convex
edge AA polys, so we minimize state changes and GL calls.  This requires
querying GL for the maximum number of fragment uniforms.  It also makes the
shader generator produce custom shaders for the number of relevant edges. 
This gives a ~5X speedup on the "Shapes" SampleApp.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1380 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-19 17:11:07 +00:00
bsalomon@google.com
00e17c5a1b Fix uninit of mask var
git-svn-id: http://skia.googlecode.com/svn/trunk@1369 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-18 19:02:42 +00:00
bsalomon@google.com
26c2d0a69e Use coverage stages for supersample AA resolve, edgeAA, and glyph masks. Expose a mask stage through GrPaint
Review URL: http://codereview.appspot.com/4548048/



git-svn-id: http://skia.googlecode.com/svn/trunk@1356 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-17 20:15:30 +00:00
junov@google.com
d31cbc4650 Removing remnants of GrGLEffect.
Bug: http://code.google.com/p/skia/issues/detail?id=264
Code review: http://codereview.appspot.com/4517073/



git-svn-id: http://skia.googlecode.com/svn/trunk@1350 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-17 17:01:17 +00:00
bsalomon@google.com
f2d91557b2 separate coverage stages from color stages.
Review URL: http://codereview.appspot.com/4538064/



git-svn-id: http://skia.googlecode.com/svn/trunk@1339 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-16 20:56:06 +00:00
junov@google.com
6acc9b3d2b Fixed color bleeding issue when drawing a sub region of a bitmap with filtering enabled.
Problem was resolved by adding the notion of a custom texture domain in generated shaders, when necessary.




git-svn-id: http://skia.googlecode.com/svn/trunk@1337 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-16 18:32:07 +00:00
reed@google.com
07f3ee10d3 use SkPath for GrPath, removing GrPathIter entirely
http://codereview.appspot.com/4515071/



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

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

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1314 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-12 15:49:15 +00:00
Scroggo
97c88c255c Add color filters to gpu path.
git-svn-id: http://skia.googlecode.com/svn/trunk@1297 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-11 14:05:25 +00:00
bsalomon@google.com
cc4dac3dac Make GrMatrix an alias of SkMatrix. Add new methods to SkMatrix.
Review URL: http://codereview.appspot.com/4538043/

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



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



git-svn-id: http://skia.googlecode.com/svn/trunk@1277 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 17:00:02 +00:00
reed@google.com
59f9961d00 remove #if 0 code
git-svn-id: http://skia.googlecode.com/svn/trunk@1276 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-09 13:37:36 +00:00
reed@google.com
7744c205f2 use SkPoint, creating an alias for GrPoint
http://codereview.appspot.com/4498041/



git-svn-id: http://skia.googlecode.com/svn/trunk@1268 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 19:26:26 +00:00
reed@google.com
2e550127e6 share macros and types with SkScalar, but keep aliases for now, to avoid editing
call sites.



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



git-svn-id: http://skia.googlecode.com/svn/trunk@1266 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-06 13:53:47 +00:00
bsalomon@google.com
2ba4abbb31 Switch to GrGpuGLShaders (instead of GrGpuGLShaders2).
git-svn-id: http://skia.googlecode.com/svn/trunk@1251 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-05 12:39:20 +00:00
bsalomon@google.com
6aef1fb4eb Add 4x4 downsample filter with 4 bilinear texture reads, use for ssaa.
Review URL: http://codereview.appspot.com/4483042/

git-svn-id: http://skia.googlecode.com/svn/trunk@1250 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-05 12:33:22 +00:00
senorblanco@chromium.org
99c2a8b362 SampleApp builds skia on Linux with BGRA pixel order, but Ganesh's SampleApp
assumes GL_RGBA texture format on all platforms except Windows (where it uses
GL_BGRA), so texture colours come out wrong.  As a temporary fix, do on Linux
what we do on Windows, and assume GL_BGRA.  (This should be made more general
later, and the assumption of matching formats between Skia and Ganesh removed.)

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



git-svn-id: http://skia.googlecode.com/svn/trunk@1247 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-04 20:12:01 +00:00
bsalomon@google.com
bf2a46941e Add all ES2 glUniform functions to GrGLInterface. Add interface validation for fixed pipe or shader pipe use.
Review URL: http://codereview.appspot.com/4435082/



git-svn-id: http://skia.googlecode.com/svn/trunk@1234 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-04 12:35:39 +00:00
bsalomon@google.com
05ef510389 Remove GrContext.h dependence on GrGpu.h
Review URL:  http://codereview.appspot.com/4433096/



git-svn-id: http://skia.googlecode.com/svn/trunk@1227 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-05-02 21:14:59 +00:00