Commit Graph

50 Commits

Author SHA1 Message Date
Markus Stange
9a8cc12a55 Bug 1578099 - Use NativeLayer::NextSurfaceAsFramebuffer in CompositorOGL and remove #ifdefs. r=mattwoodrow
CompositingRenderTargetOGL objects are no longer reused between frames. They are
recreated each frame around a reused framebuffer. This lets us remove the
SetOrigin method again, because we specify the right render target origin on
creation.

Depends on D44328

Differential Revision: https://phabricator.services.mozilla.com/D44329

--HG--
extra : moz-landing-system : lando
2019-09-01 22:48:36 +00:00
Markus Stange
df38e03696 Bug 1578099 - Tweak CompositingRenderTargetOGL initialization flow. r=mattwoodrow
Depends on D44327

Differential Revision: https://phabricator.services.mozilla.com/D44328

--HG--
extra : moz-landing-system : lando
2019-09-01 22:45:20 +00:00
Markus Stange
c64f3440ff Bug 1578099 - Change CompositingRenderTargetOGL creation API. r=mattwoodrow
Depends on D44326

Differential Revision: https://phabricator.services.mozilla.com/D44327

--HG--
extra : moz-landing-system : lando
2019-09-01 22:42:19 +00:00
Markus Stange
77e2ee0c73 Bug 1574745 - Treat aClipRect in CompositorOGL::DrawGeometry correctly when drawing to a root render target that's not at (0, 0). r=mattwoodrow
This uses the same workaround as BasicCompositor.

Differential Revision: https://phabricator.services.mozilla.com/D43868

--HG--
extra : moz-landing-system : lando
2019-08-30 19:49:46 +00:00
Markus Stange
d62299cf77 Bug 1491451 - Limit CompositorOGL drawing to the invalid rect. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D42421

--HG--
extra : moz-landing-system : lando
2019-08-25 21:43:07 +00:00
Markus Stange
503bb734ad Bug 1565668 - Read screenshots from the correct framebuffer when the default framebuffer is overridden. r=mattwoodrow
RenderTargetOGL::Bind on mWindowRenderTarget needs to bind the default framebuffer, not framebuffer 0.

Differential Revision: https://phabricator.services.mozilla.com/D26405

--HG--
extra : moz-landing-system : lando
2019-07-17 20:46:02 +00:00
Jean-Yves Avenard
11ac9e9cf8 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

Differential Revision: https://phabricator.services.mozilla.com/D26060

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:51 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Andi-Bogdan Postelnicu
b2d4c86823 Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
--HG--
extra : rebase_source : 56f2cc017632bf27115490ae05254019108c6179
extra : amend_source : 98ea6c3c02a9f7650d2cf65deaf5085cf9a2efa4
2018-06-16 17:42:33 +03:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nicolas Silva
2f19628734 Bug 1440717 - Use RefPtr for CompositingRenderTargetOGL::mGL. r=Bas 2018-03-12 13:36:00 +01:00
Daniel Holbert
126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Thinker K.F. Li
fd84cfc0b8 Bug 1269337 - Implement physical and logical size for GL render target. r=mattwoodrow 2016-11-28 02:14:00 +01:00
Nicolas Silva
900ff3581c Bug 1280110 - Ensure CompositingRenderTargetOGL is never created without a gl context. r=sotaro 2016-06-21 17:31:13 +02:00
Milan Sreckovic
e5d1fffa48 Bug 1187464 - Part 2. RTTI for TextureSource debug purposes. Carry r=botond 2016-02-08 11:57:00 +01: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
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
Vladimir Vukicevic
a0b4b85e51 Bug 1179935, introduce complex viewport projections to Compositor, remove PrepareViewport; r=mstange
---
 gfx/layers/Compositor.h                          |  10 ---
 gfx/layers/basic/BasicCompositor.h               |   2 -
 gfx/layers/composite/TextureHost.h               |  34 +++++++-
 gfx/layers/d3d11/CompositorD3D11.cpp             |  47 +++++++---
 gfx/layers/d3d11/CompositorD3D11.h               |   4 +-
 gfx/layers/d3d9/CompositorD3D9.h                 |   2 +-
 gfx/layers/opengl/CompositingRenderTargetOGL.cpp |  23 +++--
 gfx/layers/opengl/CompositingRenderTargetOGL.h   |   2 +
 gfx/layers/opengl/CompositorOGL.cpp              | 104 +++++++++++++----------
 gfx/layers/opengl/CompositorOGL.h                |   6 +-
 10 files changed, 145 insertions(+), 89 deletions(-)
2015-05-19 13:51:26 -04: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
Ehsan Akhgari
883849ee32 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
b447c92ece Bug 1117263 - Mark virtual overridden functions as MOZ_OVERRIDE in graphics layers code; r=roc 2015-01-03 12:21:23 -05:00
Vladimir Vukicevic
e80e04cd17 Bug 1036602 - Add GL support for VR rendering; r=BenWa
From aec0bd50768482fe516111010bad2e57f01ede36 Mon Sep 17 00:00:00 2001
---
 gfx/layers/moz.build                           |   1 +
 gfx/layers/opengl/CompositingRenderTargetOGL.h |   4 +
 gfx/layers/opengl/CompositorOGL.cpp            |  14 ++
 gfx/layers/opengl/CompositorOGL.h              |  38 +++
 gfx/layers/opengl/CompositorOGLVR.cpp          | 326 +++++++++++++++++++++++++
 5 files changed, 383 insertions(+)
 create mode 100644 gfx/layers/opengl/CompositorOGLVR.cpp
2014-07-09 12:28:27 -07:00
Sotaro Ikeda
11b001307a Bug 1082986 - Use RefPtr to hold Compositor r=nical 2014-10-16 06:48:29 -07:00
Chris Lord
493252838e Bug 1006797 - Only apply the window render offset when actually rendering to the window. r=nical
--HG--
extra : rebase_source : 24f2d8c50e5c0ddfa6683291040a78574d631678
2014-10-03 13:22:32 +13:00
Jeff Muizelaar
34032eed5e Bug 1064479. Redo how screen rotation is implemented on B2G/Layers. r=nical,mwoodrow
Currently we use a world transform on the LayerManager. This gets passed to the
screen render target which adjusts the gl transform to accomplish the rotation.
This causes a lot of the system to have to know about the transform.

Instead we can just bake the transform into the root layer's shadow transform.
Everything now mostly just works.

--HG--
extra : rebase_source : e0e170d191eef5887a2e6b17f71ac79037033006
2014-09-10 15:59:00 -04:00
Michael Comella
bd98315700 Bug 1046017 - Backed out changesets 1c213218173f & 8588817f7f86 (bugs 1017427 & 1006797) 2014-09-04 18:07:59 -07:00
Jeff Muizelaar
df48ffb1b7 Bug 1016539. Add support for accelerated a11y filters. r=mwoodrow
This adds the ability to render to a temporary surface and use that
to apply a filter effect to all of the content.
2014-08-07 17:44:08 -04:00
Chris Lord
896c1a9861 Bug 1006797 - Fix application of OGL compositor screen render offset. r=nical 2014-05-27 13:31:01 +01:00
Jonathan Watt
200e95e9eb Bug 996901 - Remove lots of gfxASurface.h and gfxImageSurface.h includes and forward declarations that are no longer needed. r=mattwoodrow 2014-04-16 01:41:40 +01:00
David Zbarsky
a28df4889b Bug 952977: Convert CompositingRenderTargetOGL to gfx::Matrix4x4 r=nical 2014-01-27 15:25:21 -05:00
Benoit Jacob
a1e7c32630 Bug 958375 - 4/9 - Make SurfaceFormat a typed enum - r=Bas
Specifically:
  r=Bas for manual changes
  f=Bas for automatic changes
See attachments on the bug for the specific breakdown.
2014-01-10 14:06:16 -05:00
Andreas Pehrson
0955c3684b Bug 877115 - Remove GetTexImage from GLContext helper. r=nical 2014-01-08 09:37:58 +01:00
Matt Woodrow
88de3c4def Bug 935380 - Part 3: Make CompositingRenderTarget store it's origin. r=nrc 2013-11-07 22:53:08 +13:00
Nicholas Cameron
6bb0b5ed84 Don't include mozilla-config.h in gfx.layers. No bug. r=me 2013-09-09 08:55:48 +12:00
Benoit Jacob
8ec75b058c Bug 912042 - Avoid including GLContext.h in headers that don't need it - r=jrmuizel 2013-09-04 08:14:52 -04:00
Nicholas Cameron
73aeda1397 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Nicolas Silva
510cee9244 Bug 858914 - Various TextureClient/Host cleanups. r=nrc. 2013-08-08 14:53:12 +02:00
Phil Ringnalda
d2099e030b Back out d393cfeb5dbf:9f82224bb8a3 (bug 903816) for Android reftest failures
CLOSED TREE
2013-08-11 19:21:17 -07:00
Nicholas Cameron
5cd4425728 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Nicolas Silva
8592c4c12d Bug 858914 - New texture classes + OGL backend (preffed off). r=bas, nrc 2013-07-30 11:59:51 +02:00
Matt Woodrow
a1b046b961 Bug 886667 - Just assert rather than aborting when our framebuffer is invalid. r=jrmuizel 2013-07-16 15:56:10 -04:00
Andreas Gal ext:(%2C%20Milan%20Sreckovic%20%3Cmilan%40mozilla.com%3E)
4c463d2865 Bug 867460: remove notion of ShaderProgramTypes from gfx/gl. Carry r=bas. r=bgirard for the changes. 2013-07-04 13:25:50 -04:00
Ehsan Akhgari
688d6881b1 Backed out changeset 1bf0cdeacb22 (bug 867460) for assertions in various test suites
Landed on a CLOSED TREE
2013-06-25 21:39:07 -04:00
Andreas Gal
4b4d3d8e70 Bug 867460 - Remove notion of ShaderProgramTypes from gfx/gl. r=bschouten, sr=joe 2013-06-24 13:05:13 -04:00
Matt Woodrow
99faba83a1 Bug 756601 - Setup our OpenGL surface before compositing. r=mstange 2013-05-10 09:02:49 +12:00
Bas Schouten
839048be74 Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.

Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 09:20:52 +00:00