Commit Graph

139 Commits

Author SHA1 Message Date
Lee Salzman
794a175c80 Bug 1228188 - ifdef around Skia GetMaxSurfaceSize usage. r=eihrul 2015-11-25 22:21:40 -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
Jeff Gilbert
19d84fb0fe Bug 1221822 - Finish the WebGL texture refactor. r=kamidphish,mattwoodrow,bz 2015-11-24 20:15:29 -08:00
Phil Ringnalda
71a6f5da62 Back out changeset 2f614bcd9405 (bug 1221822) for test_conformance__extensions__ext-sRGB.html and test_webgl2_alpha_luminance.html failures 2015-11-23 21:55:59 -08:00
Jeff Gilbert
87397c265b Bug 1221822 - Finish the WebGL texture refactor. r=kamidphish,mattwoodrow,bz 2015-11-23 19:27:13 -08:00
Lee Salzman
d75fbddd08 Bug 1223740 - enforce max surface size for DrawTargetSkia. r=bas 2015-11-19 13:35:31 -05:00
Nicolas Silva
578a8ccc95 Bug 1224254 - Don't try to allocate unreasonably large textures. r=Bas 2015-11-18 16:59:11 +01:00
Nicholas Nethercote
c4f06efc4b Bug 1219476 (part 4) - Replace PRLogModuleInfo usage with LazyLogModule in gfx/. r=erahm.
--HG--
extra : rebase_source : 5cfe22112d606a50459212048fd69702afbb6d6d
2015-10-29 15:48:20 -07:00
Mason Chang
9e9747858c Backout bug 842894 for lack of skia documentation. r=me 2015-10-28 15:17:04 -07:00
Mason Chang
f9083bce99 Bug 842894 - Support DirectWrite using the Skia backend. r=bas 2015-10-28 14:54:54 -07:00
Ted Mielczarek
fc136257e3 bug 1170987 - Fix gfx/2d to build on iOS. r=jrmuizel 2015-10-28 14:10:24 -05: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
Milan Sreckovic
07eeb05f0f Bug 1213007 - Part 1. Implementing gfxCrash. r=dvander 2015-10-14 08:24:00 +02:00
Olivier Brunel
11e774d18d Bug 1194631 - Make firefox build with --disable-logging. r=jrmuizel 2015-09-22 17:39:12 +02:00
Milan Sreckovic
d7bc700e96 Bug 1200021 - crash in mozilla::layers::ContentClientDoubleBuffered::FinalizeFrame(nsIntRegion const&): Diagnostics to get more data. r=bas 2015-09-19 11:19:07 +02:00
Lee Salzman
01cdb40ced Bug 1004489 - propagate Cairo font AA settings to Skia font. r=gw280 2015-09-02 14:12:32 -04:00
David Anderson
b18f329c76 Refactor graphics device initialization on Windows. (bug 1183910 part 1, r=mattwoodrow,bas)
This patch addresses a number of inconsistencies in the device initialization process, as well as simplifying it for future use. All device decisions are now explicitly made up-front during startup, rather than implicitly or on-demand. In addition a number of restrictions have been placed on when we can construct devices.

Full change list:
 (1) We no longer attempt to use D3D11 if acceleration is disabled or D3D9 is preferred. This is a departure from our previous behavior, where we would construct these devices but then not use them as a compositor backend.
 (2) D3D11 startup no longer creates a content device (this is reserved for D2D initialization).
 (3) D2D is only attempted if we managed to create a D3D11 compositor device. This is a departure from previous behavior where if D3D11 was not used for compositing, we could still create its machinery to use D2D as a content backend.
 (4) D2D 1.1 initialization is now directly responsible for creating a D3D11 content device.
 (5) D2D 1.0 and 1.1 logic have been disentangled for clarity.
 (6) UpdateRenderMode() has been split up, so we can update backend prefs out of band with device resets.
 (7) mUseGDIFonts and mUseDirectWrite have been removed as their state was confusing. Instead, D2D now depends on DWrite initialization succeeding. If later we fail to get a DWrite font list, we revert our decision to use Direct2D.
 (8) Device resets now clear a little more state, including the devices set in Moz2D Factory.
 (9) We no longer create a DWrite text analyzer as it was unused.
2015-07-28 16:52:54 -07:00
Birunthan Mohanathas
a8939590de 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
Nathan Froyd
974d8120f2 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
Nathan Froyd
db188ea282 Bug 1160485 - remove implicit conversion from RefPtr<T> to TemporaryRef<T>; r=ehsan
Having this implicit conversion means that we can silently do extra
refcounting when it's completely unnecessary.  It's also an obstacle to
making RefPtr more nsRefPtr-like, so let's get rid of it.
2015-05-01 09:14:16 -04:00
Nathan Froyd
c24f5f4e7c Bug 1116905 - part 3 - remove dependence on implicit conversion from T* to TemporaryRef<T>, gfx changes; r=jrmuizel 2015-04-30 15:20:30 -04:00
Eric Rahm
67b91ff53a Bug 1162748 - Remove instances of #ifdef PR_LOGGING in graphics. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-08 14:37:01 -07:00
Nicolas Silva
6a32ce3434 Bug 1155626 - Don't assume that Factory::GetD2D1Device returns a non-null device and add some gfxCriticalLog. r=Bas 2015-04-22 12:02:01 +02:00
David Anderson
6d2ea830bf Implement GetMaxTextureSize in the basic compositor. (bug 1135883, r=mattwoodrow)
--HG--
extra : rebase_source : 2185c8fd0b891d5ef296b92b3af7009b2f6fa72e
2015-02-24 13:39:01 -08:00
Chris Double
f675786729 Bug 1129718 - Fix build error when using enable-debug and disable-logging - r=Bas 2015-02-05 16:25:38 +13:00
Milan Sreckovic
5c1754eb7a Bug 1088833 - A bit of a clean up of warnings, and catch bad draw target in the d3d11 canvas case. r=bschouten 2015-01-20 12:47:29 -05:00
Bas Schouten
a31d3a0bdc Bug 1118328 - Part 1: Expose DoesBackendSupportDataDrawTarget function to test backend capabilities. r=jrmuizel 2015-01-07 22:58:20 +01:00
Wes Kocher
8d58942592 Backout 0d091f3311b4 (bug 1118328) for build bustage on a CLOSED TREE 2015-01-07 16:54:14 -08:00
Bas Schouten
9ab9d86962 Bug 1107718: Properly deal with a D3D11 device reset. r=nical 2015-01-08 00:10:49 +00:00
Bas Schouten
e0d4cad40e Bug 1118328 - Part 1: Expose DoesBackendSupportDataDrawTarget function to test backend capabilities. r=jrmuizel 2015-01-07 22:58:20 +01:00
Ryan VanderMeulen
20d7991ef8 Bug 1114577 - GFX cleanups now that Windows SDK 8.1 is the minimum supported version. r=jmuizelaar, r=glandium 2015-01-07 11:32:07 -05:00
Milan Sreckovic
8445ba0749 Bug 1101685 - Optionally assert in loggers, default to true on gfxCriticalError. Clean up the calls where large texture sizes were triggering the asserts in tests. r=nical 2014-12-17 17:54:04 -05:00
Carsten "Tomcat" Book
f901cbe58a Backed out changeset 8b751f12a3ad (bug 1101685) for windows 7 debug crashtest/reftest crashes 2014-12-17 12:56:04 +01:00
Milan Sreckovic
0b0239db58 Bug 1101685 - Optionally assert in loggers, default to true on gfxCriticalError. Clean up the calls where large texture sizes were triggering the asserts in tests. r=nical 2014-12-16 13:22:26 -05:00
Neil Rashbrook
dc12b131f1 Bug 1101130 Followup to add a missing #ifdef r=Bas 2014-11-23 23:53:00 +00:00
Nicolas Silva
cc878d2bd9 Bug 1086670 - Add some gfxCriticalError logs around DrawTarget creation. r=Bas 2014-11-20 15:48:07 +01:00
Bas Schouten
a3145d15a9 Bug 1101130: Make Direct2D 1.1 clean up its resources on shutdown. r=jrmuizel 2014-11-20 00:16:48 +00:00
Milan Sreckovic
1fa8d3a91b Bug 1074952 - Part 3. Redo the const values and optimize for the case where we decide runtime not to log messages. Move the decision about newline to OutputMessage. Make [GFX#] the default automatic prefix. r=bschouten 2014-10-24 13:54:26 -04:00
Milan Sreckovic
e189fc86de Bug 1074952 - Part 1. Expose the level of logging as a preference. r=bschouten 2014-10-24 13:54:20 -04:00
Markus Stange
326a66b75b Bug 1055622 - Add support for specifying the font smoothing background color to Moz2D. r=Bas, r=jrmuizel 2014-10-24 18:32:23 +02:00
Nicholas Nethercote
75bb32cc85 Bug 1083624 - Fix assertion failure in Factory::GetDirect3D10Device(). r=bas.
--HG--
extra : rebase_source : e28b1575b8bd4706d7d203696a1280c76e103ef6
2014-10-16 19:02:51 -07:00
Nicolas Silva
4529e9a4ce Bug 1068613 - Part 1: Add gfxCriticalError() log to Moz2D. r=bas 2014-09-17 23:23:02 +02:00
Matt Woodrow
f82a8dfeee Bug 1046550 - Part 2: Allow creating D2D 1.1 DrawTargets for D3D11 textures. r=bas 2014-09-14 23:51:27 +02:00
Bas Schouten
89390bcff9 Bug 1066811: Add a SupportsD2D1() method to the Moz2D factory. r=jrmuizel 2014-09-14 23:51:26 +02:00
Michael Wu
4079a1f9ad Bug 1063733 - Optimize DataSourceSurface allocation, r=bas,seth 2014-09-10 17:54:16 -04:00
Robert O'Callahan
b54cad168f Bug 1063754. Cache result of Factory::HasSSE2(). r=bas
--HG--
extra : rebase_source : 3d25afdc6d679303ea1b73cc9ef1dbd9b971c5c0
2014-09-06 16:16:06 +12:00
Milan Sreckovic
4455d895e8 Bug 1033310: Handle CreateDataSourceSurface* returning nullptr. f=nsilva, r=bschouten 2014-08-27 11:57:43 -04:00
zhoubcfan
0d75074051 Bug 891709 - Fix build bustage in gfx/2d/Factory.cpp when Skia is disabled. r=gw280 2014-05-03 04:13:00 -04:00
Benjamin Smedberg
7fbcec606a Bug 768395 - Crash in CDevice::DriverInternalErrorCB because the d3d device is set to crash on error instead of merely returning error codes. Explicitly set the exception mode on device creation, and assert it every time we get it again. r=jrmuizel 2014-06-17 13:00:13 -04:00