Commit Graph

161 Commits

Author SHA1 Message Date
Vivien Nicolas
8b7b339cab backout bug 647560 - Pages on Fennec desktop does not not draw anymore 2011-05-20 17:45:00 +02:00
Robert O'Callahan
4ada86d2cb Bug 647560. Remove unused MayHaveOverlappingOrTransparentLayers. r=tnikkel 2011-05-18 23:24:52 +12:00
Robert O'Callahan
77cd75a0d2 Bug 647560. Cache temporary backbuffer surfaces. r=karlt 2011-05-18 23:24:52 +12:00
Robert O'Callahan
ebe9f8f585 Bug 647560. Create ApplyDoubleBuffering to recursively walk layer tree and implement double-buffering by setting mUseIntermediateSurface on ContainerLayers where necessary. r=tnikkel
The idea here is to do double-buffering just by setting mUseIntermediateSurface on ContainerLayers when needed. When
we need to double-buffer compositing of a layer tree, ApplyDoubleBuffering examines the root container layer. If the
child layers don't overlap and together cover the window, we don't need to double-buffer in that container, instead
we can double-buffer each child layer separately --- so we recursively call ApplyDoubleBuffering on the child layers.
When a container has children that overlap or that don't cover the container's visible rect (the latter case
probably can't happen in practice), we force it to have an intermediate surface.

This change fixes this bug because in normal browser windows the Web content layer double-buffers
2011-05-18 23:24:52 +12:00
Robert O'Callahan
887d235ef0 Bug 647560. Add support for compositing BasicLayers with OPERATOR_SOURCE. r=tnikkel
We'll need this for the improved backbuffer code in the next patch. When a layer tree's
leaf layers don't overlap and cover the window, the next patch will avoid double-buffering
by blitting those layers directly to the window. If the window has transparent parts
(e.g. with Aero Glass), we need to draw the layers for those transparent parts using
OPERATOR_SOURCE so that the alpha values in the window are reset.
2011-05-18 23:24:52 +12:00
Robert O'Callahan
99936bcd94 Bug 647560. Clean up MarkLeafLayersHidden and make it set the hidden state on container layers. r=tnikkel
Instead of doing tricks with the cliprect to prevent layer content from adding to aOpaqueRegion, pass an explicit flag to control that.
Mark a ContainerLayer hidden if all its children are hidden. This will need to be changed if/when we add layer properties
that result in a ContainerLayer drawing content even if it has no children.
2011-05-18 23:24:52 +12:00
Robert O'Callahan
80101e2ad0 Bug 629866. Part 2: Make MarkLeafLayersHidden actually hide layers that aren't in the dirty region. Don't consider hidden layers when deciding whether double-buffering is needed. r=cjones 2011-05-18 23:24:52 +12:00
Mounir Lamouri
eceb98864c Backout bug 629866 and bug 647560. 2011-05-17 11:44:17 +02:00
Robert O'Callahan
c5e00b2e8a Bug 647560. Remove unused MayHaveOverlappingOrTransparentLayers. r=tnikkel 2011-05-17 11:42:19 +12:00
Robert O'Callahan
e5e28d9ac2 Bug 647560. Cache temporary backbuffer surfaces. r=karlt 2011-05-17 11:42:11 +12:00
Robert O'Callahan
03d1ea7300 Bug 647560. Create ApplyDoubleBuffering to recursively walk layer tree and implement double-buffering by setting mUseIntermediateSurface on ContainerLayers where necessary. r=tnikkel
The idea here is to do double-buffering just by setting mUseIntermediateSurface on ContainerLayers when needed. When
we need to double-buffer compositing of a layer tree, ApplyDoubleBuffering examines the root container layer. If the
child layers don't overlap and together cover the window, we don't need to double-buffer in that container, instead
we can double-buffer each child layer separately --- so we recursively call ApplyDoubleBuffering on the child layers.
When a container has children that overlap or that don't cover the container's visible rect (the latter case
probably can't happen in practice), we force it to have an intermediate surface.

This change fixes this bug because in normal browser windows the Web content layer double-buffers
2011-05-17 11:42:05 +12:00
Robert O'Callahan
3e50014290 Bug 647560. Add support for compositing BasicLayers with OPERATOR_SOURCE. r=tnikkel
We'll need this for the improved backbuffer code in the next patch. When a layer tree's
leaf layers don't overlap and cover the window, the next patch will avoid double-buffering
by blitting those layers directly to the window. If the window has transparent parts
(e.g. with Aero Glass), we need to draw the layers for those transparent parts using
OPERATOR_SOURCE so that the alpha values in the window are reset.
2011-05-17 11:41:57 +12:00
Robert O'Callahan
d1fe5a6711 Bug 647560. Clean up MarkLeafLayersHidden and make it set the hidden state on container layers. r=tnikkel
Instead of doing tricks with the cliprect to prevent layer content from adding to aOpaqueRegion, pass an explicit flag to control that.
Mark a ContainerLayer hidden if all its children are hidden. This will need to be changed if/when we add layer properties
that result in a ContainerLayer drawing content even if it has no children.
2011-05-17 11:41:48 +12:00
Robert O'Callahan
0bca45c661 Bug 629866. Part 2: Make MarkLeafLayersHidden actually hide layers that aren't in the dirty region. Don't consider hidden layers when deciding whether double-buffering is needed. r=cjones 2011-05-17 11:41:39 +12:00
Matt Woodrow
1b63f405ae Bug 649417 - Check if BasicShadowableImageLayer has a current image before attempting to use it. r=cjones 2011-05-13 12:38:44 +12:00
Matt Woodrow
9d7dd64918 Bug 649417 - Part 2 - Add a YUV option to SharedImage and use it to share YUV data across processes. r=cjones,joe 2011-04-21 16:38:39 +12:00
Matt Woodrow
d3c4acee47 Bug 649417 - Part 1 - Create a SharedImage ipdl union and pass this to ShadowImageLayer::Swap . r=cjones 2011-04-21 11:21:56 +12:00
Oleg Romashin
0dbd90df0c Bug 610155 - Use SurfaceDescriptor for ImageLayer and CanvasLayer r=jones.chris.g 2011-04-20 14:45:57 -07:00
Daniel Holbert
96fc781c65 Back out 0736b014d4a5 (Bug 610155) for breaking canvas reftests on android 2011-04-21 14:52:22 -07:00
Oleg Romashin
8869e128b5 Bug 610155 - Use SurfaceDescriptor for ImageLayer and CanvasLayer r=jones.chris.g 2011-04-20 14:45:57 -07:00
Robert O'Callahan
c957ae039e Bug 641426. Part 5: Avoid operator== where possible to distinguish between 'equal edges' and 'equal areas' for rectangles. r=dbaron,sr=cjones 2011-04-19 15:07:23 +12:00
Robert O'Callahan
73b97e72c4 Bug 641426. Part 2: Remove a bunch of direct gfxRect::pos/size usage. r=joe 2011-04-19 15:07:21 +12:00
Zack Weinberg
f5a0843ac7 Bug 266236 part 9: Move nsBoundingMetrics to its own header and prune inclusions of nsRenderingContext.h.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
rename : gfx/src/nsThebesRenderingContext.h => gfx/src/nsRenderingContext.h
extra : rebase_source : 92660748436f03475e011184e2828f1db0ad63e0
2011-04-07 18:04:40 -07:00
Jan Küchler
5ef6bf26cf Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
extra : rebase_source : 34884bfcafd885feaf73300bc7246cd192062a48
2011-04-07 18:04:40 -07:00
Matheus Kerschbaum
93480c6366 Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg 2011-04-02 19:14:00 -07:00
Robert O'Callahan
1f51cb45b0 Bug 622072. Part 2: Add DidTransactionCallback to CanvasLayer. r=bas, sr=joe 2011-03-28 12:59:46 +13:00
Robert O'Callahan
e865324942 Bug 622072. Part 1: Remove rect parameter from Updated() and change implementations to defer updates to render time. r=bas
The rectangle parameter is currently not used --- all callers always pass the full canvas bounds. In the long term,
we probably won't want this parameter since all implementations should be doing accelerated drawing direct to buffers
with no intermediate copies, hence there will be no need to optimize the size of those copies. Plus, performance-sensitive
testcases tend to paint most or all of the canvas on every frame anyway.
2011-03-28 12:59:46 +13:00
Robert O'Callahan
4b58755a9e Bug 635373. ThebesLayerOGL needs to make sure we only sample valid pixels too. r=mattwoodrow 2011-04-01 10:33:46 +13:00
Robert O'Callahan
4bd5d3cedf Bug 641770. Ensure that the cliprect for a layer is interpreted in the coordinate system of its container in MarkLeafLayersCoveredByOpaque. r=bas 2011-04-01 10:33:46 +13:00
Ehsan Akhgari
931bd6ee19 Back out bug 622072 because it caused bug 645987 2011-03-29 14:31:53 -04:00
Robert O'Callahan
333b8d0f05 Bug 622072. Part 2: Add DidTransactionCallback to CanvasLayer. r=bas, sr=joe 2011-03-28 12:59:46 +13:00
Robert O'Callahan
6536947736 Bug 622072. Part 1: Remove rect parameter from Updated() and change implementations to defer updates to render time. r=bas
The rectangle parameter is currently not used --- all callers always pass the full canvas bounds. In the long term,
we probably won't want this parameter since all implementations should be doing accelerated drawing direct to buffers
with no intermediate copies, hence there will be no need to optimize the size of those copies. Plus, performance-sensitive
testcases tend to paint most or all of the canvas on every frame anyway.
2011-03-28 12:59:46 +13:00
Chris Pearce
38662eb161 Bug 580531 - Record first paint time and number of images painted in ImageContainer. r=roc 2011-03-24 11:28:57 +13:00
Chris Jones
ae4b79a620 Bug 640444: Self-copies end up changing all buffer content, so we need to read back the entire buffer after swapping. r=Bas a=b 2011-03-11 23:22:39 -06:00
Chris Jones
a75b587386 Followup to bug 635373: Shadow-layer buffers might be resampled in the chrome process. r=roc a=b 2011-03-09 11:28:26 -06:00
Chris Jones
c193ee330f Bug 635035, part 1: Separate the extended draw region and computed draw region so that shadow-layer readback gets the same quadrant as what was drawn. r=mattwoodrow 2011-03-09 11:27:37 -06:00
Robert O'Callahan
52981696d3 Bug 632423. Enable subpixel AA when we draw into the opaque subrect of a surface. r=tnikkel a=beltzner 2011-03-01 14:32:23 -06:00
Robert O'Callahan
5fb4e9f52c Bug 635373. Disable ThebesLayerBuffer rotation for non-identity resolutions, and add API to disable rotation explicitly. r=cjones a=beltzner 2011-03-01 14:30:16 -06:00
Chris Jones
184d25116b Bug 636093: Remove assertion that's no longer asserting what it was intended to. r=roc a=a 2011-02-24 15:59:26 -06:00
Robert O'Callahan
fa3219929b Bug 626602. Part 2: BasicLayers implementation of ReadbackLayer. r=cjones 2011-02-16 16:43:30 -06:00
Robert O'Callahan
2c94778839 Bug 626602. Part 1: Create ReadbackLayer API to enable collection of background pixels in a layer tree. r=bas,sr=cjones 2011-02-16 16:43:30 -06:00
Alex Pakhotin
1a6065f482 Bug 629100 - Fullscreen video stretches top and bottom rows of pixels to edge of screen [r=roc a=blocking-fennec] 2011-02-11 18:31:09 -08:00
Robert O'Callahan
af73763023 Bug 633040 - [regression] Text rendering looks scaled; r=cjones a=blocking-final/fennec 2011-02-10 20:01:54 -05:00
Robert O'Callahan
18f02b2962 Bug 625672. Part 1.5: Make layer managers silently do nothing when ending a transaction with no root layer. r=bas,a=blocker 2011-02-10 21:58:11 +13:00
Marco Bonardo
aaac8f2d4c Backout bug 626602, follow-ups and conflicting bug 631388 due to Win Tp4 permaorange causing a=CLOSED TREE 2011-02-09 15:48:12 +01:00
Robert O'Callahan
3a611eb9da Bug 626602. Part 2: BasicLayers implementation of ReadbackLayer. r=cjones 2011-02-08 18:44:13 -06:00
Robert O'Callahan
a02e22f69f Bug 626602. Part 1: Create ReadbackLayer API to enable collection of background pixels in a layer tree. r=bas,sr=cjones 2011-02-08 18:44:13 -06:00
Matt Woodrow
c0ff9d37e2 Bug 586683 - Part 1 - Add resolution handling to BasicLayers. r=roc a=blocking2.0 2011-02-09 09:35:54 +13:00
Alon Zakai
eb6d3ef5f2 Bug 610727 - Mark canvas layers inactive when relevant. r=roc a=blocking-fennec 2011-02-04 10:11:24 -08:00
Chris Jones
25f99d5ee7 Fix for the fix for the fix of bug 627273. r=roc a=b 2011-01-26 16:12:06 -06:00