Commit Graph

878 Commits

Author SHA1 Message Date
Chris Lord
c785511059 Bug 611315 - Fix handling of rotated ShadowBufferOGL. r=mattwoodrow
Although we currently have buffer rotation disabled for shadow buffers when
using the GL layer manager, if you re-enable it, it will be broken. This is
because we don't take into account the rotation when handling uploads.

This fixes that handling by offsetting the updated region by the rotation and
adds an assertion if the updated region crosses a rotation boundary (which
should never happen).
2011-08-19 09:36:18 +01:00
Chris Lord
0aedc7dacb Bug 611315 - Fix drawing of tiled GL Thebes layers with rotation. r=mattwoodrow
Drawing of rotated buffers relies on texture-wrapping, but in the case of
tiled textures, this would cause each individual tile to wrap instead of
wrapping the compound texture.

Add a special case for tiled textures that manually does the wrapping.
2011-08-19 09:36:08 +01:00
Chris Lord
75809b99c5 Bug 674494 - Uninitialised variable in ThebesLayerBuffer::BeginPaint. r=mattwoodrow 2011-08-18 09:52:48 +12:00
Marco Bonardo
a1c8c3f3a3 Backout changeset 3db901280232, (Bug 666385) to investigate Mac Tdhtml regression. 2011-08-17 22:55:14 +02:00
Benoit Girard
c98196049e Bug 666385 - Fix tiled scrolling on Android; r=roc
--HG--
extra : rebase_source : 8a4660808501e8dfc9c58f7769b6c05db6519e83
2011-08-10 08:47:23 -07:00
Robert O'Callahan
5d0f7c6076 Bug 657401. Ensure that when our double-buffering logic expects layers to clip to their visible regions, we actually do. r=tnikkel
--HG--
extra : rebase_source : 16ea17d5a6a0177a26a3d38ae587290e194234b1
2011-08-12 10:44:50 +12:00
Robert O'Callahan
8453430402 Bug 677095. Compute reasonable destination alpha values with component-alpha blending in D3D10. r=bas
--HG--
extra : rebase_source : b0264c52df9a37334d9524e1fdd1f15e4e4df866
2011-08-12 10:40:39 +12:00
Chris Jones
02362cc047 Bug 648484, part E: Hook d3d9 shadow layers up to new system. r=BenWa 2011-07-06 13:29:27 -04:00
Chris Jones
9003c2c033 Bug 648484, part C: Forward a shadow-layer transaction after rendering in the D3D10 backend, if remote. r=joedrew
* * *
Unrot bug 648484. r=Bas. To be folded.
2011-08-09 12:38:26 -07:00
Chris Jones
cf90535cbd Bug 648484, part B: Implement shadowable layer goop for D3D10, just enough to allow sending a window buffer to the compositor. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
df81c875f3 Bug 648484, part A: Allow D3D10 layers to render directly to a share-able texture. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
cfdff93df0 Bug 648484, part 9: Make LayerManagerD3D10 a shadow-layer manager and forwarder. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
d5c4f07060 Bug 648484, part 8: Implement a very basic shadow thebes layer for D3D10, only enough to support the upcoming WindowLayer. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
e119678c6c Bug 648484, part 7: Implement a very basic shadow container layer for D3D10, only enough to support the upcoming WindowLayer. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
c55298d9ae Bug 648484, part 6: Add code to share D3D10 textures across processes. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
12b80c293a Bug 648484, part 4: Log layers transactions in the d3d10 backend. r=Bas 2011-08-09 12:38:26 -07:00
Chris Jones
a3317162ef Bug 648484, parts 3, 3.1, and 3.2: Allow passing a "backend hint" to GetLayerManager() to request a non-default layer manager backend. Deal with failure to hook up shadow layers. sr=roc 2011-08-09 12:38:26 -07:00
Chris Jones
8786c55e3f Bug 648484, part 2: Add various helpers, refactor ContainerLayer::SetSpecificAttributes. r=roc 2011-08-09 12:38:26 -07:00
Chris Jones
fe42f83e74 Bug 648484, part 1: Fix some warning spam. r=roc 2011-08-09 12:38:26 -07:00
Florian Haenel
c543f5d68b Bug 669602 - Fennec/OGL: Paint Artifacts on chrome pages background after scrolling. r=joe,roc 2011-08-09 11:38:05 -04:00
Matt Woodrow
343093175d Bug 675073 - Release OpenGL textures with the global context if the creating context has been destroyed. r=joe 2011-08-05 13:13:25 +12:00
Matt Woodrow
6b3e01d5ec Bug 655017 - Let gfxXlibSurface track GLXPixmaps and use this for CanvasLayerOGL. r=karlt, roc 2011-08-05 13:13:25 +12:00
Matt Woodrow
cd05bbfd33 Bug 505115 - Part 7 - Layers support for 3d transforms. r=roc 2011-08-03 15:04:20 +12:00
Marco Bonardo
b818d65b85 Merge mozilla-central and mozilla-inbound 2011-07-29 13:46:15 +02:00
Benoit Jacob
2bc65bec27 Bug 674042 - WebGL: crash in getUniformLocation with too long uniform identifiers - r=jrmuizel
This limits the length of uniform and attrib identifiers to 4095 characters, to steer clear GL implementation bugs with too long identifiers. The 4095 is totally arbitrary, all we know is that crashes happen after 2^22 chars.
2011-07-28 17:12:31 -04:00
Jeffrey Gilbert
a50f06d79d Bug 674731 - WebGL/ANGLE interop with D3D layers requests incorrect extension - r=bjacob 2011-07-28 16:37:58 -04:00
Scott Ruff
a1835137c8 Bug 649525 - WebGL layer compositing through the BasicCanvasLayer is very slow (desktop version). r=jmuizelaar 2011-07-27 13:00:17 +02:00
Matthew Gregan
db3428cfec Bug 672755 - Add memory reporters for decoded video and audio queues. r=cpearce r=joe 2011-07-22 15:17:23 +12:00
Matt Woodrow
ba6834dec3 Bug 670573 - Add glTex(Sub)Image2D wrappers that correctly handle stride and alignment. r=derf 2011-07-25 19:32:56 +12:00
Matt Woodrow
071b50617b Backed out changeset 39fef2383893 2011-07-25 13:18:23 +12:00
Matt Woodrow
0b746c54ed Bug 670573 - Add glTex(Sub)Image2D wrappers that correctly handle stride and alignment. r=derf 2011-07-25 12:50:00 +12:00
arno renevier
5388ac92cf Bug 669299 - Remove unneeded nsPrintfCString.h includes. r=bsmedberg 2011-07-21 04:37:31 +02:00
Oleg Romashin
7d3e811adb Bug 671986 - ImageLayerOGL does not apply offset/transform for layer r=jrmuizel 2011-07-17 12:07:41 +02:00
Chris Jones
d8c3256765 Merge backout 2011-07-15 11:36:22 -07:00
Chris Jones
24f027292c Back out bug 648484 2011-07-15 11:35:55 -07:00
Chris Jones
d827503aa5 Bug 648484, part E: Hook d3d9 shadow layers up to new system. r=BenWa 2011-07-06 13:29:27 -04:00
Chris Jones
935a393f3a Bug 648484, part C: Forward a shadow-layer transaction after rendering in the D3D10 backend, if remote. r=joedrew
* * *
Unrot bug 648484. r=Bas. To be folded.
2011-07-13 22:43:43 -07:00
Chris Jones
bdfb401e6b Bug 648484, part B: Implement shadowable layer goop for D3D10, just enough to allow sending a window buffer to the compositor. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
cb2ee3417a Bug 648484, part A: Allow D3D10 layers to render directly to a share-able texture. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
8325aff847 Bug 648484, part 9: Make LayerManagerD3D10 a shadow-layer manager and forwarder. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
0a936edcc7 Bug 648484, part 8: Implement a very basic shadow thebes layer for D3D10, only enough to support the upcoming WindowLayer. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
9037e7684c Bug 648484, part 7: Implement a very basic shadow container layer for D3D10, only enough to support the upcoming WindowLayer. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
e77d94694c Bug 648484, part 6: Add code to share D3D10 textures across processes. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
46987600ab Bug 648484, part 4: Log layers transactions in the d3d10 backend. r=Bas 2011-07-13 22:43:43 -07:00
Chris Jones
289ccdf1c6 Bug 648484, part 3 and part 3.1: Allow passing a "backend hint" to GetLayerManager() to request a non-default layer manager backend. Deal with failure to hook up shadow layers. sr=roc 2011-07-13 22:43:43 -07:00
Chris Jones
7e90855ae8 Bug 648484, part 2: Add various helpers, refactor ContainerLayer::SetSpecificAttributes. r=roc 2011-07-13 22:43:43 -07:00
Chris Jones
7a11870b91 Bug 648484, part 1: Fix some warning spam. r=roc 2011-07-13 22:43:43 -07:00
Matt Woodrow
b154d14e64 Bug 670106 - Check the surface type before attempting to create a GLXPixmap. r=joe 2011-07-15 08:45:33 +12:00
Jacek Caban
3cdbb68a2e Bug 670913 - LayerManagerD3D10.h fails to compile on mingw (r=joe) 2011-07-13 17:58:17 +02:00
Benoit Girard
952c2f25af Bug 663259 - Enable Mac Async plugin by default. r=cjones,mattwoodrow
--HG--
extra : rebase_source : 6d397273f10e659a08125b3861e1651a3994aaa0
2011-07-12 10:31:18 -04:00
Robert O'Callahan
26c67a621c Bug 649924. Use image surfaces to implement canvases beyond the texture size limit. r=bas 2011-07-08 22:42:21 +12:00
Florian Haenel
32ba480e5b Bug 607687 - Fennec should take care about Texture MAX size HW limitation r=jmuizelaar 2011-07-06 11:00:47 -07:00
Matt Woodrow
dbbef6ee35 Bug 656185 - Part 4 - Upload the entire image for PlanarYCbCrImageD3D10 to a texture and clip using texture coordinates. r=Bas 2011-07-05 14:52:50 +12:00
Matt Woodrow
dd264db48d Bug 656185 - Part 3 - Upload the entire image for PlanarYCbCrImageD3D9 to a texture and clip using texture coordinates. r=Bas 2011-07-05 14:52:34 +12:00
Matt Woodrow
89e737996c Bug 656185 - Part 2 - Upload the entire image for PlanarYCbCrImageOGL to a texture and clip using texture coordinates. r=derf 2011-07-05 14:52:00 +12:00
Matt Woodrow
7ab3748569 Bug 656185 - Part 1 - Move BindAndDrawQuadWithTextureRect into LayerManagerOGL. r=joe 2011-07-05 14:50:38 +12:00
Benoit Girard
9c46ca57c5 Bug 636707 - Check for null MacIOSurfaceImageOGL. r=mattwoodrow 2011-07-04 09:51:37 -04:00
Benoit Girard
dd61f3a2ea Bug 648480 - Add shadow-layer support to d3d9 backend. r=cjones 2011-07-04 09:15:05 -04:00
Benoit Girard
069dc7b333 Backout 627489bb6288. 2011-07-01 18:05:54 -04:00
Benoit Girard
c83b82cbd1 Bug 648480 - Add shadow-layer support to d3d9 backend. r=cjones 2011-07-01 16:57:15 -04:00
Rafael Ávila de Espíndola
e41f04b2a3 Bug 708051 - Avoid IPC x ipc confusion on case insensitive filesystems. r=joe. 2012-01-03 14:36:00 -05:00
Matt Woodrow
cc66446a05 Back out bug 656185 due to windows compile failures 2011-06-27 15:21:22 +12:00
Matt Woodrow
31412c006b Bug 656185 - Part 4 - Fix for D3D9. r=Bas 2011-06-27 14:32:42 +12:00
Matt Woodrow
379c7e6f82 Bug 656185 - Part 3 - Fix for D3D10. r=Bas 2011-06-27 14:32:34 +12:00
Matt Woodrow
8aba398b72 Bug 656185 - Part 2 - Handle odd crop offsets correctly with OpenGl. r=derf 2011-06-27 14:32:16 +12:00
Matt Woodrow
9376e72c7e Bug 656185 - Part 1 - Move BindAndDrawQuadWithTextureRect into LayerManagerOGL. r=joe 2011-06-27 14:32:06 +12:00
Ed Morley
0b8382e38b Backout 76dcfabe0a2a, d8004eb22252, 86e91202ef51 & f9a5736cd6bc (bug 695845) for build failures on windows 2011-12-19 20:27:59 +00:00
Matt Woodrow
78a44f2fc4 Bug 695845 - Part 4: Move BasicShadowableLayer into ImageLayers.h. r=cjones 2011-12-19 14:49:45 -05:00
Matt Woodrow
245b51f6b5 Bug 695845 - Part 3: Add Flush() and Disconnect() methods to ImageContainer. r=cjones 2011-12-19 14:49:45 -05:00
Matt Woodrow
51ef152770 Bug 695845 - Part 2: Add ShadowImplData. r=cjones 2011-12-19 14:49:45 -05:00
Matt Woodrow
9f81d4abf6 Bug 695845 - Part 1: Add ImplData to ImageContainer. r=roc 2011-12-19 14:49:45 -05:00
Jeff Gilbert
4eb57c769d Bug 711649 - Resolve OGL canvas layer in UpdateSurface - r=mattwoodrow 2011-12-19 11:21:56 -08:00
Bas Schouten
bfb8808747 Bug 651858 - Part 5: Add CanvasLayer code for azure. r=jrmuizel 2011-06-24 19:41:18 +02:00
Bas Schouten
933cae4fbb Bug 651858 - Part 4: Implement API for creating a D3D10 compatible DrawTarget. r=roc 2011-06-24 19:41:18 +02:00
Bas Schouten
58d40df2a4 Bug 651858 - Part 3: Add layers API for creating an optimal DrawTarget. r=roc 2011-06-24 19:41:18 +02:00
Jeff Muizelaar
9c940cc534 Bug 662649. DrawFPS: Make the conversion loop easier to follow. r=joe 2011-06-22 14:53:11 -04:00
Jeff Muizelaar
d2cc193c0b Bug 662649. DrawFPS: Add a comment about why DrawFPS is a little weird. 2011-06-22 14:49:31 -04:00
Jeff Muizelaar
f15d555c8f Bug 662649. DrawFPS: Make sure we use a 32 bit type instead of a 64 bit one. r=joe
This was causing badness on platforms where unsigned long is 64 bits.
2011-06-22 14:46:27 -04:00
Jeff Muizelaar
e70b966d11 Bug 662649. DrawFPS: free leaked buffer. r=joe
glTexImage2D will keep a copy of this data around so we don't have to.
2011-06-22 14:43:52 -04:00
Robert O'Callahan
ae6647d4d2 Bug 637852. Part 26: Ensure that FrameMetrics coordinates are correctly stored as layer coordinates. r=tnikkel 2011-06-23 00:11:28 +12:00
Robert O'Callahan
0c48fabd49 Bug 637852. Part 18: Support computing the "residual transform" for a ThebesLayer --- the difference between its snapped transform and the ideal transform --- and use it to align ThebesLayer drawing for transforms that aren't changing. r=tnikkel
This fixes bug 637597 and probably other bugs.
2011-06-23 00:11:28 +12:00
Robert O'Callahan
7f64e9bccf Bug 637852. Part 10: Remove mX/YResolution from ThebesLayer. r=joe
These are the last vestiges of Layer-based resolution API.
2011-06-23 00:11:28 +12:00
Robert O'Callahan
0cc6be313b Bug 637852. Part 9: Remove resolution support from BasicLayers, ShadowLayers and GL layers. r=mattwoodrow
This is not needed anymore.
2011-06-23 00:11:28 +12:00
Robert O'Callahan
64c5e295e0 Bug 637852. Part 8: Remove resolution support from D3D9 layers. r=mattwoodrow
Layer-system resolution support is no longer needed.
2011-06-23 00:11:27 +12:00
Robert O'Callahan
0041df680e Bug 637852. Part 7: Remove resolution support from D3D10 layers. r=mattwoodrow
Layer-system resolution support is no longer needed.
2011-06-23 00:11:27 +12:00
Robert O'Callahan
2685eb6583 Bug 637852. Part 1: Don't snap BasicThebesLayer effective transforms when we're not retaining layers. r=tnikkel
The ThebesLayer contents are going to be drawn through directly without retaining, so there's no point in snapping.
2011-06-23 00:11:27 +12:00
Oleg Romashin
dea57d8792 Bug 660565 - HTML5 HW accelerated video is slow r=roc
--HG--
extra : rebase_source : 5a46d17c72caf5ec4afd3f59093be803008c61ec
2011-06-16 12:51:05 +02:00
Neil Rashbrook
747f874cd4 Bug 660525 Remove useless uses of PromiseFlatString (prev cset lacked the code changes) r=joedrew! 2011-06-13 19:02:35 -07:00
Masayuki Nakano
e06d6eb819 Bug 663036 part.3 gfx should use mozilla::Preferences r=roc+joe 2011-06-12 11:30:16 +09:00
Oleg Romashin
bcfe656b06 Bug 612335 - Render remote canvas directly into shared surface r=jones.chris.g 2011-06-09 21:17:02 -04:00
Kyle Huey
39d58838ba Fix a spelling mistake on this CLOSED TREE 2011-05-31 09:14:54 -07:00
Oleg Romashin
65a70a8e4c Bug 659768 - HTML5 video does not render anything on Maemo r=mattwoodrow 2011-05-31 09:48:47 +12:00
Mounir Lamouri
53c39f24f1 Merging cedar with mozilla-central. 2011-05-30 12:50:04 +02:00
Robert O'Callahan
a1ebcbf532 Bug 647560. Remove unused MayHaveOverlappingOrTransparentLayers. r=tnikkel 2011-05-30 15:48:34 +12:00
Robert O'Callahan
a537a15852 Bug 647560. Cache temporary backbuffer surfaces. r=karlt 2011-05-30 15:48:29 +12:00
Robert O'Callahan
89fdba6cb9 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-30 15:48:23 +12:00
Robert O'Callahan
b49eae116d 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-30 15:48:13 +12:00
Robert O'Callahan
c0afe87a4e 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-30 15:48:08 +12:00
Robert O'Callahan
9a390fc021 Bug 647560. Use passed-in aContext instead of getting it from the layer manager. r=tnikkel 2011-05-30 15:48:01 +12:00
Robert O'Callahan
66a57a0a84 Bug 639168. Don't try to reuse a buffer if we don't have one. r=tnikkel 2011-05-30 15:29:07 +12:00
Masayuki Nakano
85c451e309 Bug 660121 Remove all pref related methods from nsContentUtils r=roc 2011-05-29 08:42:57 +09:00
Neil Rashbrook
a823051c1e Fix DOS line endings rs=joedrew!
DONTBUILD
2011-05-26 20:41:33 +01:00
Oleg Romashin
d4e430f071 Bug 659217 - HW accelerated video crashing with OGL layerss enabled. r=matt.woodrow
--HG--
extra : rebase_source : bd3b7998f5b8193a01d927c388ee2375d2a6bacf
2011-05-25 10:09:55 +02:00
Benoit Jacob
2c0eb7e54e Bug 657748 - Update ANGLE to r653 - a=joe
This ANGLE update fixes bugs, brings large performance improvements, and adds major new features that web devs are looking forward to: vertex shader texture lookup and float textures.

http://code.google.com/p/angleproject/

This update is also needed because the version we're currently using is the chrome_m10 branch and that's no longer maintained. This update will make it much easier to apply security fixes if needed.
2011-05-24 11:05:56 -04:00
Matheus Kerschbaum
35f86c76ad Bug 648911 - Remove support for non-libxul builds. r=ted,joedrew 2011-05-23 18:54:47 +02:00
Robert O'Callahan
ea286efab6 Bug 654950. Fix scissor rect calculations for descendants of container layers with intermediate surfaces. r=bas 2011-05-23 12:27:03 +12:00
Vivien Nicolas
8b7b339cab backout bug 647560 - Pages on Fennec desktop does not not draw anymore 2011-05-20 17:45:00 +02:00
Florian Hänel
8e0d9ab286 Bug 628566 - Implement basic tiling of ImageLayerOGL. r=joe 2011-05-19 12:53:02 +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
Florian Hänel
ba640eeb4a Bug 643793 - Convert OpenGL scissor rects to world space in ContainerLayerOGL. r=joe 2011-05-14 12:11:37 +12:00
Oleg Romashin
5c6eaea720 Bug 656167 - Temorarily disable or back out fixed layers. r=jones.chris.g 2011-05-12 09:49:33 -07: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
13f01190c4 Bug 612407 - Add FPS counter like fraps r=joe,jrmuizel 2011-05-10 21:45:42 -04:00
Matt Woodrow
a4d6cf8613 Bug 649685 - Don't flip when drawing the backbuffer to the window with OpenGL. r=joe 2011-05-09 11:44:03 +12:00
Mounir Lamouri
ad09541e90 Backout 2348924d6410 (bug 612407) for build bustage. 2011-05-06 11:42:42 +02:00
Oleg Romashin
bf1f0f0f3d Bug 612407 - Add FPS counter like fraps r=joe 2011-05-06 11:04:14 +02: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
Zack Weinberg
d5e47757d8 Bug 651017, part 4: deCOM nsIDeviceContext; include-minimization on nsDeviceContext.h itself; merge GetPrintDC() into Windows/OS/2 specific code; merge Shutdown() with ClearCachedSystemFonts(). Most references outside gfx not fixed up.
--HG--
rename : gfx/src/nsThebesDeviceContext.cpp => gfx/src/nsDeviceContext.cpp
rename : gfx/src/nsThebesDeviceContext.h => gfx/src/nsDeviceContext.h
extra : rebase_source : 9fb366d99d18c9335ba297d21f673178dae62a64
2011-04-16 18:22:42 -07:00
Robert O'Callahan
72627bced2 Bug 641426. Part 6: Rename Empty to SetEmpty. r=cjones 2011-04-19 15:07:23 +12: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
307547d062 Bug 641426. Part 3: Convert gfxRect::pos/size to x/y/width/height. r=joe,sr=cjones 2011-04-19 15:07:21 +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
Matt Woodrow
c43047b608 Bug 648741 - Correctly bind pixmaps to textures during the draw call on X11 accelerated layers. r=bjacob 2011-04-19 10:50:54 +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
Benjamin Stover
3dc5b1f7a2 Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-11 13:53:01 -07:00
L. David Baron
ad4318958b Back out 1edfae12015b (Bug 642246) due to mobile unittest orange. 2011-04-09 18:21:27 -07:00
Benjamin Stover
3270dd31cd Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-09 12:38:28 -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
Oleg Romashin
631800dfd2 Bug 607417 - Part1: position:fixed frames mark layers r=roc
--HG--
extra : rebase_source : dbbff8810bafd165a48c34924d98f5c87702ef3f
2011-04-05 23:00:25 -06:00
Matt Woodrow
6043fccf2f Bug 640082 - Part 5 - Use texture_from_pixmap in CairoImageOGL. r=joe 2011-04-07 16:58:08 -07:00
Matt Woodrow
c2d0ad4ae4 Bug 640082 - Part 4 - Create TextureImageGLX which uses texture_from_pixmap. r=joe 2011-04-07 16:58:08 -07:00
Matt Woodrow
30e6da146a Bug 640082 - Part 3 - Add BindTexture functions to TextureImage. r=joe 2011-04-07 16:58:08 -07:00
Matt Woodrow
179c7950e6 Bug 640082 - Part 2 - Use texture_from_pixmap in CanvasLayerOGL. r=joe 2011-03-09 10:41:10 +13:00
Robert O'Callahan
acc1dd656b Bug 647315. Update ThebesLayerOGL with the same fix. r=mattwoodrow 2011-04-06 16:38:01 -07:00
Robert O'Callahan
de0d6f2c5e Bug 647315. Back out one line of changeset 844579d34200. r=mattwoodrow 2011-04-06 16:37:56 -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
750234b3f1 Bug 635373. When resampling a ThebesLayer, ensure that D3D9 and OpenGL layers paint the entire layer as one quad to avoid unnecessary aliasing. r=bas 2011-04-01 10:33: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
bfb12d86f0 Bug 635373. If we need to resample a ThebesLayer texture, make sure we make all the pixels of the texture valid in case they get sampled. r=bas 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
Ben Turner
3e1c82c126 Bug 640901: Clean up managees when manager ctor fails. r=cjones 2011-03-21 11:00:00 -05:00
Benjamin Smedberg
4f1ecb131c Bug 617539 - remove nsIWidget_MOZILLA_2_0_BRANCH, r=jimm 2011-03-25 11:03:35 -04:00
Matt Woodrow
faf46f850f Bug 635383 - Fix black rendering on non-square container layers. r=joe,bz 2011-03-24 21:57:09 -04:00
Matt Woodrow
3f8b8cc124 Bug 635383 - Part 3 - Don't triple buffer reftests. r=joe 2011-03-25 11:06:04 +13:00
Matt Woodrow
ca1fbaeed0 Bug 635383 - Part 2 - Share scissoring code between all accelerated backends. r=joe 2011-02-25 20:44:22 +13:00
Matt Woodrow
d678e84d15 Bug 635383 - Part 1 - Make GL layers always y-flipped and handle this inside GLContext. r=joe 2011-02-25 20:44:18 +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
Steven Michaud
65c49866d2 Bug 637367 - Stop DrawPlugin from accessing deleted nsObjectFrame. r=roc a=beltzner 2011-03-18 14:35:14 -05: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
Ehsan Akhgari
7acd6a32ad Bug 639885 - Don't use named Windows kernel objects because they will cause conflicts when running multiple Firefox processes concurrently; r=jrmuizel a=stuart 2011-03-11 21:22:38 -05: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
9bdc1fed20 Bug 635035, part 6: Use gfxASurface::MovePixels() for self-copies of ThebesLayerBuffers. r=roc 2011-03-09 11:27:37 -06:00
Chris Jones
d732dc2d94 Bug 635035, part 2: Ensure that the buffer rect only grows in the presence of scaling. r=roc 2011-03-09 11:27:37 -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
Ehsan Akhgari
6be46d4acc Bug 639885 - Abort the program execution if the status of program is unsafe due to thread safety issues in ReadbackManagerD3D10; r=Bas,jrmuizel,cjones a=beltzner 2011-03-09 09:49:29 -05: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
Benoit Jacob
7f1f831a27 Bug 627464 - Annotate crash reports if the forced-enabled prefs are set - r=jrmuizel, a=joe 2011-03-02 15:50:36 -05:00
joe@drew.ca
2f9eaad891 Bug 636870 - Using webgl on optimus hardware causes instant crash [part1] (r=jmuizelaar, a=blocker). 2011-03-01 17:00:33 -08: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
Benjamin Smedberg
7989cbf1bc Bug 635980. Change Nv3DVStreaming assert to warning. r=jmuizelaar, a=jmuizelaar 2011-03-01 13:00:35 +09:00
Matt Woodrow
7f306f9fcc Bug 637040 - Set the correct active texture unit for plugin layers. r=roc a=blocking2.0 2011-03-01 16:05:20 +13:00
Ms2ger
734fc0c5a4 Bug 637184 - Missing newline at end of file in MacIOSurfaceImageOGL.h; r=mattwoodrow a=josh 2011-02-28 13:01:37 -08:00
Ehsan Akhgari
0b71287da9 Bug 622942 - Set the antialiasing flag on OpenGL layers with component alpha content.
r+a=roc
2011-02-26 13:40:47 +01:00
Matt Woodrow
852f3221c8 Bug 636609 - Remove DEBUG_GL_ERROR_CHECK. r+a=joe 2011-02-25 20:05:31 +13: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
Matt Woodrow
780ff82ea8 Bug 634132 - Reset the current GL context after drawing thebes layers. r=joe a=blocking2.0 2011-02-24 09:31:49 +13:00
Jeff Muizelaar
c97adad679 Bug 626678. Try to handle docking station device resets better. r=bas,a=b
Docking stations seem to cause DEVICELOST errors that never become
DEVICERESET so we don't ever succeed in reseting the device. We now
try to detect these situations and recreate the device.
2011-02-23 09:18:00 -08:00
Matt Woodrow
260ec13425 Bug 635302: fix flipping logic to handle both single-buffered and double-buffered cases correctly. r=joe, a=hardblocker. 2011-02-20 11:19:11 +13:00
Mike Shaver
4b8d36a579 backout of 6bad6cd2dded due to failure of test it added (a=backout-orange) 2011-02-19 11:08:39 -08:00
Matt Woodrow
24de18c7d0 Bug 635302: fix flipping logic to handle both single-buffered and double-buffered cases correctly. r=joe, a=hardblocker.
See also bug 635383 for improving this logic in the longer term.
2011-02-18 18:11:00 -08:00
Bas Schouten
601534bd2e Bug 635275: Only update portions within scaled texture bounds. r=roc a=blocking-betan 2011-02-19 04:51:10 +01:00