Commit Graph

104 Commits

Author SHA1 Message Date
Joe Drew
e10ce649b4 Bug 867774 - Create a FrameBlender class that holds on to an image's frames and can blend frames together on demand (while leaving the decision as to which frames to external users). r=seth
FrameBlender steals RasterImage::mFrames, RasterImage::DoComposite, and the
RasterImage blending helper functions CopyFrameImage, DrawFrameTo, and
ClearFrame. Now RasterImage doesn't hold on to its frames directly, and defers
all blending to FrameBlender::DoComposite.

--HG--
extra : rebase_source : f03736045f967f0947441703e54135b98d9dcf54
2013-06-17 16:49:04 -04:00
Joe Drew
4e275ea54e Bug 867774 - Make RasterImage's frame blending helper functions threadsafe. r=jrmuizel
--HG--
extra : rebase_source : 4fbf269ff3fcc5d8a88102b20fa7cc09f1c1bc03
2013-06-14 09:42:01 -04:00
Joe Drew
43351f7d0c Bug 876499 - If a looping image is being asked to advance to a time that is more than one loop in the future, skip the intermediate frames and simply jump to the next multiple of the loop count. r=seth
When there is a long delay between calls to RequestRefresh(), for example
because an animated image has been scrolled off the screen, the current
animation frame time can be significantly behind the current time, requiring a
huge number of composites to catch up. This patch makes us skip those
intermediate composites, jumping to the closest multiple of the image's loop
time.

--HG--
extra : rebase_source : 3e9ef5bd3ad3f1e9d95def99e6bb546474a583c9
2013-06-07 15:28:24 -04:00
Joe Drew
8ddd13e205 Bug 868871 - Don't do any invalidation from under RasterImage::GetImageContainer(), which is called while painting. r=seth 2013-05-09 09:36:57 -04:00
Timothy Nikkel
fe2b9609be Bug 865993. For layerized images GetImageContainer has the same meaning as Draw()'ing the image, and Draw will not be called on the image, so send the unlocked draw notification there too. r=joedrew 2013-04-26 14:58:17 -05:00
Joe Drew
615a963620 Bug 832400 - Add an imgIContainer flag HIGH_QUALITY_SCALING that controls whether to use the high quality scaler, and only use it when we're drawing to a window. r=tn 2013-04-25 18:08:58 -04:00
Timothy Nikkel
d7a8e833c8 Bug 863970. Remove some dead code in imagelib. r=seth 2013-04-24 23:37:00 -05:00
Joe Drew
b0b3600214 Bug 857367 - Remove DecodePool::mShuttingDown, which is unnecessary. r=seth
--HG--
extra : rebase_source : a323f90de5d1616f50a6d9aa717c7b423f230c92
2013-04-17 20:05:19 -04:00
Seth Fowler
a30f765ef8 Bug 857367 - Make it safe to call RasterImage::DecodePool::RequestDecode off the main thread. r=tn
--HG--
extra : rebase_source : c7c91e08ca0ca200d5c3c4cb24475a6445748842
2013-04-04 18:01:41 -07:00
Seth Fowler
9b33d58640 Bug 856486 (Part 2) - Buffer the last fully-decoded frame for multipart images. r=jrmuizel 2013-04-03 19:19:38 -07:00
Seth Fowler
fb6852294b Bug 857275 - Remove RasterImage::FrameUpdated. r=jrmuizel
--HG--
extra : rebase_source : 4d8209630bb8da562530a817f43cfd49243a379a
2013-04-02 16:42:20 -07:00
Luis de Bethencourt
390ad04106 Bug 855712 - Remove trailing whitespaces in image/src/*cpp. r=jmuizelaar 2013-03-29 16:14:19 -04:00
Luis de Bethencourt
7c0ab1999f Bug 795376 - Use high-quality scaler for upscaling raster images [r=joedrew] 2013-03-24 12:37:21 -04:00
Joe Drew
87a1590a0d Bug 716140 - Implement multithreaded decoding using a thread pool. r=seth 2013-03-01 18:17:24 -05:00
Trevor Saunders
8a8a4401c1 backout 275cd395f9fa and 9e4b22851976 bug 716140 for breaking linux tp on a CLOSED TREE 2013-03-24 15:43:20 -04:00
Joe Drew
ea933fd5e2 Bug 716140 - Implement multithreaded decoding using a thread pool. r=seth 2013-03-01 18:17:24 -05:00
Wes Johnston
4faa56943f Bug 419588 - Add support for a resolution media fragment. r=seth 2013-03-22 16:12:40 -07:00
Joe Drew
fbc1011912 Bug 716140 - Allocate frames asynchronously with a separate worker dispatched to the main thread. r=seth
--HG--
extra : rebase_source : 116fa383362c5ff7016e81c345645fa2607cf9a3
2013-02-27 14:23:08 -05:00
Joe Drew
d38580343a Bug 716140 - Set metadata directly on frames. r=seth
--HG--
extra : rebase_source : d3899816bb6b5f816955a53c2cd7ad1bf8ad788a
2013-02-27 14:23:08 -05:00
Joe Drew
9a16ada25b Bug 716140 - Handle errors correctly. r=seth
--HG--
extra : rebase_source : 97f714b139508092ef5a733313f10e281b0bc6fe
2013-02-01 20:06:34 -05:00
Joe Drew
4225ddb497 Bug 716140 - Always run a size decode before doing a full decode so we know the size before decoding. r=jlebar
--HG--
extra : rebase_source : de3388c861b00b135b658ea9a9225b0cc58e389a
2013-01-31 13:38:24 -05:00
Joe Drew
13684808f2 Bug 716140 - Make mImageData and mColormap (and their sizes) protected members of mozilla::image::Decoder rather than the leaf classes.
--HG--
extra : rebase_source : d4f506a669d5b18a33676434ad0cc512216956d5
2013-01-28 12:26:36 -05:00
Joe Drew
b2712b400e Bug 716140 - Create a clone imgStatusTracker on every asynchronous decoding event, and replay the difference between that imgStatusTracker and the image's current status tracker when decoding completes. r=seth
* * *
[mq]: test-fixes
* * *
[mq]: undefer-on-remove
* * *
imported patch notify-in-sequence

--HG--
extra : rebase_source : 01a495a64cb4b6a8076a3550c254ddd804f53e80
2013-01-18 16:47:18 -05:00
Joe Drew
c5a2a76f54 Bug 716140 - Heap-allocate DecodeRequests so we know when we're still decoding an image. r=seth
--HG--
extra : rebase_source : c03271201f48efb29972a1b6834036638029810c
2013-01-18 16:47:18 -05:00
Joe Drew
eeeeac4775 Bug 716140 - Don't call Set* methods directly on images from decoders; call them from the Decoder base class. r=seth
--HG--
extra : rebase_source : 9f7ec3cb8b8393053abbc872d706a6304a157d55
2012-12-19 15:11:42 -05:00
Seth Fowler
b4b99568d2 Bug 846132 (Part 3) - Remove imgIContainer::CopyFrame. r=jdm 2013-03-05 15:39:48 -08:00
Seth Fowler
275786c6bf Bug 704059 - Part 2: Let images call imgStatusTracker::OnStopRequest. r=joe 2013-02-13 18:41:10 -08:00
Seth Fowler
d0dff7d0d7 Bug 840841 - Remove mObserver from RasterImage and VectorImage. r=joe 2013-02-12 19:00:03 -08:00
Seth Fowler
fbb7912f96 Bug 840843 - Rename RasterImage::eShutdownIntent_Interrupted to eShutdownIntent_Unneeded. r=joe 2013-02-13 13:41:45 -08:00
Seth Fowler
0762d9279f Bug 836155 - Replace GetCurrentFrameRect() with FrameRect(aWhichFrame). r=joe 2013-02-04 16:06:14 -08:00
Seth Fowler
226451c23b Bug 828176 - Make RasterImage::GetURIString work again. r=joe 2013-01-30 12:11:20 -08:00
Ryan VanderMeulen
dc16d1fd40 Backed out changeset 25ea9ac37380 (bug 828176) for crashes. 2013-01-30 18:16:09 -05:00
Seth Fowler
9a2fc230ab Bug 828176 - Make RasterImage::GetURIString work again. r=joe 2013-01-10 18:15:05 -08:00
Seth Fowler
1393f1c0ee Bug 822526 - Turn mozilla::image::Image into an interface. r=joe 2012-12-19 14:24:32 -08:00
Seth Fowler
ae0e17ea94 Bug 821023 - imgStatusTracker should not know about imgRequest. r=joe 2012-12-19 13:28:54 -08:00
Joe Drew
ca3f4c5e2b Bug 716140 - Convert the XPCOM imgIDecoderObserver interface into a private C++ interface, imgDecoderObserver, so we can more easily make changes to it. r=jrmuizel 2012-12-18 11:37:15 -05:00
Joe Drew
9269bc2fed Bug 716140 - Merge imgIContainerObserver and imgIDecoderObserver since they aren't used in different places any more. r=jrmuizel 2012-12-18 11:37:15 -05:00
Seth Fowler
412140da91 Bug 816374 - Don't export RasterImage from imagelib. r=joe 2012-12-17 18:35:46 -08:00
Seth Fowler
42c35e604d Bug 815471 - Don't assume that all imgIContainers are either a RasterImage or a VectorImage. r=joe 2012-12-17 14:05:18 -08:00
Ryan VanderMeulen
1f6c96bff1 Backed out 4 changesets (bug 815471, bug 821023, bug 816374, bug 816362) for reftest failures. 2012-12-16 21:13:35 -05:00
Seth Fowler
b5e9a2a186 Bug 821023 - imgStatusTracker should not know about imgRequest. r=joe 2012-12-14 15:42:18 -08:00
Seth Fowler
e6f67108a3 Bug 816374 - Don't export RasterImage from imagelib. r=joe 2012-12-03 16:22:32 -08:00
Seth Fowler
f8a0d139cd Bug 815471 - Don't assume that all imgIContainers are either a RasterImage or a VectorImage. r=joe 2012-12-13 16:06:31 -08:00
Joe Drew
da2ef18bab Bug 802390 - Gracefully handle shutting down a decoder that hasn't had a chance to do any work. r=jrmuizel 2012-11-16 11:43:24 -08:00
Seth Fowler
0a022d333f Bug 803349 - Restore NS_DECL_IMGICONTAINER to VectorImage / RasterImage. r=joe 2012-10-19 13:27:11 -07:00
Joe Drew
84d6a72931 Bug 801358 - Part 2 - Account for downscaled frames in about:memory. r=jrmuizel
--HG--
extra : rebase_source : c5a507f0f5d4fa5b700f19cdb359fd8281baa80d
2012-10-13 22:17:40 -04:00
Joe Drew
21be03f840 Bug 795940 - Part 0.5 - Move ScaleRequest and the runners into the CPP file so consumers don't have to care about them. BY THE DEMAND OF AND r=jrmuizel
--HG--
extra : rebase_source : eeb96eb9680017d2be9ee99ac0c760249a74bcbe
2012-10-12 18:24:47 -04:00
Joe Drew
1f866d258a Bug 795940 - Part 0.3 - Support stopping requests (on a best-effort basis). r=jrmuizel
--HG--
extra : rebase_source : 793d04fa7954bbf060f01436bc0d257edd05a28a
2012-10-12 18:20:22 -04:00
Joe Drew
dace21eaac Bug 795940 - Part 0.2 - Change from singleton ScaleWorker and DrawWorker (and on-demand allocated ScaleRequest) to nsIRunnables, allocated on demand, that know how to run themselves. r=jrmuizel
--HG--
extra : rebase_source : 9b98ed62eaf5fdddf6ee117ec5f26d049d752eaf
2012-10-12 18:20:19 -04:00
Joe Drew
7a3f9166ff Bug 795940 - Part 0.1 - Allocate ScaleRequests dynamically and only hold on to a ScaleResult in RasterImage. Let ScaleRequests only hold a weak pointer to RasterImage so their lifetimes aren't bound. Finally, make ScaleRequests hold on to references to their surfaces instead of imgFrames. r=jlebar,jrmuizel
--HG--
extra : rebase_source : 335837e469e8318f0a70907060470b0a0e14ef21
2012-10-10 11:35:23 -04:00