Commit Graph

125 Commits

Author SHA1 Message Date
Nicholas Nethercote
56a7e0fc70 Bug 1209812 (part 6) - Convert all gfxImageFormat values to SurfaceFormat equivalents. r=jrmuizel.
This patch:

- Makes the following substitutions (plus necessary namespace qualifiers:

    gfxImageFormat::ARGB32      --> SurfaceFormat::A8R8G8B8_UINT32
    gfxImageFormat::RGB24       --> SurfaceFormat::X8R8G8B8_UINT32
    gfxImageFormat::A8          --> SurfaceFormat::A8
    gfxImageFormat::RGB16_565   --> SurfaceFormat::R5G6B5_UINT16
    gfxImageFormat::Unknown     --> SurfaceFormat::UNKNOWN

- Changes gfxImageFormat to be a typedef to gfx::SurfaceFormat. This will be
  removed soon.

- Removes gfxCairoFormatToImageFormat() and gfxImageFormatToCairoFormat() and
  replace calls to them with CairoFormatToGfxFormat() and
  GfxFormatToCairoFormat().

- Removes ParamTraits<gfxImageFormat>.

- Add namespace qualifiers to SurfaceFormat instances where necessary.
2016-01-07 20:57:38 -08:00
Bogdan Postelnicu
e672896cef Bug 1230929 - modified the logic in order to prvent null pointer dereference. r=jmuizelaar 2015-12-07 07:36:00 +01:00
Nicholas Nethercote
d3729cd847 Bug 1209812 (part 2) - Remove gfxImageFormat::A1. r=nical.
This value is never written anywhere, so it's not needed, and gfx::Surface
doesn't have an equivalent.
2015-09-28 12:07:44 -07:00
Nicholas Nethercote
93c78b58d8 Bug 1209812 (part 1) - Remove casts between cairo_format_t and gfxImageFormat. r=nical.
cairo_format_t and gfxImageFormat have their equivalent constants in the same
order, so you can just cast between them, which is kind of nasty.

This patch replaces all such casts with explicit conversions via calls to new
conversion functions. These functions will be removed in a subsequent patch.
2015-09-28 21:11:52 -07:00
Nathan Froyd
9c5965b035 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
e504437747 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
Nathan Froyd
d7aa7465a4 Bug 1132966 - use relaxed Atomic integers for tracking graphics surface memory usage; r=njn
Graphics surface memory usage tracking is done manually, with a global
array containing the number of bytes per each type of surface used.
Since the members of the array can be touched by several different
threads, dynamic race checkers such as TSan complain about To assuage
TSan's sensibilities, we need to use atomics with relaxed memory
consistency; this change generates code identical to what we had before,
but the atomic type assures TSan that it's OK to access members on
multiple threads.  We use the relaxed memory consistency to avoid memory
barriers in the generated code.
2015-07-31 22:43:24 -04:00
Nicholas Nethercote
e57cd91501 Bug 1188705 (part 1) - Remove gfxASurface::GetMemoryLocation(). r=seth.
It's unused.
2015-07-28 18:33:41 -07:00
Lee Salzman
d5109076a8 Bug 1170390 - Add gfxASurface::GetSurfaceFormat for retrieving precise surface format where necessary. r=jrmuizel 2015-07-06 22:11:38 -04:00
Lee Salzman
54afeb6c7a Bug 1180246 - Part 1 - remove dependencies on gfxD2DSurface. r=bas 2015-07-02 08:02:51 -04:00
Milan Sreckovic
3096add467 Bug 1019063 - Check for ::CreateDCW failing when printing. r=dvander 2015-06-18 08:18:00 +02:00
Amanda Sambath
89e561e0a6 Bug 1158120 - Replace nsIntSize by mozilla::gfx::IntSize in gfx/thebes. r=nical 2015-05-28 15:00:17 +02:00
Amanda Sambath
5f4fdda30e Bug 1158120 - Replace gfxIntSize by mozilla::gfx::IntSize in gfx/thebes part 1. r=nical 2015-06-01 10:26:19 +02:00
Ehsan Akhgari
33bb32f549 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Ehsan Akhgari
69814cc06d Bug 1118419 - Mark virtual overridden functions as MOZ_OVERRIDE in graphics; r=jrmuizel 2015-01-07 10:09:17 -05:00
Jeff Walden
86ea8f6ecd Bug 953296 - Convert ScopedDeletePtr to UniquePtr in various bits of canvas/graphics/GL code. r=jgilbert
--HG--
extra : rebase_source : cd1e332837ff49199d62805f554bf1123eea334f
2014-01-06 09:49:03 -06:00
Jonathan Watt
92dc7bdbd8 Bug 1031079 - Get rid of the Thebes backed gfxContexts in gfxASurface, removing gfxASurface::WriteAsPNG_internal and its consumers. r=mattwoodrow 2014-06-27 12:19:40 +01:00
Jonathan Watt
488b914f94 Bug 1031055 - Get rid of the Thebes backed gfxContexts in FrameLayerBuilder.cpp, and get rid of gfxASurface::DumpAsDataURL. r=mattwoodrow 2014-06-27 12:19:40 +01:00
Benoit Jacob
adffc9db7b Bug 1028588 - Fix dangerous public destructors in gfx - r=jrmuizel 2014-06-23 14:49:07 -04:00
Nicholas Nethercote
39f29c384a Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Jonathan Watt
eaefe307f9 Bug 1025491 - Remove the DumpAsPNG() code in FilterNodeSoftware.cpp. r=mstange 2014-06-15 01:34:01 +01:00
Jonathan Watt
3d7ecba0f7 Bug 1019681 - Remove gfxASurface's MovePixels() and FastMovePixels() methods and their overrides. r=Bas
--HG--
extra : rebase_source : 49445275b3b6ad94ffb2f9f4375e6a81ebf2842c
2014-06-05 01:03:07 +01:00
Matt Woodrow
59548b38f3 Bug 1003707 - Retain size information for similar surfaces if we can. r=roc 2014-06-03 17:18:25 +12:00
Matt Woodrow
b4ecb7164e Bug 1003707 - Pass surfaces sizes in to CreateSourceSurfaceFromNativeSurface instead of trying to extract it from cairo. r=Bas 2014-05-08 11:23:44 +12:00
Benoit Girard
57af5b5070 Bug 1004898 - WriteAsPNG should use fprintf_stderr. r=mattwoodrow 2014-05-02 01:33:02 -04:00
Birunthan Mohanathas
ff8ce9bd42 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Jonathan Watt
f50a46f108 Bug 985049 - Remove gfxPlatform::SupportsAzureContent() and kill of the resulting dead code. r=mattwoodrow 2014-03-19 10:36:58 +08:00
L. David Baron
4f04bcdc57 Bug 976350 patch 1: Move the contents of nsTraceRefcnt.h into nsISupportsImpl.h. r=bsmedberg
This makes sense since the file no longer contains anything with the
nsTraceRefcnt name in it, and it will allow renaming nsTraceRefcntImpl
back to nsTraceRefcnt.
2014-02-26 13:36:35 -08:00
Birunthan Mohanathas
e81a8f702d Bug 828300 - Replace NS_ARRAY_LENGTH with mozilla::ArrayLength/MOZ_ARRAY_LENGTH. r=ehsan 2014-01-30 13:26:54 -05:00
Benoit Jacob
837160a1ff Bug 959380 - 5/5 - Make gfxMemoryLocation a typed enum - r=jrmuizel
find . -type f | grep -v '\./obj' | grep -v '\.hg' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)GFX_MEMORY_\(IN_PROCESS_HEAP\|IN_PROCESS_NONHEAP\|OUT_OF_PROCESS\)\($\|[^A-Za-z0-9_]\)/\1gfxMemoryLocation::\2\3/g'
2014-01-23 13:26:40 -05:00
Benoit Jacob
93826fc6b0 Bug 959380 - 4/5 - Make gfxContentType a typed enum - r=jrmuizel
find . -type f | grep -v '\./obj' | grep -v '\.hg' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)GFX_CONTENT_\(COLOR\|ALPHA\|COLOR_ALPHA\|SENTINEL\)\($\|[^A-Za-z0-9_]\)/\1gfxContentType::\2\3/g'
2014-01-23 13:26:40 -05:00
Benoit Jacob
3846defaec Bug 959380 - 3/5 - Make gfxSurfaceType a typed enum - r=jrmuizel
find . -type f | grep -v '\./obj' | grep -v '\.hg' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)gfxSurfaceType\(Image\|PDF\|PS\|Xlib\|Xcb\|Glitz\|Quartz\|Win32\|BeOS\|DirectFB\|SVG\|OS2\|Win32Printing\|QuartzImage\|Script\|QPainter\|Recording\|VG\|GL\|DRM\|Tee\|XML\|Skia\|Subsurface\|D2D\|Max\)\($\|[^A-Za-z0-9_]\)/\1gfxSurfaceType::\2\3/g'
2014-01-23 13:26:40 -05:00
Benoit Jacob
3369ca8bb6 Bug 959380 - 2/5 - Make gfxImageFormat a typed enum - r=jrmuizel
find . -type f | grep -v \./obj | grep -v \.hg | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)gfxImageFormat\(ARGB32\|RGB24\|A8\|A1\|RGB16_565\|Unknown\)\($\|[^A-Za-z0-9_]\)/\1gfxImageFormat::\2\3/g'
2014-01-23 13:26:40 -05:00
Birunthan Mohanathas
c293ca84b8 Bug 784739 - Switch from NULL to nullptr in remaining directories; r=ehsan
--HG--
extra : rebase_source : 1ff19b2c8fd0e77fa8e822f5007a9fa3a6b6d474
2014-01-06 10:06:04 -05:00
Nicholas Nethercote
bdfbbf7bcd Bug 947798 (part 2) - Remove MemoryMultiReporter, because it's no longer helpful. r=mccr8.
--HG--
extra : rebase_source : f6f74de69d8c1d79d38b84b19dff5439efc41075
2013-12-07 21:39:47 -08:00
Nicholas Nethercote
803d8a5bcc Bug 943660 (part 2) - Remove remnants of Remove nsIMemoryReporter::name.
--HG--
extra : rebase_source : 900bd1c641b26623cccf14d952b5387223b489eb
2013-12-03 20:01:24 -08:00
Nicholas Nethercote
77419f6a47 Bug 936964 (part 7, attempt 2) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
* * *
Bug 936964 (part 7b) - Fix a use-after-free found by ASan.

--HG--
extra : rebase_source : d38ab6b63e9d576773baf8e55fa4f7182c33915e
2013-11-07 16:35:30 +11:00
Ehsan Akhgari
c3970a73fb Backed out 9 changesets (bug 943660, bug 936964) because of ASAN use-after-free crashes on browser-chrome and mochitest-other
Backed out changeset 85486c4aa3d8 (bug 936964)
Backed out changeset 25312eb71998 (bug 936964)
Backed out changeset 6dbb8333960c (bug 936964)
Backed out changeset da6465ad476f (bug 936964)
Backed out changeset a87ffc992f38 (bug 936964)
Backed out changeset 4ae3a61182db (bug 936964)
Backed out changeset 34e9c3137804 (bug 936964)
Backed out changeset fd1459e71585 (bug 936964)
Backed out changeset 3e8a701d8bdc (bug 943660)

Landed on a CLOSED TREE

--HG--
rename : content/canvas/src/WebGLMemoryTracker.h => content/canvas/src/WebGLMemoryReporterWrapper.h
2013-11-27 20:05:00 -05:00
Nicholas Nethercote
78e4d6490d Bug 936964 (part 7) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
--HG--
rename : content/canvas/src/WebGLMemoryReporterWrapper.h => content/canvas/src/WebGLMemoryTracker.h
extra : rebase_source : 611e8d35907959b163aeced1c4ffe1d265048fe6
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
d8a3b0f0bb Bug 934321 - Add MemoryMultiReporter, a helper class that reduces some boilerplate, and convert all existing multi-reporters to use it. r=wchen.
--HG--
extra : rebase_source : a6110c3558c571b7908b63e8cc7ca21103098d0d
2013-11-06 14:58:20 +11:00
Matt Woodrow
d217eaee69 Bug 922942 - Implement gfxASurface::CopyToARGB32ImageSurface using azure. r=seth 2013-10-16 14:00:31 +13:00
Ehsan Akhgari
b6bef348c1 Bug 924221 - Minimize the #includes in gfx/thebes; r=bjacob
--HG--
extra : rebase_source : af198eb9b9739ce718ba0d16c385624a722cde51
2013-10-07 19:15:59 -04:00
Benoit Jacob
c1d7f88886 Bug 913872 - Take nested enums out of gfxASurface - 1/3 : automatic changes - r=jrmuizel
Generated by these regexes:

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/gfx[A-Za-z0-9_]*Surface\:\:[a-z]*\(\(ImageFormat\|SurfaceType\|ContentType\|MemoryLocation\)[0-9A-Za-z_]*\)/gfx\1/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/gfx[A-Za-z0-9_]*Surface\:\:[a-z]*\(\(CONTENT_\|MEMORY_\)[0-9A-Za-z_]*\)/GFX_\1/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)\(CONTENT_COLOR\|CONTENT_ALPHA\|CONTENT_COLOR_ALPHA\|CONTENT_SENTINEL\|MEMORY_IN_PROCESS_HEAP\|MEMORY_IN_PROCESS_NONHEAP\|MEMORY_OUT_OF_PROCESS\)\($\|[^A-Za-z0-9_]\)/\1GFX_\2\3/g'

find . -name '*.h' -o -name '*.cpp' -o -name '*.mm' | grep -v '\.hg' | grep -v '^\.\/obj' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)\(ImageFormatARGB32\|ImageFormatRGB24\|ImageFormatA8\|ImageFormatA1\|ImageFormatRGB16_565\|ImageFormatUnknown\|SurfaceTypeImage\|SurfaceTypePDF\|SurfaceTypePS\|SurfaceTypeXlib\|SurfaceTypeXcb\|SurfaceTypeGlitz\|SurfaceTypeQuartz\|SurfaceTypeWin32\|SurfaceTypeBeOS\|SurfaceTypeDirectFB\|SurfaceTypeSVG\|SurfaceTypeOS2\|SurfaceTypeWin32Printing\|SurfaceTypeQuartzImage\|SurfaceTypeScript\|SurfaceTypeQPainter\|SurfaceTypeRecording\|SurfaceTypeVG\|SurfaceTypeGL\|SurfaceTypeDRM\|SurfaceTypeTee\|SurfaceTypeXML\|SurfaceTypeSkia\|SurfaceTypeSubsurface\|SurfaceTypeD2D\|SurfaceTypeMax\)\($\|[^A-Za-z0-9_]\)/\1gfx\2\3/g'
2013-09-24 16:45:13 -04:00
Benoit Jacob
610684a101 Bug 919219 - Trim gfxASurface more - r=jrmuizel 2013-09-24 16:45:13 -04:00
Ehsan Akhgari
b4cc06df88 Bug 918923 - Part 2: Switch to #including nsString.h in code using the internal strings API; r=bsmedberg 2013-09-23 13:25:00 -04:00
Nicholas Nethercote
9d1d4e73b0 Bug 910517 (3rd attempt) - Remove nsIMemoryReporter, and rename nsIMemoryMultiReporter as nsIMemoryReporter. r=mmcr8.
--HG--
rename : content/canvas/src/WebGLMemoryMultiReporterWrapper.h => content/canvas/src/WebGLMemoryReporterWrapper.h
extra : rebase_source : 2b2a1b2667d6562fcf803ec48b4a8c10fdd519a3
2013-08-27 16:24:51 -07:00
Nicholas Cameron
c23c2ef620 Bug 898929. Replace assertion with warning in gfxASurface.cpp. r=roc 2013-09-02 10:19:19 +12:00
Birunthan Mohanathas
573d76ec6d Bug 784739 - Switch from NULL to nullptr in gfx/thebes/; r=ehsan 2013-07-31 11:44:31 -04:00
Matt Woodrow
b06762e454 Bug 892966 - Clear any cached SourceSurfaces when a gfxASurface is flushed or marked dirty. r=jrmuizel 2013-07-11 22:44:29 -04:00
Catalin Iacob
4f03e5bb1a Bug 798914 (part 5) - Use newly introduced mozilla::MallocSizeOf instead of nsMallocSizeOfFun. r=njn.
--HG--
extra : rebase_source : fc472490dd978d165f02f77ed37f07aed6e5bb61
2013-06-23 14:03:39 +02:00