| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move RenderPass::Id out of RenderPass and make it an isolated class
called RenderPassId, so RenderPassDrawQuad and AppendQuadsData will not
need to depend on entire RenderPass class.
BUG=344962
Review URL: https://codereview.chromium.org/404563005
Cr-Commit-Position: refs/heads/master@{#291403}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291403 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The contents_changed_since_last_frame and is_replica fields are not
used. Also removes RenderSurfaceImpl's ContentsChanged() as this method
was only used in determining the value of
contents_changed_since_last_frame.
Unfortunately now RenderPassDrawQuad is only the largest quad type on
64-bit builds. So, adds kLargestQuadType to cc/quads/ and moves the
largest-quad-type unit test there verifying that kLargestQuadType is
the largest now, instead of RenderPassDrawQuad.
R=enne
BUG=401481
NOTRY=true
Review URL: https://codereview.chromium.org/448133002
Cr-Commit-Position: refs/heads/master@{#289091}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289091 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change implements HiDPI scaling of filter params in CC. It also fixes content scaling of filter params (e.g.,
with -webkit-transform: scale(X)) as well as pinch-zoom scaling.
This code is mostly from http://crrev.com/191123002
"Implement hidpi and pinch-zoom scaling of filter params in cc"
and replaces http://crrev.com/317663005
"Scale the ALPHA_THRESHOLD filter's region based on the device scale factor"
because this fixes all filters rather than just the AlphaThresholdFilter.
BUG=376532, 281516, 281518, 349493
R=brettw@chromium.org, danakj@chromium.org, enne@chromium.org, jschuh@chromium.org
Review URL: https://codereview.chromium.org/394193003
Cr-Commit-Position: refs/heads/master@{#288436}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288436 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of each layer calling Create function on DrawQuad and pass
ownership around, create DrawQuad in RenderPass and only pass the raw
pointer to layers.
BUG=344962
TEST=cc_unittests
Review URL: https://codereview.chromium.org/369623002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281306 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since QuadSink does not provide more functionatility than passing
through to RenderPass and OcclusionTracker, it can be torn down and
removed. Same is for MockQuadCuller.
This CL follows 302603006, 306683002, 309493002.
BUG=344962
TEST=cc_unittests
Review URL: https://codereview.chromium.org/308193003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279050 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
Context IDs given to DrawQuads to identify when a rendering context
changes, and whether or not a DrawQuad is in a 3D sorting context.
Review URL: https://codereview.chromium.org/332873005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278288 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For unittest that only testing functionatility of Append DrawQuads and
SharedQuadState, only creates RenderPass for it.
This CL is first part of clean up QuadSink. Next step would be to use
test occlusion tracker for MockQuadSink.
BUG=
TEST=cc_unittests
Review URL: https://codereview.chromium.org/288273003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271011 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of creating SharedQuadState on layers and pass ownership around,
create SharedQuadState on RenderPass and only pass the raw pointer to
layers. Also let QuadCuller hold pointer to RenderPass instead of two
points to DrawQuadList and SharedQuadStateList that is owned by
RenderPass.
BUG=344962
TEST=cc_unittests
Review URL: https://codereview.chromium.org/265823015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268785 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QuadCuller unit tests are now testing the TiledLayerImpl instead
of the QuadCuller, and have been superceded by the
FooLayerImpl.Occlusion tests for each LayerImpl subclass.
R=enne@chromium.org
BUG=344962
Review URL: https://codereview.chromium.org/248223002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265653 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This touches a lot of files, so keep it mindless. Then we can add
another append that does not do culling, and move callsites over
one at a time.
R=enne
BUG=344962
Review URL: https://codereview.chromium.org/196533010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256754 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
The variable was unused, so drop it.
R=enne
BUG=344962
Review URL: https://codereview.chromium.org/194573009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256466 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the visible_rect is implicitly set to the quad's |rect| value
then later changed by the occlusion/culling code. Instead we want to
compute this value up front and set it on the quad when the quad is
created. So add it to the SetNew() method. Currently it should always
be set to the same value as the |rect|.
R=enne
BUG=344962
Review URL: https://codereview.chromium.org/185563008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255662 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid unneccessary copy of structures gfx::Rect & gfx::RectF
by passing them by const ref rather than value.
Any struct of size > 4 bytes should be passed by const ref.
Passing by ref for these structs is faster than passing
by value, especially when invoking function has multiple parameters.
Pass by value creates unneccessary overhead which should be avoided.
BUG=159273
Review URL: https://codereview.chromium.org/93663004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244224 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/23511004/
The spec for mix-blend-mode is http://dev.w3.org/fxtf/compositing-1/#mix-blend-mode
BUG=243223
Review URL: https://codereview.chromium.org/23455060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237295 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This defines a new type of cc::FilterOperation for reference filters, and
defines a method (RenderSurfaceFilters::BuildImageFilter) that builds an
SkImageFilter from a given cc::FilterOperations.
This also removes cc::Layer::SetFilter and cc::LayerImpl::SetFilter.
These were only used when we had a reference filter, but they are no
longer needed now that reference filters can be included in
FilterOperations.
BUG=181613
Review URL: https://codereview.chromium.org/21154002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225329 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Delegated frames may contain an offscreen filter. If they do, then the
LayerTreeHost needs to know about it so it can create an offscreen
context.
R=piman
BUG=287870
Review URL: https://chromiumcodereview.appspot.com/23451023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222169 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the implementation of WebFilterOperations into cc, and
(behind an #ifdef) defines a WebFilterOperationsImpl class that
implements the WebFilterOperations interface by wrapping a
cc::FilterOperations.
With this change, cc and ui/compositor no longer need to include
WebFilterOperations.h.
BUG=181613
Review URL: https://chromiumcodereview.appspot.com/16968002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208531 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When edge anti-aliasing is used, GL renderer forces blending to be used,
which causes hole punching logic to misbehave. Make force anti-aliasing
off option to SolidColorDrawQuad to avoid unwanted anti-aliasing.
TEST=cc_unittests ; content_unittests
BUG=236317
R=enne@chromium.org,danakj@chromium.org,jamesr@chromium.org
Review URL: https://chromiumcodereview.appspot.com/13842037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197931 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Axis-aligned quads with edges not aligned to pixel boundaries
are rendered incorrectly. These quads need anti-aliasing but
current code that determines if anti-aliasing is needed thinks
that no axis-aligned quads need it.
This fixes the problem by adding alignment to pixel boundaries
as an additional requirement to avoid anti-aliasing.
BUG=169374
TEST=GLRendererPixelTest.AxisAligned,GLRendererShaderTest.DrawSolidColorShader
Review URL: https://chromiumcodereview.appspot.com/12538005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196534 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[Reason for revert: AxisAligned unit test is failing on some of the Mac bots.]
> cc: Fix anti-aliasing of axis-aligned quads.
>
> Axis-aligned quads with edges not aligned to pixel boundaries
> are rendered incorrectly. These quads need anti-aliasing but
> current code that determines if anti-aliasing is needed thinks
> that no axis-aligned quads need it.
>
> This fixes the problem by adding alignment to pixel boundaries
> as an additional requirement to avoid anti-aliasing.
>
> BUG=169374
> TEST=GLRendererPixelTest.AxisAligned,GLRendererShaderTest.DrawSolidColorShad
>
> Review URL: https://chromiumcodereview.appspot.com/12538005
TBR=reveman@chromium.org
Review URL: https://codereview.chromium.org/14465006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196427 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Axis-aligned quads with edges not aligned to pixel boundaries
are rendered incorrectly. These quads need anti-aliasing but
current code that determines if anti-aliasing is needed thinks
that no axis-aligned quads need it.
This fixes the problem by adding alignment to pixel boundaries
as an additional requirement to avoid anti-aliasing.
BUG=169374
TEST=GLRendererPixelTest.AxisAligned,GLRendererShaderTest.DrawSolidColorShad
Review URL: https://chromiumcodereview.appspot.com/12538005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196423 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pull the color transformation matrix from the SkImageFilter if possible
and apply with a shader. Handles all permutations of shaders.
BUG=168719
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=190786
Review URL: https://chromiumcodereview.appspot.com/12803003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191067 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Optimize SkColorFilters when drawing RenderPassQuads
>
> Pull the color transformation matrix from the SkImageFilter if possible
> and apply with a shader. Handles all permutations of shaders.
>
> BUG=168719
>
>
> Review URL: https://chromiumcodereview.appspot.com/12803003
TBR=clholgat@chromium.org
Review URL: https://codereview.chromium.org/13101002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190791 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pull the color transformation matrix from the SkImageFilter if possible
and apply with a shader. Handles all permutations of shaders.
BUG=168719
Review URL: https://chromiumcodereview.appspot.com/12803003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190786 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes lint errors in everything except for the few stragglers (occlusion unit test, etc) that haven't been chromified.
BUG=144577
Review URL: https://chromiumcodereview.appspot.com/12965007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190767 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Style-only change.
Many already-chromified files missed a variable or function name
here and there. This grabs (hopefully) all of them.
For the record, I found these with:
git gs '[^a-zA-Z0-9_>\."][a-jl-z]\+[A-Z][A-Za-z0-9_]*\($\|[ !=;,\.^&*)"]\)'
R=enne
BUG=
Review URL: https://chromiumcodereview.appspot.com/12676029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190326 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
NOTRY=true
R=danakj@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12549028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189622 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, piman@chromium.org, jschuh@chromium.org, joth@chromium.org
Review URL: https://codereview.chromium.org/12916002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188703 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, jschuh@chromium.org
Review URL: https://codereview.chromium.org/12913005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188693 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
R=jamesr@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12911002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188662 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Style-only change. Bring the Layer and LayerImpl classes
into the Chromium style.
R=enne,piman,jamesr
TBR=joth
Review URL: https://chromiumcodereview.appspot.com/12774006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187555 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed edge antialiasing flags in TileDrawQuad to edge flags and moved to SharedQuadState.
The quad cannot tell anymore if it needs antialiasing or not. The renderer will make that decision.
Moved blending decision from GLRenderer::drawQuad to GLRenderer::draw*Quad functions.
BUG=169163
Review URL: https://chromiumcodereview.appspot.com/12328098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185934 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=170305
Review URL: https://chromiumcodereview.appspot.com/12036091
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179498 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The occlusion tracker has been using the drawableContentRect() which is not
useful compared to the clipRect() unless queries go outside the bounds of
the layer (which they would not). Also, the tests would override and fake
out the layer drawableContentRect() instead of just making a clipRect()
with an appropriate tree hierarchy.
The unit tests are now more real, and set up clipping in legitimite ways,
and drawableContentRect() is no longer used.
This removes most of the usage of the drawableContentRect() outside of tests,
making it easier to remove it entirely in the future if we like.
Tested by all the occlusion tracker unit tests in cc_unittests.
TBR=cdn@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11871008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177974 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The method sends the render passes it is given to the parent compositor via
the output surface. It should include a valid frame metadata with it.
Tests:
DelegatingRendererTestDraw.runSingleThread
DelegatingRendererTestDraw.runMultiThread
DelegatingRendererTestResources.runSingleThread
DelegatingRendererTestResources.runMultiThread
R=piman
BUG=123444
Review URL: https://codereview.chromium.org/11777025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177073 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector and deque.
These classes used methods to match the webcore classes and ease
migration. Now they are at odds with the STL versions of these containers.
Rename the methods, and change arguments from indexes to iterators, to
match the STL containers.
isEmpty() => empty()
last() => back()
first() => front()
Peek() => at()
append() => push_back()
insert(index, value) => insert(iterator, value)
remove(index) => erase(iterator) and erase(iterator, iterator)
take(index) => take(iterator)
takeFront() => take_front()
takeBack() => take_back()
Review URL: https://chromiumcodereview.appspot.com/11418108
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175722 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> cc: Implement DelegatingRender::drawFrame() method.
>
> The method sends the render passes it is given to the parent compositor via
> the output surface. It should include a valid frame metadata with it.
>
> Tests:
> DelegatingRendererTestDraw.runSingleThread
> DelegatingRendererTestDraw.runMultiThread
> DelegatingRendererTestResources.runSingleThread
> DelegatingRendererTestResources.runMultiThread
>
> R=piman
> BUG=123444
>
> Review URL: https://chromiumcodereview.appspot.com/11777025
TBR=danakj@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175694 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The method sends the render passes it is given to the parent compositor via
the output surface. It should include a valid frame metadata with it.
Tests:
DelegatingRendererTestDraw.runSingleThread
DelegatingRendererTestDraw.runMultiThread
DelegatingRendererTestResources.runSingleThread
DelegatingRendererTestResources.runMultiThread
R=piman
BUG=123444
Review URL: https://chromiumcodereview.appspot.com/11777025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175690 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=123444
Review URL: https://chromiumcodereview.appspot.com/11618026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174466 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All cc test harnesses now live in the cc namespace. Any cc unittest or
pixeltest itself is in an anonymous namespace under cc. This patch removes all
instances of the WebKitTest namespace from cc.
R=jamesr@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/11474050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173391 0039d316-1c4b-4281-b951-d872f2087c98
|
|
View system.
This patch introduces a new feature to the compositor:
- A setting to enable cleaning the framebuffer, disabled by default. This prevents destroying data below us when rendering non-rectangular views (e.g. during a rotation).
A second required feature will be added by a later patch:
- A device scissor rect that intersects any scissor calculation. Used to ensure we never render outside where the Android View System tells us.
There are also some issues with the Android View side regarding the restoration of the GL state. This patch introduces a temporary workaround by reading and manually restoring the state changed by the compositor. This will go out as soon as the problem is fixed in the Android side.
BUG=161409,154180
Review URL: https://chromiumcodereview.appspot.com/11316310
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173324 0039d316-1c4b-4281-b951-d872f2087c98
|