Commit Graph

249 Commits

Author SHA1 Message Date
twiz@google.com
5807116946 This CL implements the Ganesh path for the SkTable_ColorFilter color transformation.
A new texture stage dedicated to color transforms has been added, along with the new custom stage implementing the LUT.
Review URL: https://codereview.appspot.com/6351081

git-svn-id: http://skia.googlecode.com/svn/trunk@4663 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-18 21:41:50 +00:00
senorblanco@chromium.org
1e95d715d0 Clean up the use of AutoScratchTexture in the gaussian blur and morphology
filters.  Instead of passing in AutoScratchTextures for temporaries, we allocate
them inside the function and detach() after rendering.  Since the functions now
return a ref()'ed texture, we no longer ref() the result in filter_texture().

Also, the imageblur gm was passing a paint with an image filter both to
saveLayer()/restore(), and to every text draw call.  Back when only restore()
was applying filters, this was fine, but since we're now applying filters on all
draw calls, this means we're double-blurring in this GM.

I've reverted the Mac baselines for the imageblur GM to their previous versions;
hopefully this will be correct.



git-svn-id: http://skia.googlecode.com/svn/trunk@4659 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-18 19:52:53 +00:00
tomhudson@google.com
2f68e7684b Move texture domains onto a GrCustomStage, off of GrSamplerState.
This will require gyp changes to roll into Chrome.

http://codereview.appspot.com/6405050/



git-svn-id: http://skia.googlecode.com/svn/trunk@4641 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-17 18:43:21 +00:00
tomhudson@google.com
e742bf0ab1 Start removing calls to GrDrawState::setTexture() (and GrPaint::setTexture()?) when there's
a GrSingleTextureEffect involved holding the texture.

http://codereview.appspot.com/6353094/



git-svn-id: http://skia.googlecode.com/svn/trunk@4608 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 19:54:19 +00:00
robertphillips@google.com
40a1ae4df2 Added SkDevice onAttachToCanvas & onDetachFromCanvas methods
http://codereview.appspot.com/6348100/



git-svn-id: http://skia.googlecode.com/svn/trunk@4598 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 15:36:15 +00:00
tomhudson@google.com
d0c1a06cb9 Introduces new SingleTextureEffect base class for GrCustomStage objects.
This class tracks the texture that the object uses. A future commit will get rid of the
GrTexture pointer currenty stored in the GrDrawState, allowing us to have CustomStages
*without* textures.

Requires gyp change on next roll.

http://codereview.appspot.com/6306097/



git-svn-id: http://skia.googlecode.com/svn/trunk@4576 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 17:23:52 +00:00
robertphillips@google.com
56c79b1037 Added GrContext::AutoClipStack to encapsulate setting\resetting of clip stack
http://codereview.appspot.com/6343097/



git-svn-id: http://skia.googlecode.com/svn/trunk@4558 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 20:57:46 +00:00
robertphillips@google.com
fea85ac3e3 Minor refactoring to make GrAutoMatrix a nested sub-class of GrContext
http://codereview.appspot.com/6356092/



git-svn-id: http://skia.googlecode.com/svn/trunk@4549 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 18:53:23 +00:00
robertphillips@google.com
3e11c0bd92 Forced GrClip to always have conservative bounds
http://codereview.appspot.com/6353089/



git-svn-id: http://skia.googlecode.com/svn/trunk@4545 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 18:20:35 +00:00
senorblanco@chromium.org
894790d77c This patch implements the diffuse and specular lighting filters in Ganesh.
There are three light types for each:  distant, point and spot, whose code
generation lives in a GrGLLight class hierarchy.  This similar to the CPU
implementation, where each light type provides a function to compute the vector
from the surface plane to the light (surfaceToLight) and to compute the light
colour (emitLightColour).  Instead of templated member functions, as in the CPU
implementation, these are virtual functions to emit the light-specific GLSL
code.

All of the code for the GPU path lives in the same file as that for the CPU
path, SkLightingImageFilter.cpp.  In order to provide Ganesh a hook to access
it, SkImageFilter now has a asNewCustomStage() virtual, which allows an image
filter to return a GrCustomStage representing that filter.

Note that this patch does not handle the border conditions correctly (the
[top|bottom][Left|Right]Normal() functions in the CPU implementation).  That
will come in a future patch.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4535 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 16:01:22 +00:00
robertphillips@google.com
59f46b81f8 Fixed Windows compiler complaints
http://codereview.appspot.com/6392044



git-svn-id: http://skia.googlecode.com/svn/trunk@4511 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 17:30:58 +00:00
tomhudson@google.com
c377baf406 Add placement new macros to SkPostConfig, call SkNEW* from Ganesh.
TODO: unify with the placement new implementation in SkTemplatesPriv.h,
once various issues there are overcome. reed@ should be taking the lead
there.

http://codereview.appspot.com/6384043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4492 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 20:17:56 +00:00
tomhudson@google.com
2c026196e7 Fix misnamed function in explanatory comment.
http://codereview.appspot.com/6387043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4489 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 19:07:41 +00:00
tomhudson@google.com
1dcfa1fcbd Fix definition of isEqual() for two gradient effect custom stages.
Expand comments defining isEqual() to better distinguish equality from
equivalence, which is more significant in Ganesh shader cache management.

http://codereview.appspot.com/6379043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4484 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 18:21:28 +00:00
robertphillips@google.com
54823c227d Rolling back r4034 (Proposed plumbing to propagate save & restore)
http://codereview.appspot.com/6346066/



git-svn-id: http://skia.googlecode.com/svn/trunk@4456 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-03 19:12:29 +00:00
robertphillips@google.com
41efe04af9 Partially rolled forward the SkGrPixelRef changes
http://codereview.appspot.com/6354060/



git-svn-id: http://skia.googlecode.com/svn/trunk@4415 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-29 20:55:14 +00:00
tomhudson@google.com
375ff85e96 Un-trifurcate GrTextContext: get rid of Default and Batched subclasses,
folding their functionality back into the base class.

Requires gyp changes.

http://codereview.appspot.com/6357048/



git-svn-id: http://skia.googlecode.com/svn/trunk@4411 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-29 18:37:57 +00:00
robertphillips@google.com
ecf1f3299a Temporarily readding SkGrTexturePixelRef.h/.cpp until WebKit is transitioned to SkGrPixelRef
git-svn-id: http://skia.googlecode.com/svn/trunk@4401 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-28 21:59:38 +00:00
robertphillips@google.com
5088eb49fe Moved SkGrTexturePixelRef to SkGrPixelRef
http://codereview.appspot.com/6344054/



git-svn-id: http://skia.googlecode.com/svn/trunk@4397 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-28 20:59:13 +00:00
robertphillips@google.com
d881bc194d Collapsed SkGrTexturePixelRef and SkGrRenderTargetPixelRef into SkGrPixelRef using new GrSurface class
http://codereview.appspot.com/6359045/



git-svn-id: http://skia.googlecode.com/svn/trunk@4396 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-28 20:02:39 +00:00
bsalomon@google.com
ded4f4b163 Initial support for GL_NV_path_renering. Experimental, there are still some issues to resolve, set gyp variable skia_nv_path_rendering=1 or build flag GR_GL_USE_NV_PATH_RENDERING to enable.
http://codereview.appspot.com/6349049/



git-svn-id: http://skia.googlecode.com/svn/trunk@4390 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-28 18:48:06 +00:00
reed@google.com
fa35e3ddcc plumb SkInstCnt to all subclasses of GrRefCnt
git-svn-id: http://skia.googlecode.com/svn/trunk@4353 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-26 20:16:17 +00:00
tomhudson@google.com
f13f588046 Add GrPaint::*StageEnabled() and GrDrawState::stageEnabled() functions.
These wrap the question of "is this stage of the shader enabled?" so that
we can change the semantics - previously iff there was a texture, now
if there is a texture OR a GrCustomStage, soon (post-cl 6306097) iff there
is a GrCustomStage, which at that point will hold whatever texture is
necessary.

http://codereview.appspot.com/6306104/



git-svn-id: http://skia.googlecode.com/svn/trunk@4325 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-25 17:27:28 +00:00
bsalomon@google.com
07fc0d178e Revert r4287. Large numbers of textures created by random gradients can cause poor driver performance (at least on Mac)
BUG=670



git-svn-id: http://skia.googlecode.com/svn/trunk@4306 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 15:15:59 +00:00
robertphillips@google.com
15c0fea699 AutoScratchTexture can now release its texture and it will return to the texture cache when freed
http://codereview.appspot.com/6262043/



git-svn-id: http://skia.googlecode.com/svn/trunk@4301 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 12:41:43 +00:00
bsalomon@google.com
5e24129831 Move GrTemplates.h to src
Review URL: http://codereview.appspot.com/6333053/


git-svn-id: http://skia.googlecode.com/svn/trunk@4300 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 12:34:22 +00:00
robertphillips@google.com
9ec075366e Altered GrDrawState to always ref texture and render target
http://codereview.appspot.com/6251049/



git-svn-id: http://skia.googlecode.com/svn/trunk@4298 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 12:01:30 +00:00
robertphillips@google.com
7d501ab502 Add GrSurface parent class above GrTexture & GrRenderTarget
http://codereview.appspot.com/6297092/



git-svn-id: http://skia.googlecode.com/svn/trunk@4292 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-21 21:09:06 +00:00
robertphillips@google.com
15e9d3e66e Expanded distribution of instance counting
http://codereview.appspot.com/6300114/



git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-21 20:25:03 +00:00
robertphillips@google.com
c82a8b7aa4 Fixed two bugs in SW-only clip mask generation
http://codereview.appspot.com/6306086/



git-svn-id: http://skia.googlecode.com/svn/trunk@4290 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-21 20:15:48 +00:00
bsalomon@google.com
a320194e42 Make GrClipMaskManager configure the stencil and scissor on GrGpu
Review URL: http://codereview.appspot.com/6308096/



git-svn-id: http://skia.googlecode.com/svn/trunk@4288 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-21 19:58:20 +00:00
bsalomon@google.com
8f7e1dac5c Remove count budget from resource cache
Review URL: http://codereview.appspot.com/6312052/



git-svn-id: http://skia.googlecode.com/svn/trunk@4287 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-21 19:48:32 +00:00
bsalomon@google.com
4da34e36cb Add GrMemoryPool as a helper to override operators new/delete
Review URL: http://codereview.appspot.com/6306090/



git-svn-id: http://skia.googlecode.com/svn/trunk@4282 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-19 15:40:27 +00:00
tomhudson@google.com
50e4ce0552 Fix memory leaks.
http://codereview.appspot.com/6301098/



git-svn-id: http://skia.googlecode.com/svn/trunk@4281 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-19 15:27:50 +00:00
bsalomon@google.com
c0af317331 TLS GrContext count
Review URL: http://codereview.appspot.com/6298077/


git-svn-id: http://skia.googlecode.com/svn/trunk@4262 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-15 14:10:09 +00:00
robertphillips@google.com
f69a11b5c5 Use GrAARectRenderer in GPU AA clip mask generation
http://codereview.appspot.com/6300097/



git-svn-id: http://skia.googlecode.com/svn/trunk@4261 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-15 13:58:07 +00:00
robertphillips@google.com
4d73ac22a1 Version 2 of the Instance Counting system. This one simplifies the print out of information.
http://codereview.appspot.com/6296069/



git-svn-id: http://skia.googlecode.com/svn/trunk@4255 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 18:54:08 +00:00
bsalomon@google.com
f22f77faeb NV PR spec update to function param, use GrGL typedefs rather than fundamental types
Review URL: http://codereview.appspot.com/6307077/



git-svn-id: http://skia.googlecode.com/svn/trunk@4245 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 14:16:03 +00:00
robertphillips@google.com
e98ade4fde Added Texture desc to render target
http://codereview.appspot.com/6302068/



git-svn-id: http://skia.googlecode.com/svn/trunk@4243 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 12:53:07 +00:00
junov@chromium.org
957ebddce1 Adding API to GrTexture to reset cached texture parameter values
REVIEW=http://codereview.appspot.com/6305084/
BUG=http://code.google.com/p/chromium/issues/detail?id=130925



git-svn-id: http://skia.googlecode.com/svn/trunk@4234 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-12 13:58:36 +00:00
robertphillips@google.com
f6747b0b90 Split GrContext's AA Rect drawing methods into helper class
http://codereview.appspot.com/6300070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4233 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-12 00:32:28 +00:00
bsalomon@google.com
0efcc37952 Remove glBlendEquation and glColorPointer
Review URL: http://codereview.appspot.com/6300075/



git-svn-id: http://skia.googlecode.com/svn/trunk@4216 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-08 20:36:22 +00:00
robertphillips@google.com
75b3c9633c Move clientID into texture desc
http://codereview.appspot.com/6305044/



git-svn-id: http://skia.googlecode.com/svn/trunk@4201 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 12:08:45 +00:00
bsalomon@google.com
47059542e7 Search and replace change. Some Gr enum value names didn't have a "Gr" in their suffix.
Verbal LGTM from TomH




git-svn-id: http://skia.googlecode.com/svn/trunk@4198 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 20:51:20 +00:00
bsalomon@google.com
9923c2b29a Remove gpu stats tracking
Review URL: http://codereview.appspot.com/6300052/



git-svn-id: http://skia.googlecode.com/svn/trunk@4194 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 18:21:18 +00:00
bsalomon@google.com
fe11cb6486 Add GL function pointers for GL_NV_path_rendering
Review URL: http://codereview.appspot.com/6296046/



git-svn-id: http://skia.googlecode.com/svn/trunk@4192 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 15:17:54 +00:00
caryclark@google.com
cf6285b89b fix warnings on Mac in src/gpu and include/gpu
Fix these class of warnings:
- unused functions
- unused locals
- sign mismatch
- missing function prototypes
- missing newline at end of file
- 64 to 32 bit truncation

The changes prefer to link in dead code in the debug build
with 'if (false)' than to comment it out, but trivial cases
are commented out or sometimes deleted if it appears to be
a copy/paste error.
Review URL: https://codereview.appspot.com/6296044

git-svn-id: http://skia.googlecode.com/svn/trunk@4180 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 12:09:01 +00:00
robertphillips@google.com
977b9c8af3 Instance counting for SkRefCnt-derived objects (w/ CanvasTest fix)
http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4170 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 19:35:09 +00:00
robertphillips@google.com
25c199343d Reverting r4162
git-svn-id: http://skia.googlecode.com/svn/trunk@4164 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 16:24:32 +00:00
robertphillips@google.com
3227ab5f64 Added instance counting system for SkRefCnt-derived objects
http://codereview.appspot.com/6242070/



git-svn-id: http://skia.googlecode.com/svn/trunk@4162 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 15:40:54 +00:00