Commit Graph

309 Commits

Author SHA1 Message Date
Matt Woodrow
d84624c2bb Bug 1217225 - Differentiate between images optimized for skia and skia-gl in the CanvasImageCache. r=mstange 2015-11-04 15:12:24 +13:00
Birunthan Mohanathas
ac37dec517 Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nicholas Nethercote
7f19b68d7f Bug 1209812 (part 3) - Rename SurfaceFormat::R5G6B5 as R5G6B5_UINT16. r=Bas. 2015-10-22 23:01:31 -07:00
Nathan Froyd
dd5a328e65 Bug 1218488 - clarify buffer ownership for nsICanvasRenderingContextInternal::GetBuffer; r=Bas,baku
This patch started life as making ImageEncoder.cpp:EncodingRunnable not
use nsAutoArrayPtr, but the API effects rippled out from there.  On the
whole, I think using UniquePtr throughout has made the code clearer.
2015-10-26 14:31:12 -04:00
Milan Sreckovic
4573a38d69 Bug 1217550 - In debug build, drop a note if we use SkiaGL canvas. Simplify logging defines and flags for non-critical errors. r=benwa 2015-10-23 14:08:00 +02:00
Birunthan Mohanathas
d382a21947 Bug 1217320 - Remove more XPIDL signature comments in .cpp files. r=froydnj
Comment-only, DONTBUILD.
2015-10-27 06:54:25 +02:00
Nathan Froyd
ac8d913f89 Bug 1217662 - part 2 - move mozilla::layers::LayerUserData to a separate header; r=mattwoodrow
Having to include all of Layers.h just to get at the definition of
LayerUserData is inconvenient, especially as most of the interesting
things in Layers.h can be forward-declared.  Let's move LayerUserData to
its own header, so clients can include a small header for that,
forward-declare anything else they need from Layers.h, and reduce header
bloat.
2015-10-22 16:04:35 -04:00
Sotaro Ikeda
d130ed9c8e Bug 1206763 - Enable SkiaGL canvas on gonk r=mattwoodrow 2015-10-20 01:35:00 -07:00
Olli Pettay
c5e7d8e13a Bug 1215072 - throw in case dictionary initialization fails in canvas.getContext, r=baku 2015-10-18 14:14:22 +03:00
Nathan Froyd
4e6d8f6705 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
2015-10-18 01:24:48 -04:00
Nathan Froyd
bf7f6dda03 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
Phil Ringnalda
056f272e3c Back out changeset 09e059daabae (bug 1215072) for adding a permaorange-on-b2g test
CLOSED TREE
2015-10-16 18:42:41 -07:00
Olli Pettay
4b81096b67 Bug 1215072 - throw in case dictionary initialization fails in canvas.getContext, r=baku 2015-10-16 22:52:11 +03:00
Jed Davis
cdcb6ac336 Bug 1213491 - Change CanvasRenderingContext2D::ContextState::clipsPushed to an nsTArray. r=nical 2015-10-09 16:20:00 +02:00
Nicholas Nethercote
e04159e24b 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
Milan Sreckovic
9cd4feeaac Bug 1205900 - Compare context and canvas element sizes before extracting the data. r=gwright 2015-10-02 09:18:26 +02:00
Nicholas Nethercote
c70257d296 Bug 1209206 (part 1) - Remove mgfx namespace synonym.
CanvasRenderingContext2D.cpp has a |namespace mgfx = mozilla::gfx;| synonym.
Since the entire file is within the |mozilla| namespace we can use |gfx::Foo|
anyway, which is shorter than |mgfx::Foo|.
2015-09-28 12:37:18 -07:00
Kathy Brade
c473141fc9 Bug 232227 - Do not expose system colors to CSS or canvas. r=jmuizelaar r=enndeakin tor-r=arthuredelstein 2015-09-25 00:59:00 +02:00
Nicholas Nethercote
0929981996 Bug 1207741 - Remove gfxIntSize. r=nical.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.
2015-09-23 11:49:05 -07:00
Matt Woodrow
295e5cc3c8 Bug 1206161 - Make sure the DrawTarget is available when creating a CanvasLayer so that we can check for SkiaGL. r=Bas 2015-09-23 20:30:06 -04:00
Bas Schouten
bfcc88740c Bug 1206076: Use a specialized PersistentBufferProvider for Canvas2D when using a SkiaGL DrawTarget. r=jrmuizel 2015-09-21 00:30:59 +02:00
Andreas Pehrson
193016035c Bug 1161913 - Part 1 - Add invalidation state for CaptureStream to Canvas and Contexts. r=mt 2015-09-17 11:37:05 +08:00
Lee Salzman
5ffe4543a3 Bug 655328 - clip canvas drawImage source/dest rectangles instead of throwing IndexSizeError. r=jmuizelaar 2015-09-11 11:14:32 -04:00
Lee Salzman
1aea8a99f2 Bug 1074733 - Part 1 - Normalize Canvas 2D rects to be positive by flipping negative width or height. r=jmuizelaar 2015-09-11 11:29:17 -04:00
John Daggett
f1d75570fb Bug 1203809 - pass textperf obj into gfxFontGroup constructor. r=m_kato 2015-09-11 13:24:33 +09:00
Bas Schouten
bbbdf00ad7 Bug 1192159: Do not forget about the transform when not using an active target. r=jrmuizel 2015-09-02 12:20:59 +00:00
Lee Salzman
1b79409525 Bug 1190705 - Ensure that canvas 2d matrix transforms are finite. r=Bas, r=jrmuizel 2015-08-05 18:48:25 -04:00
Markus Stange
6c0342f36a Bug 1164766 - Clean up error checking in CanvasRenderingContext2D. r=mats 2015-07-14 16:59:12 -04:00
Lee Salzman
3fc9ce856e Bug 1191608 - initialize element to null in CanvasRenderingContext2D::DrawImage. r=bas 2015-08-06 12:07:09 -04:00
Bas Schouten
4e6c7397b3 Bug 1188752: Ensure persistence of DrawTarget when using InitializeWithSurface. r=jrmuizel 2015-08-05 19:00:03 +00:00
Kaku Kuo
b9757ebfab Bug 1044102 - Part 2 - Support ImageBitmap as CanvasImageSource. r=smaug 2015-07-30 20:49:00 +02:00
Matt Woodrow
0773bd7723 Bug 1150944 - Remove objects that have been unlinked by the cycle collector from the demotable context list. r=ehsan 2015-07-29 16:35:55 -04:00
Wes Kocher
47eb6fb630 Backed out 6 changesets (bug 1150944, bug 1034370) for build failures in WebGLContext.cpp CLOSED TREE
Backed out changeset e2a6160242e5 (bug 1150944)
Backed out changeset 1c510537d20b (bug 1150944)
Backed out changeset 7ae813666ed5 (bug 1150944)
Backed out changeset 2f29ac2e31cd (bug 1150944)
Backed out changeset bf7681b1567e (bug 1150944)
Backed out changeset 79c6b8d014d2 (bug 1034370)
2015-07-29 14:16:17 -07:00
Matt Woodrow
b80a45066c Bug 1150944 - Remove objects that have been unlinked by the cycle collector from the demotable context list. r=ehsan 2015-07-29 16:35:55 -04:00
Lee Salzman
d5e7ce7cb2 Bug 1186689 - check for OOM on destination array before mapping source to avoid needing unmap. r=bas 2015-07-23 11:39:22 -04:00
Mike Hommey
654f463fd7 No bug - Remove outdated comment and additional comment questioning its relevance. r=me DONTBUILD
The first half of the comment was added in bug 534467.
At that point the code looked like:
  // NOTE! dst is the same as src, and this relies on reading
  // from src and advancing that ptr before writing to dst.
  PRUint8 *src = aData;
  PRUint8 *dst = aData;

It was in content/canvas/src/nsCanvasRenderingContext2D.cpp.

Then bug 651858 added nsCanvasRenderingContext2DAzure.cpp, starting
from nsCanvasRenderingContext2D.cpp. The comment was kept, but the
code was modified such that src and dst were different things.

Then bug 734668 removed nsCanvasRenderingContext2D.cpp, and finally
renamed nsCanvasRenderingContext2DAzure.cpp to CanvasRenderingContext2D.cpp.

The comment questioning the relevance of the first comment was added
in bug 764125, when the file was still nsCanvasRenderingContext2DAzure.cpp.
2015-07-26 11:39:47 +09:00
Jeff Gilbert
b1f1e1a811 Bug 1182371 - Misc WebGL cleanup. - r=kamidphish 2015-07-14 17:37:28 -07:00
Lee Salzman
1c4d89ab84 Bug 1183363 - Make EnsureWritablePath and EnsureUserSpacePath always imply EnsureTarget. r=Bas 2015-07-14 00:01:29 -04:00
Milan Sreckovic
79d8766296 Bug 1177726 - Inflate the bounds when stroking the canvas text. r=jmuizelaar 2015-07-10 12:04:56 -04:00
Botond Ballo
d61e3f0a5b Bug 1181832 - Keep gfxPrefs.h out of header files. r=kats 2015-07-13 11:53:10 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Birunthan Mohanathas
539a24f3db Bug 1182824 - Part 2: Make ContextState::dash a nsTArray. r=mattwoodrow 2015-07-12 23:19:12 -07:00
Birunthan Mohanathas
cf84ed7cd3 Bug 1182824 - Part 1: Use move assignment rather than copy assignment with ContextState::dash. r=mattwoodrow 2015-07-12 23:19:12 -07:00
Carsten "Tomcat" Book
58d958e306 Backed out changeset 7bffe6c8fd4d (bug 1177726) for test regressions in 1177726-text-stroke-bounds.html on a CLOSED TREE 2015-07-09 13:02:13 +02:00
Milan Sreckovic
d6dd99fa99 Bug 1177726 - Inflate the bounds when stroking the canvas text. r=jmuizelaar 2015-07-08 07:45:00 +02:00
Robert O'Callahan
74bf60da8a Bug 1143575. Replace ImageContainer Lock methods with simplified AutoLockImage. r=nical 2015-03-27 12:07:53 +13:00
Nathan Froyd
92a8124fef Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Bas Schouten
29b9bb92b6 Bug 1167235 - Part 3: Switch CanvasRenderingContext2D to use the new BufferProvider API. r=nical 2015-06-19 01:07:21 +02:00
Andreas Pehrson
4ff090a008 Bug 1162357 - Convert some usage of DataSourceSurface::GetData() to Map(). r=bas 2015-06-10 19:01:00 +08:00
Markus Stange
423991210c Bug 1163105 - Flush frames before building the filter. r=roc 2015-06-09 18:49:17 -04:00