Граф коммитов

1369 Коммитов

Автор SHA1 Сообщение Дата
Nicolas Silva 9e20942d69 Bug 1250500 - Avoid copying BufferTextureHost when possible. r=sotaro 2016-02-25 14:15:52 +01:00
Nicolas Silva 2b9dadff72 Bug 1249273 - Lazily prepare TextureSources and recycle them when possible in ImageHost. r=sotaro 2016-02-25 14:15:40 +01:00
Nicolas Silva e8b70b860b Bug 1249273 - Enable BufferTextureHost to recycle a TextureSource that is not marked as owned. r=sotaro 2016-02-25 14:15:34 +01:00
Jean-Yves Avenard 0f2fbc9d88 Bug 1248323: P1. Add support for YUV422 IOSurface. r=nical
Those are really UYVY 16bpp surface.

MozReview-Commit-ID: DWkqrF6Norj

--HG--
extra : rebase_source : 479500af560f61a3f6b6c4c3b0f64aeb92438a9a
2016-02-23 13:26:27 +11:00
Bas Schouten 36d729fab3 Bug 1232042: Execute an additional present for D3D11 on the compositor thread when a WM_PAINT event has returned. r=jrmuizel 2016-02-24 03:50:09 +00:00
Phil Ringnalda a5861fc16a Back out 6a24b31747be (bug 1232042) for crashes @RecvForcePresent
CLOSED TREE
2016-02-23 21:27:46 -08:00
Bas Schouten fd04611c7c Bug 1232042: Execute an additional present for D3D11 on the compositor thread when a WM_PAINT event has returned. r=jrmuizel 2016-02-24 03:50:09 +00:00
Matthew S f91b1ade98 Bug 1247450 - Rename LayerComposite::GetShadowTransform to GetShadowBaseTransform. r=botond
MozReview-Commit-ID: 4HkKFCDQW4l
2016-02-20 19:05:59 -05:00
Milan Sreckovic c0c9e1c9f0 Bug 1249312: UseAcceleratedCanvas on Mac should really be UseAcceleratedSkiaCanvas. r=mchang 2016-02-18 14:00:53 -05:00
Hiroyuki Ikezoe bff8c71b2a Bug 1216842 - Part 10: Remove the limit of the computed timing progress. r=birtles
Now we produce computed timing progress outside [0,1] range.
We use the last segment to calculate animation values if the value is greater than 1.
We use the first segment to calculate animation values if the value is lesser than 0.
2016-02-18 14:20:00 +01:00
Thinker K.F. Li 4c328ff551 Bug 1244943 - Make PostProcessLayers aware of preserve-3d. r=mattwoodrow
--HG--
extra : commitid : S1u1kZ0sGV
2016-02-18 17:12:40 -08:00
kearwood d2f423667c Bug 1237689 - Enable Oculus hardware latency tester r=daoshengmu
- Generate and pass sequential frame indexes into the ovr_GetTrackingState call and the corresponding call to ovr_SubmitFrame

MozReview-Commit-ID: 5tJl5YJt7Eo

--HG--
extra : rebase_source : 5dbb35ea1451a9f378e28d81a8704b63b1b72b4d
2016-01-08 18:50:10 -08:00
Milan Sreckovic e5d1fffa48 Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. Carry r=botond 2016-02-08 11:57:00 +01:00
Botond Ballo c5fb5cdd95 Bug 1247452 - Use the effective visible region rather than the visible region where appropriate in the compositor. r=mattwoodrow
MozReview-Commit-ID: 6wbe0kUWh9h

--HG--
extra : rebase_source : 1263fcf02beb41bd8f7c6d6556b629f772fd955a
2016-02-12 20:24:38 -05:00
Sotaro Ikeda 01f2e9b0c0 Bug 1248325 - Update BufferTextureHost::GetAsSurface() r=nical 2016-02-16 01:47:36 -08:00
Michelangelo De Simone ebffe910b0 Bug 1247445 - Rename Layer::GetEffectiveVisibleRegion GetLocalVisibleRegion. r=botond
--HG--
extra : amend_source : 375eedb2c6f3e7aec206071a0be0e5fbc0367e76
2016-02-13 16:50:51 -08:00
Botond Ballo 9a2d7d1f30 Bug 1237827 - Be sure to clear LayerComposite::mLayerComposited between each composite. r=mattwoodrow 2016-02-08 20:26:54 -05:00
Matt Woodrow 7cd754d8cf Bug 1229317 - Allow preserve-3d and opacity to be combined on the root element of a preserve-3d chain. r=roc 2016-02-07 23:51:11 +13:00
Phil Ringnalda ec6b8aac53 Back out e751d638ab4b (bug 1229317) for reftest "Assertion failure: oldState < kReadMax" and crashes
CLOSED TREE
2016-02-05 22:42:55 -08:00
Matt Woodrow 8857b37db9 Bug 1229317 - Allow preserve-3d and opacity to be combined on the root element of a preserve-3d chain. r=roc 2016-02-06 17:57:34 +13:00
Carsten "Tomcat" Book 2d8c4c26f5 Backed out changeset 0cee3cdcce99 (bug 1187464)
--HG--
extra : rebase_source : 977a8167488bc1dbf71c6205a2eb4b77c1c3a0ca
2016-02-03 15:04:21 +01:00
Milan Sreckovic 91bbfbdf90 Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. r=botond 2016-02-02 11:06:00 +01:00
Birunthan Mohanathas d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Nicolas Silva cd021cdc29 Bug 1208226 - Don't crash when failing to map a segment of shared memory. r=sotaro, billm 2016-02-01 16:11:00 +01:00
Hiroyuki Ikezoe 4b31027fae Bug 1216842 - Part 7: Add easing function to laryer::Animation. r=cam 2016-01-26 21:19:00 +01:00
Hiroyuki Ikezoe 409715935c Bug 1216842 - Part 2: Add LayerAnimationUtils. r=cam
This is also for compositor side.
we need a new class to share the function which converts TimingFunction
to ComputedTimingFunction for either keyframe's timing function or keyframe
effect's timing function.
2016-01-29 14:44:00 +01:00
Phil Ringnalda d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas 373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Nicholas Nethercote ab52b9a0ea Bug 1239864 (part 7) - Use the new rect iterators in gfx/. r=nical.
--HG--
extra : rebase_source : 27d77656d578deefff0860184346ff962e32762f
2016-01-18 17:20:58 -08:00
Nicholas Nethercote bd2573b703 Bug 1239864 (part 6) - Use the new rect iterators in gfx/. r=nical.
--HG--
extra : rebase_source : 396d472f620fbbe65982da90ce66021382eaf324
2016-01-18 17:20:58 -08:00
Sotaro Ikeda 4f26117e33 Bug 1049296 - Handle Sideband stream compositing in HwcComposer2D r=mwu,nical 2016-01-18 20:52:32 -08:00
Boris Chiou deee95a0d8 Bug 1214536 - Part 7: Rename AnimationTiming as TimingParams. r=birtles, r=smaug
1. struct AnimationTiming -> struct TimingParams
2. AnimationEffectReadOnly::TimingAsObject() -> AnimationEffectReadOnly::Timing()
3. KeyframeEffectReadOnly::Timing() -> KeyframeEffectReadOnly::SpecifiedTiming()
2016-01-13 18:41:00 +01:00
Boris Chiou 71cff999e0 Bug 1214536 - Part 4: Use OwingUnrestrictedDoubleOrString for duration. r=birtles
We store the original value of duration in AnimationTiming, and add
computed duration in ComputedTiming, so both the Timing model and
AnimationEffectTimingReadOnly can get what they want.

By the way, replace mIterationDuration with mDuration.

--HG--
extra : rebase_source : f8e1fd648572e6d7b1cbecc2ac1888a2f74bbc7e
2016-01-13 18:36:00 +01:00
Boris Chiou 76f7e5a44e Bug 1214536 - Part 3: Store the original value of fill. r=birtles
FillMode could be 'auto', and we should treat it as 'none' in the timing model.
However, AnimationEffectTimingReadOnly should get its original value.

By the way, replace mFillMode with mFill.

--HG--
extra : rebase_source : 5a397dd7fbb22ac76fe96003d82d097e398852c7
2016-01-13 18:36:00 +01:00
Boris Chiou b0c41b12ec Bug 1214536 - Part 2: Replace mIterationCount in layers::Animation. r=birtles
Replace mIterationCount with mIterations.

--HG--
extra : rebase_source : 2aa326be768d3326d56e689d6c45ca9d6439c3bc
2015-12-27 18:51:00 +01:00
Boris Chiou 44cb5bee0a Bug 1214536 - Part 1: Use unrestricted double for iterations. r=birtles
We want to store the original value from KeyframeEffectOptions whose
iterations is unrestricted double. Therefore, we can get the original value
of iterations by AnimationEffectTimingReadOnly.

By the way, replace mIterationCount with mIterations.

--HG--
extra : rebase_source : da2953056031079c41273ed977545dc926e1b83c
2016-01-10 18:41:00 +01:00
Matt Woodrow 0728cd334f Bug 1231564 - Don't trigger new composites just to repaint debug overlays. r=BenWa 2016-01-11 15:12:05 +13:00
Matt Woodrow e767cc440a Bug 1231564 - Don't take the compositor side layer-tree snapshot until after compositing. r=dvander 2016-01-11 15:11:14 +13:00
Botond Ballo 1497a2fe7c Bug 1236750 - Use strongly-typed matrices to represent layer transforms in APZ code. r=kats
--HG--
extra : source : 20dccf6f7b3072e943f11573195559ab5f0c721c
2016-01-04 20:07:54 -05:00
Botond Ballo e388e00738 Bug 1236750 - Rename ViewTransform to AsyncTransform. r=kats
It's only used to represent async transforms, and making this clear
allows us to replace (in a subsequent change) its conversion operator
to Matrix4x4 with a conversion operator to a specific typed matrix.

--HG--
extra : source : 38b22004c06481c62eb4e7fead64e1ec52603225
2015-12-30 18:24:26 -05:00
Nicolas Silva f02f7a61e4 Bug 1221056 - Make the destroy messages for PTexture and PCompositable part of the current transaction when applicable. r=sotaro 2016-01-07 11:17:40 +01:00
Ryan VanderMeulen 1d22ec87d3 Merge inbound to m-c. a=merge 2016-01-06 09:43:47 -05:00
Johan Lorenzo 8612fa1f8c Backout Bug 1221056 - make the destroy messages for PTexture and PCompositable part of the current transaction when applicable. r=sotaro
For breaking Firefox OS boot startup (see bug 1237197)

--HG--
extra : commitid : Eoiq2mNqfw9
2016-01-06 14:59:35 +01:00
Sotaro Ikeda 22854d8a96 Bug 1234472 - Add gonk sideband stream handling to gfx ipc r=nical 2016-01-05 20:50:39 -08:00
Nicolas Silva 4d9fc4395b Bug 1221056 - make the destroy messages for PTexture and PCompositable part of the current transaction when applicable. r=sotaro 2016-01-05 14:03:26 +01:00
Kearwood (Kip) Gilbert 0c83ce5c05 Bug 1182048 - Part 2: Implement e10s support for WebVR,r=vlad 2015-09-17 14:23:13 -07:00
Markus Stange 983842c663 Bug 1187322 - Fix bustage.
--HG--
extra : commitid : 8apW68WiB8L
2015-12-29 12:13:24 +01:00
Sotaro Ikeda 6247e12af2 Bug 1205713 - Merge ImageHostOverlay/ImageClientOverlay to ImageHost/ImageClient r=nical 2015-12-29 01:07:33 -08:00
Kartikaya Gupta bda9903434 Bug 1234950 - When advancing APZ animations, use the next vsync timestamp instead of the current one, since that is what will be composited. r=mstange
--HG--
extra : commitid : 7dGwaW6JsJE
2015-12-27 10:20:40 -05:00
Kartikaya Gupta 76cc51b1d0 Bug 1234950 - Advance APZ animations after updating the layer shadow transforms, rather than before. r=mstange
--HG--
extra : commitid : IrI8bVaN0gp
2015-12-27 10:20:40 -05:00
Botond Ballo 7aa5896a60 Bug 1147673 - Determine more accurately whether an async transform affects a layer's clip rect. r=kats
--HG--
extra : commitid : 8cSEIbgLUiP
extra : rebase_source : 9a72884f7f86863f39812f380fc12188425aac08
2015-10-02 18:35:21 -04:00
Markus Stange 2765aae43f Bug 1147673 - Unadjust clip before intersecting it with the scroll clip. r=botond
--HG--
extra : commitid : A66MeHC7Cxf
extra : rebase_source : 7a1b5e0a4169198bd5bd767671335fc24345b8ba
2015-10-09 14:30:44 +02:00
Nicolas Silva 9bc4b1d4e6 Bug 1228952 - Move texture metadata out of the BufferTextureClient/Host's buffer. r=Sotaro 2015-12-16 19:50:58 +01:00
Carsten "Tomcat" Book 537f8683a1 Backed out changeset 1cbfa21cf2b5 (bug 1147673) for mulet r5 test failures on a CLOSED TREE 2015-12-16 11:53:11 +01:00
Carsten "Tomcat" Book e833356e71 Backed out changeset 9e1f2694536c (bug 1147673) 2015-12-16 11:52:41 +01:00
Botond Ballo 2d178ca987 Bug 1147673 - Determine more accurately whether an async transform affects a layer's clip rect. r=kats
--HG--
extra : commitid : F4iMY0eM8d5
extra : rebase_source : c43c431179980ee611c77b05b50b515776c22374
extra : histedit_source : 95e175838feea81486905a3af94f1928c5ef5e25
2015-10-02 18:35:21 -04:00
Markus Stange 8fdc7a632d Bug 1147673 - Unadjust clip before intersecting it with the scroll clip. r=botond
--HG--
extra : commitid : 5p2hV51eK8m
extra : rebase_source : 1c3cd6b1d3d875b105dcb7b08481761281e700df
extra : histedit_source : 4689eccff58db10a341813ce25403374cc13a4d0
2015-10-09 14:30:44 +02:00
Milan Sreckovic 06d79c4606 Bug 1219494 - Part 4. gfx/layers and gfxCrash. r=mchang 2015-12-10 13:01:00 +01:00
Bogdan Postelnicu 5448c47174 Bug 1230149 - check bigImgIter to see if it's not null. r=jmuizelaar 2015-12-03 06:46:00 +01:00
Nicolas Silva e9b85ee52f Bug 1229577 - Rename NewSurfaceDescriptorGralloc into SurfaceDescriptorGralloc. r=sotaro 2015-12-04 11:23:42 +01:00
Botond Ballo 79efe79201 Bug 1069417 - Fix an error introduced when rebasing across bug 1021845 to reopen a CLOSED TREE. r=bustage 2015-12-03 02:20:35 -05:00
Botond Ballo ae1bdc7602 Bug 1069417 - Remove the explicit template argument of TransformTo() and related functions. r=kats
In this process, TransformTo() and UntransformTo() are renamed TransformedBy()
and UntransformBy() so calls to them continue to read sensibly.

--HG--
extra : rebase_source : a2a4b36514cc54533757c075fcf2c53ab3020939
extra : source : 826da3dc12baeb84b32be50f4b2c0591ca73ab37
2015-11-30 20:06:45 -05:00
Botond Ballo 70b749edea Bug 1069417 - Modify TransformTo() and related functions to use typed matrices. r=kats
Call sites (all in APZ and related code) were modified accordingly. Some of
these modifications involved changing some matrices stored in APZ to be typed.

--HG--
extra : rebase_source : 6f1cf33a5550987097fcd386c77765d046f5ec34
extra : source : 8f66bdc8e6e86f482a06b9c7a160740026cf24b4
2015-11-30 20:14:31 -05:00
Botond Ballo 0858698ac3 Bug 1069417 - Generalize Matrix4x4 into Matrix4x4Typed<SourceUnits, TargetUnits>. r=Bas
Matrix4x4 remains a typedef for Matrix4x4Typed<UnknownUnits, UnknownUnits>.

No client code needed changing, except for forward-declarations of Matrix4x4
as a class (since it's now a typedef).

--HG--
extra : rebase_source : ecd9470b9defcc55cfb9e7dbd26e928a6219c3e5
extra : source : 0fc99b5490830953f37a4d8769e42dad2d10bc6e
2015-12-02 18:52:00 -05:00
Nicholas Nethercote 74e40cebb1 Bug 1229237 (part 2) - Make nsIWidget::DrawWindowUnderlay() take a LayoutDeviceIntRect. r=botond.
--HG--
extra : rebase_source : 0563312f21ea9bf88399377f977c6b21c60a07b6
2015-11-16 20:34:00 -08:00
Markus Stange 3209f1f0b4 Bug 1021845 - Don't skip checkerboarding layers during compositing, even if the layer's visible region is empty. r=botond
--HG--
extra : commitid : 2b5dQN09gIh
extra : rebase_source : 8bd2dfcf4b17a4ceb863e8744ffbcdf17c6f8fc6
2015-11-24 14:27:10 +01:00
Markus Stange 96c1739213 Bug 1021845 - Before compositing, clip the visible region of a layer to the layer's clip rect. r=mattwoodrow
--HG--
extra : commitid : BFuXYwxFvPI
extra : rebase_source : 2b034d8cfac20df565bea456f202573cca99d24d
2015-12-02 22:54:03 +01:00
David Anderson 7dfba52625 Add a new Image class that wraps drawable TextureClients. (bug 1217665 part 4, r=nical)
--HG--
extra : rebase_source : 417abc16c591dd7442228e9200639a35aff15368
2015-12-02 11:31:17 -08:00
Sunny Sidhu cfa8942015 Bug 1220873 - Make Layer::mVisibleRegion a LayerIntRegion. r=botond
--HG--
extra : source : dc46048f7a9e9cc008c97e2d9e0a100944743055
extra : amend_source : 63783bc076e5969ebacdc8c74f9b5194a1891d9e
2015-11-29 02:07:55 -05:00
Botond Ballo 9c99ee0439 Bug 1208829 - Recompute visible regions during composition. r=mstange
--HG--
extra : source : 4d5fb60f53a1dbcaca2a2c914fa215635d987e9d
2015-11-23 14:45:53 -05:00
Botond Ballo eec77ad4e8 Bug 1208829 - Rename LayerManagerComposite::ApplyOcclusionCulling to PostProcessLayers, and clean it up a bit. r=mstange
--HG--
extra : source : bca2641d815e46b5c529b6f84d22a7127773f784
extra : intermediate-source : 7efa96680e28076dcc52a07fd886a94603ca3370
2015-11-09 20:43:54 -05:00
Matt Woodrow 4946a3c907 Bug 1168263 - Add nsDisplayPerspective and build separate layers for perspective. r=roc 2015-11-26 22:32:36 +13:00
Matt Woodrow 6fa0d2f621 Bug 1168263 - Simplify GetResultingTransformMatrix calculations to avoid unnecessary origin changes. r=roc 2015-11-26 22:32:35 +13:00
Matt Woodrow 7c076dbe87 Bug 1168263 - Add a flags parameter to GetResultingTransformMatrix instead of using bools. r=roc 2015-11-26 22:32:35 +13:00
Botond Ballo 32478eadd5 Bug 1168263 - Propagate the scroll-clip of a descendant of a layer with a perspective transform up to the layer itself. r=kats,mstange 2015-11-18 14:21:37 -05:00
Botond Ballo 8e6d03a7b3 Bug 1168263 - Introduce a helper function IntersectMaybeRects(). r=kats 2015-11-19 13:09:16 -05:00
Nicholas Nethercote 52b3d826da Bug 1225007 (part 1, attempt 3) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : e4b3bb36c18822557f7724a58979eddd9d8cac62
2015-11-19 14:10:38 +11:00
Boris Chiou fe6df692e1 Bug 1215406 - Part 3: Change the types of direction and fillmode in AnimationTiming. r=heycam
Use mozilla::dom::FillMode and mozilla::dom::PlaybackDirection
in AnimationTiming.

--HG--
extra : rebase_source : 8210d002d6f116793f439d88b0325ab6fb880048
2015-11-20 06:12:00 +01:00
Kartikaya Gupta c595c834db Bug 1221694 - Add a basic telemetry probe for checkerboarding. r=botond,vladan
--HG--
extra : commitid : LkGcnQbivKT
2015-11-20 23:25:37 -05:00
Phil Ringnalda 538ef0460d Merge m-c to m-i 2015-11-19 21:08:34 -08:00
Phil Ringnalda 87802cdbad Backed out 2 changesets (bug 1225007) for frequent OS X "Shouldn't return empty rect" assertion failures, a=backout
Backed out changeset c5b352c74b35 (bug 1225007)
Backed out changeset 8a513c70ce7c (bug 1225007)
2015-11-19 20:55:26 -08:00
Kartikaya Gupta 076e47d4c8 Bug 1223928 - Make the horizontal scrollbar on the root scrollable shift correctly with the dynamic toolbar. r=botond
--HG--
extra : commitid : I3ZChoVA8Gv
2015-11-19 09:55:21 -05:00
Nicholas Nethercote ce671f3678 Bug 1225007 (part 1, attempt 2) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : ea132cb4a6eda3553682114f3a1a280acfaf0aa3
2015-11-19 14:10:38 +11:00
Kearwood (Kip) Gilbert 6e9e6a6c87 Bug 1206072 - Don't call GetNextRenderTarget if CreateRenderTargetSet failed,r=vlad
- Prevent a crash in ContainerLayerComposite::ContainerRenderVR
  that ocurred when VRHMDRenderingSupport::RenderTargetSet::CreateRenderTargetSet
  returns null.

--HG--
extra : rebase_source : e5d3cc98575c2db43ac2a29cb0e8acf64996b932
2015-11-19 12:20:26 -08:00
Nicholas Nethercote 26b0d282a5 Backout 52ba24123046 and 66768d6a50fa (bug 1225007) for causing lots of test assertions on Mac. CLOSED TREE 2015-11-17 17:02:39 -08:00
Nicholas Nethercote eb12a384c0 Bug 1225007 (part 1) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : ad3466d05e476ebf65affdde3fca52494e1327cb
2015-11-15 21:37:52 -08:00
Nicholas Nethercote d5fcd40f2f Bug 1224403 (part 10) - Make nsScreenGonk::GetNaturalBoundsUntyped() typed. r=kats.
--HG--
extra : rebase_source : 5f07908c287af3e6e272047a72837641a4d6824e
2015-11-12 05:44:43 -08:00
Nicholas Nethercote 489c83b1dd Bug 1223690 - Remove implicit Rect conversions. r=jrmuizel.
gfxRect can be implicitly constructed from IntRect, which hides a number of
implicit conversion points, makes Moz2Dification harder, and has some
surprising effects.

This patch removes the implicit constructor and replaces it with an explicit
conversion function:

  gfxRect ThebesRect(const IntRect&)

This is the obvious outcome of removing the constructor.

But there is also a second, less obvious outcome: currently we do a number of
IntRect-to-Rect conversions using ToRect(), which (surprisingly) works because
it turns into an implicit IntRect-to-gfxRect conversion (via the implicit
constructor) combined with an explicit gfxRect-to-Rect conversion (via
ToRect()). I.e. we do two conversions, going from a Moz2D type to a Thebes
type and back to a Moz2D type!

So this patch also changes these conversion. It moves this existing function:

  Rect ToRect(const IntRect&)

from gfx2DGlue.h -- where it doesn't really belong because it doesn't involve
any Thebes types -- to gfx/2d/Rect.h, templatifying and renaming it as
IntRectToRect() in the process.

The rest of the patch deals with fall-out from these changes. The call sites
change as follows:

- IntRect-to-gfxRect conversions:
  - old: implicit
  - new: ThebesRect()

- IntRect-to-Rect conversions:
  - old: ToRect()
  - new: IntRectToRect()

--HG--
extra : rebase_source : e4e4c2ad10b36ecad4d57d1630158f3374e403be
2015-11-11 14:23:14 -08:00
Botond Ballo 6a70e1aa18 Bug 1222661 - Replace FromUntyped(obj) calls with FromUnknown*(obj). r=nical
--HG--
extra : rebase_source : c1afe8560b838e1a3be0ce50847861b1815d3dc9
extra : source : d649f163c825736efaf3ac3ad73040beeb48a6ef
2015-11-09 18:22:25 -05:00
Botond Ballo a592a77364 Bug 1222661 - Replace ToUntyped(obj) calls with obj.ToUnknown*(). r=nical
--HG--
extra : rebase_source : 1cab46638599d8c4e6183c42a6fa9d41702392cb
extra : source : cabc28a2200b9b4e5e137d331ee5b86b3c09f065
2015-11-06 22:13:40 -05:00
Thinker K.F. Li 8f0e450b12 Bug 1210784 - Layer tree invalidation with Preserves3D. r=roc
--HG--
extra : rebase_source : 0272b4a05d8c502fcb8afa7bc9ad5ea168967fd2
2015-11-02 18:28:00 +01:00
Kartikaya Gupta 733738df2c Bug 1214267 - Send the side to which fixed-pos items are attached so that we can move them in the compositor more correctly when the viewport size is changing. r=mattwoodrow
--HG--
extra : commitid : ALBL7XCsNm0
2015-11-11 10:07:29 -05:00
Nicholas Nethercote ad0dd8414a Bug 1223310 (part 2) - Use LayoutDeviceIntRect for bounds-related functions in nsIWidget. r=kats.
The patch renames the existing functions (GetBounds(), GetClientBounds(), etc)
by adding an |Untyped| suffix. It then adds typed equivalents, and uses those
typed equivalents in all the call sites where it's easy to do so. The trickier
remaining call sites are converted to use the Untyped-suffix version.

--HG--
extra : rebase_source : 6bfb15bfc4698e2eba7d4db55497299d3dffcd51
2015-11-09 21:37:32 -08:00
Randall Barker 9199477993 Bug 1223436 - Fix AsyncCompositionManager so that mLayersUpdated is only set to false after SyncFrameMetrics has been called. r=kats
--HG--
extra : commitid : 14Ip4CDsoEZ
2015-11-10 12:01:35 -05:00
Nicolas Silva 8b09e3bc14 Bug 121976 - Add a destruction handshake to PCompositable so as to avoid races between messages and the protocol. r=sotaro 2015-11-06 16:56:03 +01:00
Botond Ballo 5bf85e9f9d Bug 1220923 - Make nsIntRegion a typedef for IntRegionTyped<UnknownUnits>. r=nical
--HG--
extra : source : 1f371f014048ed4c3c25095233fea927311a7e23
2015-11-04 11:49:49 -05:00
Boris Chiou b2d9321540 Bug 1108055 - Part 2: Refine ComputedTiming. r=birtles
Do some minor revisions in struct ComputedTiming.
1. Use Nullable<double> mProgress, so remove the static const kNullProgress.
   The generated ComputedTimingProperties dictionary uses "Nullable" variable,
   so we replace the origin type in ComputedTiming to make it more consistent
   with that in ComputedTimingProperties dictionary.
2. Use scoped enums for AnimationPhase.

--HG--
extra : rebase_source : 31280c867a30e7bcdcfe831cbc72ca08c8ddc762
2015-10-19 00:38:00 +02:00
Birunthan Mohanathas 9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Markus Stange 030313a222 Bug 1216248 - Recomposite when the window overlay changes. r=mattwoodrow
--HG--
extra : commitid : JX5QiGz9HSG
extra : rebase_source : 7330073386d25c112cf1c0056383520a0bcf0e0b
extra : amend_source : 66cc16e8ad0ca361c3f9c25814d00ec5df4b169d
2015-10-30 11:49:07 +01:00
Milan Sreckovic 33b10a1074 Bug 1214802 - gfxEnv - consolidate environment variables used by the graphics code in one place. r=botond 2015-10-28 14:31:00 +01:00
Matt Woodrow 9ebdab0d64 Bug 1205913 - Differentiate YCbCr, NV12 and RGB textures when drawing layer borders. r=nical
--HG--
extra : rebase_source : 07e21d92965390711da32ab5ae8d797c1aeb98d8
2015-10-23 12:51:20 +13:00
Carsten "Tomcat" Book e3543211df Backed out changeset 94df1f873f5c (bug 1205913) 2015-10-29 13:52:14 +01:00
Matt Woodrow e0436217a8 Bug 1205913 - Differentiate YCbCr, NV12 and RGB textures when drawing layer borders. r=nical
--HG--
extra : rebase_source : cc0245929183231291f6fbb49bb7270a0a1e58e4
2015-10-23 12:51:20 +13:00
James Willcox faa1a44adb Bug 1208513 - Resurrect SharedSurface_GLTexture for use on iOS r=jgilbert 2015-10-28 14:10:25 -05:00
David Anderson 8dd3b854fb Compute the compositor's damage region before composites, rather than layers updates. (bug 1217560, r=mattwoodrow) 2015-10-27 10:15:02 -07:00
Sotaro Ikeda d7e0a22d6a Bug 1210182 - Implement GrallocTextureHostBasic r=nical 2015-10-26 22:43:07 -07:00
Bas Schouten df2cb10dd3 Bug 1216349: Upload the old valid region as well if our texture host changed. r=nical 2015-10-25 16:00:59 +01:00
Jim Mathies 176b60b4a8 Bug 1213671 - CompositorParent::UpdatePluginWindowState should always return an accurate result indicating when an ipc request for plugin geometry updates was sent. r=roc 2015-10-21 17:27:48 -05:00
Botond Ballo c132f32fc8 Bug 1213762 - Clear AsyncCompositionManager::mIsFirstPaint on non-Android platforms, too. r=mstange
--HG--
extra : rebase_source : 86e4c9b185c9d5a0b57cc12099326008a5b08a55
extra : source : 84dbb629686454ce74c7cdf1ea18866f703a0b4d
2015-10-16 18:33:35 -04:00
Benoit Girard 6b9d783414 Bug 1216287 - Properly invalidate the debug overlay. r=mattwoodrow
--HG--
extra : commitid : 7FvAQbZecjW
2015-10-19 18:03:48 -04:00
JerryShih 66c7ddec13 Bug 1215050 - Make layerscope support TiledPaintedLayer when using HWC. r=mattwoodrow, r=cjku
--HG--
extra : rebase_source : 3a606457d9c7cd630b6c9ab38941e2619b03943e
2015-10-15 06:03:00 -04:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Aniket Vyas 95a17ea52c Bug 1197315 - remove PR_snprintf calls in gfx/; r=froydnj 2015-10-12 14:06:19 -07:00
Bas Schouten d7e5ec0950 Bug 1211615: Upload the full texture on the first upload for component alpha textures. r=nical 2015-10-14 17:00:42 +02:00
Jamie Nicol 2e1135737e Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow
Big-image textures (where multiple textures are tiled together to act as
a single larger texture, e.g. TiledTextureImage) were in some cases
being used to back the TextureSources associated with each Tile in a
TiledLayerBuffer. CompositorOGL was unaware of this, so when compositing
would only render the first tile in each big image, stretching it to the
size of the entire big image.

It doesn't make much sense to allow tiling-within-tiling, so set the
DISALLOW_BIGIMAGE flag for textures created for use with TiledLayerBuffers.

--HG--
extra : histedit_source : 7783b2132cb2037dda2a736b1497dc13231b4dee
2015-10-14 11:32:44 +05:30
Nigel Babu fabdcab137 Backed out changeset 9e69375c47ed (bug 1209801) for suspicion of Android reftest bustage ON A CLOSED TREE 2015-10-12 09:43:06 +05:30
Jamie Nicol a4433bab57 Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow
Big-image textures (where multiple textures are tiled together to act as
a single larger texture, e.g. TiledTextureImage) were in some cases
being used to back the TextureSources associated with each Tile in a
TiledLayerBuffer. CompositorOGL was unaware of this, so when compositing
would only render the first tile in each big image, stretching it to the
size of the entire big image.

It doesn't make much sense to allow tiling-within-tiling, so set the
DISALLOW_BIGIMAGE flag for textures created for use with TiledLayerBuffers.
---
 gfx/layers/client/SingleTiledContentClient.cpp | 2 +-
 gfx/layers/client/TiledContentClient.cpp       | 2 +-
 gfx/layers/composite/TextureHost.cpp           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
2015-10-11 18:13:10 +02:00
Nicholas Nethercote 0f5722f4da Bug 1211324 (part 5) - Remove GraphicsFilter and gfxGraphicsFilter. r=mattwoodrow. 2015-10-05 17:18:10 -07:00
Nicholas Nethercote 4fc2610c3c Bug 1211324 (part 4) - Replace GraphicsFilter constants with gfx::Filter equivalents. r=mattwoodrow.
The conversion is as follows:

- GraphicsFilter::FILTER_NEAREST == gfx::Filter::POINT
- GraphicsFilter::FILTER_GOOD    == gfx::Filter::GOOD
- GraphicsFilter::FILTER_BEST    == gfx::Filter::LINEAR

Also typedef GraphicsFilter to gfx::Filter; this will be removed in the next
patch.

These changes mean ToFilter() and ThebesFilter() are no longer needed.
2015-10-05 17:12:46 -07:00
Jim Mathies 4f6da4f6c9 Bug 1137944 - Move plugin window metrics updates to a point during comososition where we know the remote layer tree is hooked up to the chrome layer tree. r=matt.woodrow 2015-10-06 14:23:24 -05:00
Jim Mathies ef553da542 Bug 1196539 - Apply plugin config using AutoResolveRefLayers during composition. r=matt.woodrow 2015-10-06 14:23:24 -05:00
David Anderson 3716363c72 Remove the static compositor backend variable. (bug 1211109 part 2, r=mattwoodrow) 2015-10-05 23:39:00 -07:00
Botond Ballo 3244f0ea4d Bug 1209964 - In AlignFixedAndStickyLayers(), properly handle the case where a fixed or sticky layer is its own subtree root and has a local transform. r=kats
--HG--
extra : source : f1e0e06914605c33c10931e08e4de614c63dadcb
2015-10-02 20:53:30 -04:00
Botond Ballo 6613119c24 Bug 1201889 - When adjusting fixed and sticky layers in AsyncCompsitionManager, unapply all async transforms on the path from the fixed layer to the layer it's fixed with respect to. r=kats
--HG--
extra : rebase_source : 27fd2449043a6485dabda41a1aebd5a3686d0dd7
extra : source : cd449490efc2341d8ca7891f2d975a0f51db47bf
2015-09-28 20:35:13 -04:00
David Anderson 6f796a3c17 Treat mix-blend-mode layers as transparent for occlusion culling. (bug 1207041, r=mstange)
--HG--
extra : rebase_source : 33afa0174cac1cdb4b83b2e695532b36984974cd
2015-09-30 00:02:00 -07:00
Botond Ballo e9f06a158c Bug 1208661 - Support dumping client-side layer textures without compression. r=BenWa
Compression is used by the profiler, but we need uncompressed textures for the
browser to be able to render them when we include them in the HTML paint dump.

--HG--
extra : rebase_source : 0929ccdc87e9f6643777360571422d904a9e327c
extra : source : ff03d3963ff87cfeac5ebaac1a004d3ebed047e3
2015-09-28 18:51:37 -04:00
Nicholas Nethercote d0c4a9db1b Bug 1208300 (part 4) - Remove gfxRGBA and some related things. r=jwatt.
Hooray!

--HG--
extra : rebase_source : d691b55eef5a8655aa98b81b5398452a5ebe860d
2015-09-24 19:24:16 -07:00
Botond Ballo 1ebccfe52b Bug 1206915 - Move dumping of compositor textures under its own environment variable. r=mattwoodrow
The rationale is that it's broken at least on some platforms (e.g.
TextureHost::GetAsSurface() is not implemented), and moving it under its own
environment variable allows us to use the client-side parts of paint dumping
without crashing while attempting to do the compositor-side parts.

--HG--
extra : source : 5b2f6ad05b647f3ef499074014522339f6c08efa
2015-09-21 18:27:27 -04:00
Nicholas Nethercote ff7df9ad79 Bug 1208283 (part 4) - Change FrameMetrics::mBackgroundColor from gfxRGBA to gfx::Color. r=jwatt.
This removes some ToColor() calls.

--HG--
extra : rebase_source : 05ee3e5aaa784e12c15fa42845864eacec45271f
2015-09-24 18:17:45 -07:00
Nicholas Nethercote 89189f2ced Bug 1208283 (part 2) - Change ColorLayer::mColor, ColorLayerProperties::mColor, ReadbackLayer::mBackgroundColor from gfxRBGA to gfx::Color. r=jwatt.
This avoids some gfxRGBA-to-Color conversions.

--HG--
extra : rebase_source : ba62db5204301e4ab57f05b9f9901f986f5b09aa
2015-09-24 18:16:45 -07:00
Wes Kocher 39cabbcacc Backed out changeset 1da385d6c46b (bug 1021845) for b2g r3 and r7 permafail CLOSED TREE 2015-09-24 12:06:03 -07:00
Morris Tseng 2275dcb794 Bug 1207887 - Fix AsyncPanZoomAnimation, WheelScrollAnimation and TextureHost doesn't compile in non-unified build. r=nical 2015-09-23 18:53:00 +02:00
Markus Stange 6e7d153296 Bug 1021845 - Before compositing, clip the visible region of a layer to the layer's clip rect. r=mattwoodrow
--HG--
extra : commitid : 9ApIorZ6nmP
extra : histedit_source : 0313083254f244855be9663ac6878f8e353086d8
2015-09-23 16:18:29 +02:00
Thinker K.F. Li e1e17a72cb Bug 1097464 - Part 6: Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.

--HG--
extra : rebase_source : 1a894b057a117a8520898c9f83308d92c122b180
2015-09-17 03:31:00 +02:00
Carsten "Tomcat" Book f7534678df Backed out 6 changesets (bug 1097464) for causing OS X 10.10 Reftest Errors
Backed out changeset fbf63ce1ba88 (bug 1097464)
Backed out changeset fdaf4cfa6707 (bug 1097464)
Backed out changeset 727ebd9f744a (bug 1097464)
Backed out changeset 03f03a776042 (bug 1097464)
Backed out changeset 5ec6364b87d7 (bug 1097464)
Backed out changeset 47d056b3af7f (bug 1097464)

--HG--
extra : rebase_source : e2da133b489e4adba373303dad6e559826927e19
2015-09-17 16:24:43 +02:00
Thinker K.F. Li 76109f93c4 Bug 1097464 - Part 6 - Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
Botond Ballo 1f87f52eb8 Bug 1166301 - When applying an async adjustment to a fixed layer, only adjust its mask layer under the same circumstances as its clip rect. r=mattwoodrow
--HG--
extra : rebase_source : 711ec4146313ffa80e52303449d2529bde2c00d0
extra : source : 1981f6bcae100a38af7dc3aa9038f74390e6ef04
2015-08-28 13:57:00 -04:00
Botond Ballo a1d5d090fe Bug 1166301 - Allow async scrolling to move the clip rects of fixed background layers. r=mattwoodrow
--HG--
extra : rebase_source : f176d9c355eeb4b7a88ca7ef3ececf03af2227cc
extra : source : 723c35828fbc080b6e372cfbbf187167db455156
2015-09-04 19:23:19 -04:00
Botond Ballo f5f74997cd Bug 1166301 - Update an old comment in AsyncCompositionManager::AlignFixedAndStickyLayers. r=kats
--HG--
extra : rebase_source : b69104a407c62a3f25e708b172c8e51eac7e9295
extra : source : 2a98e76921bb905d750a2e36e6057a5bb6f4fd41
2015-08-28 15:21:01 -04:00
Bas Schouten c39f9055e3 Bug 1182147: Ensure ImageHost does not attempt to call DrawQuad with an effect unsupported by the compositor. r=nical 2015-09-04 18:31:52 +00:00
Kartikaya Gupta 711b35cb56 Bug 1201581 - Hook up the syncFrameMetrics call to sync metrics info from the compositor to Java-land on each composite. r=rbarker
--HG--
extra : commitid : JByEVaIboTo
2015-09-11 21:58:16 -04:00
Kartikaya Gupta 9ebc137a82 Bug 1201581 - Extract a helper method. r=rbarker
--HG--
extra : commitid : G3fI5OSxBKC
2015-09-11 21:58:16 -04:00
Kartikaya Gupta 653a1da394 Bug 1201529 - Fall back to rootmost metrics if there is no root content document metrics. r=botond
--HG--
extra : commitid : IueYz1Pt0HX
2015-09-11 21:58:15 -04:00
Wes Kocher 2fddaed099 Backed out 3 changesets (bug 1178376) for android reftest bustage CLOSED TREE
Backed out changeset 9394c5f63b56 (bug 1178376)
Backed out changeset 83295d5f54a9 (bug 1178376)
Backed out changeset 5e1c6511123a (bug 1178376)
2015-09-11 11:20:23 -07:00
James Willcox fd1ffff272 Bug 1178376 - Optionally fade in new progressively painted tiles r=nical 2015-09-11 09:09:51 -05:00
Kartikaya Gupta aad457aa8e Bug 1201625 - Special-case B2GDroid since it doesn't have a root content document. r=rbarker
--HG--
extra : commitid : HyFaXHFS3vH
2015-09-03 23:18:52 -04:00
Kartikaya Gupta e824af9852 Bug 1200399 - Only send the RCD's metrics to Java-land for fennec-apz. r=rbarker
--HG--
extra : commitid : GQyuAXJf3iE
2015-09-02 16:31:06 -04:00
Kearwood (Kip) Gilbert cbc7ba3ddb Bug 1157984 - Part 3: Correct bounding box transformations to support projections and correct clipping when transforming behind the camera,r=vlad
- Update callsites of Matrix4x4::TransformBounds to use
  Matrix4x4::TransformAndClipBounds.

--HG--
extra : rebase_source : a1aa889af56e404b7ca5c7125021171e67a0b8bf
2015-08-06 17:26:09 -07:00
Kevin Wern 368ce48f75 Bug 1173521 - Properly handle unapplying 3D projective transforms to rectangles in APZ code. r=botond
The untransformation is done using the newly added UntransformTo() functions
which call Matrix4x4::ProjectRectBounds(), which returns an empty rectangle
if the result is not at least partially on the positive side of the w = 0 plane.

UntransformTo() returnis the transformed rectangle if it's not empty, and
Nothing() otherwise, making callers check for this case.

The patch also adds some assertions to places where we apply transforms we
know should be 2D (and thus didn't switch to use UntransformTo()), checking
that the transforms are in fact 2D.

--HG--
extra : rebase_source : bbc226f4135c2cf229c4e00dfb017a6c9c078391
extra : source : c2732f62a3b9a5246801aa000ce572ee07f53481
2015-08-28 12:00:29 -04:00