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
Chris Jones
ed22df8f64
Bug 556214, parts 1 and 1.1: Rename Monitor to ReentrantMonitor and fix existing Monitor users. r=roc
...
--HG--
rename : xpcom/glue/Monitor.h => xpcom/glue/ReentrantMonitor.h
2011-04-29 14:21:57 -05: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
Timothy B. Terriberry
bc00a0826c
Bug 634557 - ScaleYCbCrToRGB565: Reference C version, r=doublec
2011-04-14 17:32:15 -07: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
Tim Terribe
cb46080bbf
Bug 641014 - Fix broken NEO Y'CbCr to RGB conversion - r=doublec
...
--HG--
extra : rebase_source : fddd6ccddd083484c8b46a53747fb2058a46463e
2011-04-09 06:59:22 +12:00
Chris Double
8ea4897f3e
Bug 639415 - Disable prescaling of videos if they have an offset due to chromium scaling code not supporting offsets - r=kinetik
...
--HG--
extra : rebase_source : 0b72a504f731a81a498876a28dfae0d7c4aebded
2011-03-14 17:31:48 +13: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 Pearce
18e05ec12b
Bug 580531 - Push ImageContainer subclass' locks up into a superclass monitor. r=roc
2011-03-24 11:28:57 +13:00
Timothy B. Terriberry
e2473b98ea
Bug 641019 - "Crash on video with odd widths and 16-bit displays" [r=tterribe a=stuart]
2011-03-15 15:01:00 -07:00
Timothy B. Terriberry
85f70e68b5
Bug 640588 - "Bad rendering of webm and ogv with 16-bits displays on Linux" [r=jones.chris.g a-2.0=doug.turner]
...
--HG--
extra : rebase_source : 8407e60c8e2c24252c4ce36daddd793ebf4cbd9d
2011-03-11 16:07:00 -08: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
Makoto Kato
0b526ebb5a
Bug 637961 - Crash in [@ yv12_to_rgb565_neon]. r=jmuizelaar a=blocking-fennec
2011-03-08 09:59:44 +09: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
Chris Jones
a1980df2a0
Followup to bug 627273: Fix bad fix. r=Bas a=b
2011-01-26 13:25:48 -06:00
Chris Jones
831b2f174e
Bug 627273, part 4: Basic impl of ImageLayer tiling for basic layers. r=roc,vlad
2011-01-26 00:26:37 -06:00
Chris Jones
3ce1002c85
Bug 627273, part 3: Add gfxContext::FillWithOpacity. sr=vlad
2011-01-26 00:26:37 -06:00
Vladimir Vukicevic
ff24947788
b=606218; webgl Y axis upside down; followup to fix opacity; r=cjones
2011-01-25 14:18:41 -08:00
Bas Schouten
c63254dad3
Bug 627399: Do not forget mTarget if a transaction is incomplete. r=cjoned a=blocking-beta10
2011-01-21 06:46:38 +01:00
Vladimir Vukicevic
deb3b45692
b=606218; [webgl] content appears upside down when rendered via shadow layers; r=cjones, a=b
2011-01-19 00:55:31 -08:00
Robert O'Callahan
409b6ce451
Bug 621601. Part 1: Change empty transaction API to EndEmptyTransaction. r=bas,tnikkel,a=joe
2011-01-19 21:27:54 +13:00
Robert O'Callahan
0c3dfcf61b
Bug 594253. Update mValidRegion by OR-ing with the visible region after repainting, instead of OR-ing with the redrawn region, since this leads to simpler region structures. r=cjones,a=blocking
2011-01-16 23:38:45 +13:00
Robert O'Callahan
5af9b94883
Bug 615794. Part 2: Remove some usage of gfxUtils::ClipToRegionSnapped since snapping the visible region may not be correct. r=jrmuizel a=blocking
2011-01-04 23:35:57 +13:00
Chris Jones
83c918d385
Bug 617863: Remove a pseudo-assertion that doesn't hold for plugin ImageLayers. r=roc a=a
2011-01-04 10:40:54 -06:00
Robert O'Callahan
b61c7009d7
Bug 593604. Part 8.5: Add SupportsComponentAlphaChildren API. r=bas,a=blocking
2011-01-03 14:48:09 +13:00
Robert O'Callahan
65086f2d01
Bug 363861. Part 4: Track rectangles of opaque content in RGBA surfaces and use them to make PushGroupAndCopyBackground work in more situations. r=jrmuizel,sr=vlad,a=blocking
2011-01-03 14:48:08 +13:00
Robert O'Callahan
8d6719b9ce
Bug 363861. Part 3: Reenable Cleartype on surfaces where we know we'll only paint text over opaque pixels. r=jrmuizel,sr=vlad,a=blocking
2011-01-03 14:48:08 +13:00
Robert O'Callahan
a5295c29ab
Bug 363861. Part 1: Introduce gfxContext::PushGroupAndCopyBackground and use it to create opaque temporary surfaces for opacity groups which will be composited onto opaque surfaces. r=jrmuizel,sr=vlad,a=blocking
2011-01-03 14:48:08 +13:00
Oleg Romashin
dd6224b8dd
Bug 619490 - Don't use double-buffered shadowed layers with OGL compositing r=cjones a=b-f
2010-12-31 09:40:31 +02:00
Bas Schouten
a798fe031c
Bug 620665 - Part 7: Do not use mManager pointer for basic layers. r=roc a=blocking-beta9
2010-12-29 01:07:18 +00:00
Bas Schouten
e4cc92e61d
Bug 620665 - Part 1: Expose backend type on ImageContainers. r=roc a=blocking-beta9
2010-12-29 01:07:00 +00:00
Oleg Romashin
612ee54bef
Bug 615870 - Remote HTML5 video rendering pipeline should be shorter. part1. r=jones.chris.g a=b-f
...
* * *
Bug 615870. Part 3. mRoot check r=roc a=b-f
2010-12-27 08:12:17 +02:00
Robert O'Callahan
8ad0efd198
Bug 612840. Part 4: Invert the meaning of CONTENT_NO_TEXT_OVER_TRANSPARENT and rename it. r=vlad
2010-12-20 14:26:14 +13:00
Robert O'Callahan
262f54d7e8
Bug 612840. Part 2: Remove unnecessary opacity check. r=cjones
2010-12-20 14:26:14 +13:00
Robert O'Callahan
21068b15a9
Bug 612840. Part 1: Remove CONTENT_NO_TEXT flag since it's not really used. Also remove ShouldRetainTransparentSurface and related code; we'll assume that when text is over opaque pixels in an RGBA surface we can always paint it with subpixel AA --- and make it so in later patches. r=vlad
2010-12-20 14:26:13 +13:00
Oleg Romashin
5654c20b27
Bug 616469 - Video sync is slow because of slow yuv2rgb conversion. use 16bpp neon r=roc a=blocking-fennec
2010-12-10 21:32:52 +02:00
Oleg Romashin
5658661615
Bug 616469 - Video sync is slow because of slow yuv2rgb conversion. Offscreen API r=roc a=b-f
2010-12-15 10:17:27 -08:00
Michael Wu
a3ec8a5ae1
Backed out changeset 34bd12eb4a9c for causing bug 618916, a=stuart
2010-12-13 16:14:07 -08:00
Oleg Romashin
0da1b085e9
Bug 615870 - Remote HTML5 video rendering pipeline should be shorter r=roc a=b-f
2010-12-10 21:32:52 +02:00
Chris Jones
eb12aa0eda
Bug 612573: Make sure shadowable layers aren't destroyed in the middle of transactions. r=karlt a=2.0
2010-11-24 21:33:37 -06:00
Tatiana Meshkova
7d6080201c
bug 606730 - Remote thebesLayer BG color rendering always, even if it's not visible, Part 2: MarkLeafLayersCoveredByOpaque() for BasicLayers r=roc a=roc
2010-11-16 18:33:56 -05:00
Tatiana Meshkova
b3ef0bae09
bug 606730 - Remote thebesLayer BG color rendering always, even if it's not visible, Part 1: Add mLastChild to all ContainerLayer r=roc a=roc
2010-11-16 18:33:56 -05:00
Benjamin Stover
8be1e69fae
Bug 611799 Prefill newly created buffers with old content r=cjones a=blocking-fennec
2010-11-12 14:21:05 -08:00
Chris Double
6656705ec5
Bug 583138 - Update to latest Chromium YCbCr to RGB Conversion code - r=roc a=blocking2.0
2010-11-11 12:54:27 +13:00
Chris Double
c8b0bb098e
Bug 577843 - Scale videos at YCbCr conversion time - r=roc a=blocking2.0
...
--HG--
extra : rebase_source : ae011843fdd812dbeab7e5de0bf3b6029cccb3e5
2010-10-26 16:11:13 +13:00
Robert O'Callahan
41c36793bb
Bug 608636. Clip to transformed bounds of BasicContainerLayers when compositing their opacity groups back to the target surface. r=vlad,a=blocking
2010-11-12 14:43:42 +13:00
Robert O'Callahan
32e1df6ff8
Bug 579885. Part 2: Never use SOURCE to composite ThebesLayers into the target, just use OVER and assume cairo backends will optimize. r=vlad,a=blocking
2010-11-12 14:43:42 +13:00
Robert O'Callahan
2215e35a5d
Bug 579985. Part 3.2: Remove gfxASurface::AreSimilarSurfacesSensitiveToContentType because it's effectively always true now. r=jrmuizel,a=blocking
2010-11-12 14:43:40 +13:00
Chris Jones
703c658a1c
Bug 562424: Switch IPDL interfaces to infallible TArray. r=bent a=blocking
2010-11-08 20:49:00 -06:00
Robert O'Callahan
669ff953e8
Bug 602200. Share code to compute effective transforms and opacity, and snap effective transforms. r=bas,sr=vlad,a=blocker
2010-11-08 22:06:15 +13:00
Alon Zakai
0eea5c252a
Bug 609678 - Fix memory leak in SetBackingBuffer. r=cjones a=blocking-fennec
2010-11-05 09:37:40 -07:00
Chris Jones
cfafc2d132
Bug 603885, part 8: Add logging for buffer creation and readback operations. r=roc
2010-11-05 02:17:07 -05:00
Chris Jones
5d4e5b42c3
Bug 603885, part 7: Remove front-buffer pre-fill code that is now subsumed by swap-and-readback (which also gets the pre-fill off the critical path for repainting). r=roc
2010-11-05 02:17:07 -05:00
Chris Jones
288dc3e604
Bug 603885, part 6: Implement swap-and-readback. r=roc
2010-11-05 02:17:07 -05:00
Chris Jones
ec4a82019e
Bug 603885, part 2: Set up the framework for swap-and-readback. r=roc sr=vlad
2010-11-05 02:17:07 -05:00
Chris Jones
db22ab9350
Bug 603885, part 1: Move separate a method decl/def and reindent a long block. r=roc
2010-11-05 02:17:07 -05:00
Robert O'Callahan
260e34f8ed
Bug 593839. Part 2: Remove DESTINED_FOR_SCREEN flag now that it's no longer used. r=vlad a=blocking-betaN
2010-10-25 16:39:27 +02:00
Chris Jones
4b82fba0c3
Fix --disable-libxul bustage from bug 602431 and bug 602428. a=bustage
2010-10-13 18:36:44 -05:00
Chris Jones
57d3708463
Bug 602431, part 6: Honor shadow-layer attributes in the basic layers backend and take off the container-transform training wheels. r=roc
2010-10-13 17:55:45 -05:00