Closed Bug 1249937 Opened 8 years ago Closed 8 years ago

Rename LayerComposite::SetShadowTransform to SetShadowBaseTransform

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox47 --- fixed

People

(Reporter: botond, Assigned: amoser11, Mentored)

References

Details

(Whiteboard: [lang=c++] [good first bug] [gfx-noted])

Attachments

(1 file, 1 obsolete file)

In bug 1247450, we renamed LayerComposite::GetShadowTransform() to GetShadowBaseTransform(). We should probably make the same change to the setter to avoid confusion.
Whiteboard: [lang=c++] → [lang=c++] [good first bug]
Hi!
I am new to open source. I want to fix this bug. Can you please tell me where I can find the relevant code? And how I should submit the patch?
Flags: needinfo?(botond)
Whiteboard: [lang=c++] [good first bug] → [lang=c++] [good first bug] [gfx-noted]
Hey I am also new to open source but am working on a patch for this bug right now.
Attached patch shadowBasePatch (obsolete) — Splinter Review
Renamed LayerComposite::SetShadowTransform to SetShadowBaseTransform.
Attachment #8722198 - Flags: review?(botond)
Aman and Andrew, thanks for your interest!

Only one person can be working on a bug at a time. I'm going to assign this one to Andrew, as he already has a patch in progress.

Aman, I would encourage you to pick another bug marked "[good first bug]". You can find a list of them here [1].

I'll answer your questions, though, for future reference:

(In reply to Aman Mittal from comment #1)
> Can you please tell me where I can find the relevant code? 

Instructions for checking out and building the code can be found here [2].

(Andrew, you should be sure to build the code as well if you haven't already. This is important so that you can verify that your changes compile by rebuilding locally after making them.)

> And how I should submit the patch?

Instructions for submitting a patch can be found here [3].

[1] https://bugzilla.mozilla.org/buglist.cgi?quicksearch=whiteboard%3A%22good+first+bug%22
[2] https://developer.mozilla.org/en-US/docs/Simple_Firefox_build
[3] https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch
Assignee: nobody → amoser11
Flags: needinfo?(botond)
Comment on attachment 8722198 [details] [diff] [review]
shadowBasePatch

Review of attachment 8722198 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks! This is on the right track, but a few comments need to be addressed.

Could you upload an updated patch with these comments addressed?

::: browser/base/content/newtab/newTab.css
@@ +12,5 @@
>    width: 100%;
>    height: 100%;
>    padding: 0;
>    margin: 0;
> +  background-color: #000;

This is an unrelated change that shouldn't be part of the patch.

::: browser/base/content/tabbrowser.css
@@ +88,5 @@
>  tabbrowser[pendingpaint] {
>    background-image: url(chrome://browser/skin/tabbrowser/pendingpaint.png);
>    background-repeat: no-repeat;
>    background-position: center center;
> +  background-color: #000 !important;

So is this.

::: gfx/layers/composite/AsyncCompositionManager.cpp
@@ +222,5 @@
>   * the layer's effective transform is computed, the pre- and post-scales will
>   * only be applied once.
>   */
>  static void
> +SetShadowBaseTransform(Layer* aLayer, LayerToParentLayerMatrix4x4 aTransform)

This is a different function (a non-member function in AsyncCompositionManager.cpp) that we don't want to rename.

@@ +251,5 @@
>  
>    // Apply the translation to the layer transform.
>    layerTransform.PostTranslate(aTranslation.x, aTranslation.y, 0);
>  
> +  SetShadowBaseTransform(aLayer, layerTransform);

Many calls in this file are to the non-member SetShadowTransform() function that we don't want to rename.
Attachment #8722198 - Flags: review?(botond) → feedback+
So I ran hg up -C and reclobbered, that fixed all the changes I had made. However when I made my change in gfx/layers/composite/LayerManagerComposite.h to

void SetShadowBaseTransform(const gfx::Matrix4x4& aMatrix)

and in gfx/layers/ipc/CompositorParent.cpp

layerComposite->SetShadowBaseTransform(aLayer->GetBaseTransform()); 

I got this error in command line

 1:58.92 The following command failed to execute properly:
 1:58.92 c++ -o Unified_cpp_gfx_layers4.o -c -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/stl_wrappers -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/system_wrappers -include /home/andrew/firefox/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DGOOGLE_PROTOBUF_NO_RTTI -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/andrew/firefox/gfx/layers -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/ipc/ipdl/_ipdlheaders -I/home/andrew/firefox/ipc/chromium/src -I/home/andrew/firefox/ipc/glue -I/home/andrew/firefox/docshell/base -I/home/andrew/firefox/layout/base -I/home/andrew/firefox/layout/generic -I/home/andrew/firefox/gfx/skia -I/home/andrew/firefox/gfx/skia/skia/include/config -I/home/andrew/firefox/gfx/skia/skia/include/core -I/home/andrew/firefox/gfx/skia/skia/include/gpu -I/home/andrew/firefox/gfx/skia/skia/include/utils -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include/nspr -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/mozilla-config.h -MD -MP -MF .deps/Unified_cpp_gfx_layers4.o.pp -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wtype-limits -Wunreachable-code -Wcast-align -Wno-invalid-offsetof -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -g -freorder-blocks -Os -fomit-frame-pointer -I/home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include/cairo -I/home/andrew/firefox/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/gtk-3.0/unix-print /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers/Unified_cpp_gfx_layers4.cpp
 1:58.92 make[5]: *** [Unified_cpp_gfx_layers4.o] Error 1
 1:58.92 make[5]: *** Waiting for unfinished jobs....
 1:58.95 make[4]: *** [gfx/layers/target] Error 2
 1:58.95 make[4]: *** Waiting for unfinished jobs....
 1:58.97 make[3]: *** [compile] Error 2
 1:58.97 make[2]: *** [default] Error 2
 1:58.97 make[1]: *** [realbuild] Error 2
 1:58.97 make: *** [build] Error 2
 1:59.00 1125 compiler warnings present.
(In reply to Andrew from comment #6)
> However when I made my change in
> gfx/layers/composite/LayerManagerComposite.h to
> 
> void SetShadowBaseTransform(const gfx::Matrix4x4& aMatrix)
> 
> and in gfx/layers/ipc/CompositorParent.cpp
> 
> layerComposite->SetShadowBaseTransform(aLayer->GetBaseTransform()); 
> 
> I got this error in command line

The actual compiler error is just above the part you posted. Could you post that, please? (You can run './mach build binaries' to get the error again if you no longer have the output.)
./mach build
 0:03.23 /usr/bin/make -f client.mk -s
 0:04.48 Adding client.mk options from :
 0:04.48     MOZ_OBJDIR=/home/andrew/firefox/obj-x86_64-unknown-linux-gnu
 0:04.48     OBJDIR=/home/andrew/firefox/obj-x86_64-unknown-linux-gnu
 0:19.15 Elapsed: 0.03s; From dist/branding: Kept 4 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:22.81 Elapsed: 3.70s; From dist/idl: Kept 1140 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:22.92 Elapsed: 0.04s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:23.65 Elapsed: 0.66s; From dist/private: Kept 0 existing; Added/updated 0; Removed 157 files and 2 directories.
 0:23.78 Elapsed: 0.05s; From dist/sdk: Kept 0 existing; Added/updated 0; Removed 9 files and 2 directories.
 0:23.80 Elapsed: 4.58s; From dist/include: Kept 4768 existing; Added/updated 0; Removed 104 files and 2 directories.
 0:23.90 Elapsed: 0.04s; From dist/xpi-stage: Kept 13 existing; Added/updated 0; Removed 2 files and 2 directories.
 0:26.68 Elapsed: 2.71s; From dist/bin: Kept 1797 existing; Added/updated 0; Removed 10 files and 1 directories.
 0:52.84 Elapsed: 28.93s; From _tests: Kept 24699 existing; Added/updated 0; Removed 1 files and 1 directories.
 0:52.89 buildid.h
 0:52.89 source-repo.h
 0:55.41 Elapsed: 0.06s; From ../../dist/idl: Kept 1140 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:55.75 cd util; /usr/bin/make private_export
 0:55.80 Creating /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/private/nss
 0:55.80 cd freebl; /usr/bin/make private_export
 0:55.90 cd dbm; /usr/bin/make private_export
 0:55.98 cd include; /usr/bin/make private_export
 0:56.01 Creating /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/private/dbm
 0:56.01 cd src; /usr/bin/make private_export
 0:56.12 There are no private exports.
 0:56.13 There are no private exports.
 0:56.13 cd softoken; /usr/bin/make private_export
 0:56.17 cd legacydb; /usr/bin/make private_export
 0:56.28 There are no private exports.
 0:56.29 cd base; /usr/bin/make private_export
 0:56.39 cd dev; /usr/bin/make private_export
 0:56.49 cd pki; /usr/bin/make private_export
 0:56.59 cd libpkix; /usr/bin/make private_export
 0:56.67 cd include; /usr/bin/make private_export
 0:56.73 cd pkix; /usr/bin/make private_export
 0:56.78 cd certsel; /usr/bin/make private_export
 0:56.80 cd crlsel; /usr/bin/make private_export
 0:56.85 cd checker; /usr/bin/make private_export
 0:56.91 cd params; /usr/bin/make private_export
 0:56.96 cd results; /usr/bin/make private_export
 0:57.01 cd store; /usr/bin/make private_export
 0:57.06 cd top; /usr/bin/make private_export
 0:57.08 cd util; /usr/bin/make private_export
 0:57.15 There are no private exports.
 0:57.15 cd pkix_pl_nss; /usr/bin/make private_export
 0:57.18 cd pki; /usr/bin/make private_export
 0:57.24 cd mangle; /usr/bin/make private_export
 0:57.24 cd system; /usr/bin/make private_export
 0:57.31 There are no private exports.
 0:57.31 There are no private exports.
 0:57.33 cd module; /usr/bin/make private_export
 0:57.38 There are no private exports.
 0:57.38 There are no private exports.
 0:57.38 cd certdb; /usr/bin/make private_export
 0:57.42 There are no private exports.
 0:57.46 cd certhigh; /usr/bin/make private_export
 0:57.48 There are no private exports.
 0:57.54 cd pk11wrap; /usr/bin/make private_export
 0:57.62 There are no private exports.
 0:57.63 cd cryptohi; /usr/bin/make private_export
 0:57.66 There are no private exports.
 0:57.68 cd mangle; /usr/bin/make export
 0:57.68 There are no private exports.
 0:57.68 cd nss; /usr/bin/make private_export
 0:57.91 cd ssl; /usr/bin/make private_export
 0:58.05 There are no private exports.
 0:58.05 cd pkcs7; /usr/bin/make private_export
 0:58.13 cd pkcs12; /usr/bin/make private_export
 0:58.19 There are no private exports.
 0:58.19 cd smime; /usr/bin/make private_export
 0:58.28 cd crmf; /usr/bin/make private_export
 0:58.41 cd jar; /usr/bin/make private_export
 0:58.51 There are no private exports.
 0:58.51 cd ckfw; /usr/bin/make private_export
 0:58.59 cd builtins; /usr/bin/make private_export
 0:58.65 There are no private exports.
 0:58.65 There are no private exports.
 0:58.66 cd util; /usr/bin/make export
 0:58.67 Creating /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include/nss
 0:58.67 There are no private exports.
 0:58.67 cd freebl; /usr/bin/make export
 0:58.69 There are no private exports.
 0:58.69 cd dbm; /usr/bin/make export
 0:58.70 cd include; /usr/bin/make export
 0:58.70 Creating /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/dist/include/dbm
 0:58.70 There are no private exports.
 0:58.71 cd src; /usr/bin/make export
 0:58.72 cd softoken; /usr/bin/make export
 0:58.73 cd legacydb; /usr/bin/make export
 0:58.75 There are no private exports.
 0:58.75 cd legacydb; /usr/bin/make private_export
 0:58.76 There are no private exports.
 0:58.78 There are no private exports.
 0:58.78 cd base; /usr/bin/make export
 0:58.80 There are no private exports.
 0:58.81 cd dev; /usr/bin/make export
 0:58.83 There are no private exports.
 0:58.83 cd pki; /usr/bin/make export
 0:58.85 There are no private exports.
 0:58.85 cd libpkix; /usr/bin/make export
 0:58.85 cd include; /usr/bin/make export
 0:58.87 There are no private exports.
 0:58.87 cd pkix; /usr/bin/make export
 0:58.88 cd certsel; /usr/bin/make export
 0:58.89 There are no private exports.
 0:58.89 cd crlsel; /usr/bin/make export
 0:58.91 There are no private exports.
 0:58.91 cd checker; /usr/bin/make export
 0:58.92 There are no private exports.
 0:58.92 cd params; /usr/bin/make export
 0:58.93 There are no private exports.
 0:58.93 cd results; /usr/bin/make export
 0:58.95 There are no private exports.
 0:58.95 cd store; /usr/bin/make export
 0:58.97 There are no private exports.
 0:58.97 cd top; /usr/bin/make export
 0:58.98 There are no private exports.
 0:58.98 cd util; /usr/bin/make export
 0:58.99 There are no private exports.
 0:58.99 cd certsel; /usr/bin/make private_export
 0:59.00 There are no private exports.
 0:59.00 cd crlsel; /usr/bin/make private_export
 0:59.02 There are no private exports.
 0:59.02 cd checker; /usr/bin/make private_export
 0:59.04 There are no private exports.
 0:59.04 cd params; /usr/bin/make private_export
 0:59.06 There are no private exports.
 0:59.06 cd results; /usr/bin/make private_export
 0:59.06 There are no private exports.
 0:59.07 cd store; /usr/bin/make private_export
 0:59.07 There are no private exports.
 0:59.07 cd top; /usr/bin/make private_export
 0:59.09 There are no private exports.
 0:59.09 cd util; /usr/bin/make private_export
 0:59.09 There are no private exports.
 0:59.09 There are no private exports.
 0:59.09 cd pkix_pl_nss; /usr/bin/make export
 0:59.11 cd pki; /usr/bin/make export
 0:59.11 cd pki; /usr/bin/make private_export
 0:59.12 There are no private exports.
 0:59.12 There are no private exports.
 0:59.12 cd system; /usr/bin/make private_export
 0:59.12 cd system; /usr/bin/make export
 0:59.14 There are no private exports.
 0:59.14 There are no private exports.
 0:59.14 cd module; /usr/bin/make private_export
 0:59.14 cd module; /usr/bin/make export
 0:59.16 There are no private exports.
 0:59.16 There are no private exports.
 0:59.16 There are no private exports.
 0:59.18 cd include; /usr/bin/make private_export
 0:59.19 There are no private exports.
 0:59.19 cd pkix; /usr/bin/make private_export
 0:59.21 cd certsel; /usr/bin/make private_export
 0:59.23 There are no private exports.
 0:59.23 cd crlsel; /usr/bin/make private_export
 0:59.24 There are no private exports.
 0:59.24 cd checker; /usr/bin/make private_export
 0:59.26 There are no private exports.
 0:59.26 cd params; /usr/bin/make private_export
 0:59.30 There are no private exports.
 0:59.30 cd results; /usr/bin/make private_export
 0:59.31 There are no private exports.
 0:59.31 cd store; /usr/bin/make private_export
 0:59.32 There are no private exports.
 0:59.32 cd top; /usr/bin/make private_export
 0:59.34 There are no private exports.
 0:59.34 cd util; /usr/bin/make private_export
 0:59.35 There are no private exports.
 0:59.35 There are no private exports.
 0:59.35 cd pkix_pl_nss; /usr/bin/make private_export
 0:59.36 cd pki; /usr/bin/make private_export
 0:59.39 There are no private exports.
 0:59.40 cd system; /usr/bin/make private_export
 0:59.42 There are no private exports.
 0:59.42 cd module; /usr/bin/make private_export
 0:59.43 There are no private exports.
 0:59.43 There are no private exports.
 0:59.43 There are no private exports.
 0:59.43 cd certdb; /usr/bin/make export
 0:59.44 There are no private exports.
 0:59.44 cd certhigh; /usr/bin/make export
 0:59.46 There are no private exports.
 0:59.46 cd pk11wrap; /usr/bin/make export
 0:59.48 There are no private exports.
 0:59.48 cd cryptohi; /usr/bin/make export
 0:59.49 There are no private exports.
 0:59.49 cd nss; /usr/bin/make export
 0:59.79 There are no private exports.
 0:59.79 cd ssl; /usr/bin/make export
 0:59.81 There are no private exports.
 0:59.81 cd pkcs7; /usr/bin/make export
 0:59.84 cd pkcs12; /usr/bin/make export
 0:59.85 cd smime; /usr/bin/make export
 0:59.91 cd crmf; /usr/bin/make export
 0:59.95 There are no private exports.
 0:59.95 cd jar; /usr/bin/make export
 0:59.98 cd ckfw; /usr/bin/make export
 0:60.00 cd builtins; /usr/bin/make export
 1:00.01 cd builtins; /usr/bin/make private_export
 1:00.03 There are no private exports.
 1:00.03 There are no private exports.
 1:02.19 make[6]: warning: -jN forced in submake: disabling jobserver mode.
 1:02.26 Note: rebuild with "/usr/bin/make VERBOSE=1 " to show all compiler parameters.
 1:02.26 /usr/bin/make[6]: Making `all' in `stubdata'
 1:02.31 /usr/bin/make[6]: Making `all' in `common'
 1:02.56 /usr/bin/make[6]: Making `all' in `i18n'
 1:02.97 /usr/bin/make[6]: Making `all' in `tools'
 1:03.20 /usr/bin/make[7]: Making `all' in `toolutil'
 1:03.42 /usr/bin/make[7]: Making `all' in `ctestfw'
 1:03.50 /usr/bin/make[7]: Making `all' in `makeconv'
 1:03.55 /usr/bin/make[7]: Making `all' in `genrb'
 1:03.60 /usr/bin/make[7]: Making `all' in `genbrk'
 1:03.67 /usr/bin/make[7]: Making `all' in `gencnval'
 1:03.69 /usr/bin/make[7]: Making `all' in `gensprep'
 1:03.73 /usr/bin/make[7]: Making `all' in `icuinfo'
 1:03.77 /usr/bin/make[7]: Making `all' in `genccode'
 1:03.79 /usr/bin/make[7]: Making `all' in `gencmn'
 1:03.79 /usr/bin/make[7]: Making `all' in `icupkg'
 1:03.81 /usr/bin/make[7]: Making `all' in `pkgdata'
 1:03.85 /usr/bin/make[7]: Making `all' in `gentest'
 1:03.89 /usr/bin/make[7]: Making `all' in `gennorm2'
 1:03.91 /usr/bin/make[7]: Making `all' in `gencfu'
 1:03.95 /usr/bin/make[7]: Making `all' in `gendict'
 1:03.98 /usr/bin/make[6]: Making `all' in `data'
 1:04.44 Note: rebuild with "/usr/bin/make VERBOSE=1 all-local" to show all compiler parameters.
 1:07.61 Unified_cpp_gfx_layers4.o
 1:07.61 Unified_cpp_gfx_layers5.o
 1:07.96 Unified_cpp_gfx_layers6.o
 1:29.64 In file included from /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers/Unified_cpp_gfx_layers4.cpp:38:0:
 1:29.64 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In function ‘void mozilla::layers::SetShadowTransform(mozilla::layers::Layer*, mozilla::LayerToParentLayerMatrix4x4)’:
 1:29.64 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:237:31: error: ‘class mozilla::layers::LayerComposite’ has no member named ‘SetShadowTransform’
 1:29.64    aLayer->AsLayerComposite()->SetShadowTransform(aTransform.ToUnknownMatrix());
 1:29.64                                ^
 1:29.66 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In function ‘bool mozilla::layers::SampleAnimations(mozilla::layers::Layer*, mozilla::TimeStamp)’:
 1:29.66 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:644:23: error: ‘class mozilla::layers::LayerComposite’ has no member named ‘SetShadowTransform’
 1:29.66        layerComposite->SetShadowTransform(matrix);
 1:29.66                        ^
 1:29.69 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In member function ‘bool mozilla::layers::AsyncCompositionManager::TransformShadowTree(mozilla::TimeStamp, mozilla::layers::AsyncCompositionManager::TransformsToSkip)’:
 1:29.69 /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:1437:18: error: ‘class mozilla::layers::LayerComposite’ has no member named ‘SetShadowTransform’
 1:29.69    rootComposite->SetShadowTransform(trans);
 1:29.69                   ^
 1:31.89 
 1:31.89 In the directory  /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers
This is the important bit:

(In reply to Andrew from comment #8)
> /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers/
> Unified_cpp_gfx_layers4.cpp:38:0:
>  1:29.64
> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In
> function ‘void mozilla::layers::SetShadowTransform(mozilla::layers::Layer*,
> mozilla::LayerToParentLayerMatrix4x4)’:
>  1:29.64
> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:237:31:
> error: ‘class mozilla::layers::LayerComposite’ has no member named
> ‘SetShadowTransform’
>  1:29.64   
> aLayer->AsLayerComposite()->SetShadowTransform(aTransform.ToUnknownMatrix());
>  1:29.64                                ^
>  1:29.66

This is a use of LayerComposite::SetShadowTransform(), so it needs to be changed to SetShadowBaseTransform().

> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In
> function ‘bool mozilla::layers::SampleAnimations(mozilla::layers::Layer*,
> mozilla::TimeStamp)’:
>  1:29.66
> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:644:23:
> error: ‘class mozilla::layers::LayerComposite’ has no member named
> ‘SetShadowTransform’
>  1:29.66        layerComposite->SetShadowTransform(matrix);
>  1:29.66                        ^
>  1:29.69

Same here.

> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp: In
> member function ‘bool
> mozilla::layers::AsyncCompositionManager::TransformShadowTree(mozilla::
> TimeStamp, mozilla::layers::AsyncCompositionManager::TransformsToSkip)’:
>  1:29.69
> /home/andrew/firefox/gfx/layers/composite/AsyncCompositionManager.cpp:1437:
> 18: error: ‘class mozilla::layers::LayerComposite’ has no member named
> ‘SetShadowTransform’
>  1:29.69    rootComposite->SetShadowTransform(trans);
>  1:29.69                   ^
>  1:31.89 
>  1:31.89 In the directory 
> /home/andrew/firefox/obj-x86_64-unknown-linux-gnu/gfx/layers

And here.

To be clear, when I said the following in comment 5:

(In reply to Botond Ballo [:botond] [C++ standards meeting Feb 29 - Mar 5] from comment #5)
> @@ +251,5 @@
> >  
> >    // Apply the translation to the layer transform.
> >    layerTransform.PostTranslate(aTranslation.x, aTranslation.y, 0);
> >  
> > +  SetShadowBaseTransform(aLayer, layerTransform);
> 
> Many calls in this file are to the non-member SetShadowTransform() function
> that we don't want to rename.

this applies to calls of the non-member SetShadowTransform() function (those calls need to stay the same), but there are also calls to LayerComposite::SetShadowTransform() in this file (the ones the compiler is complaining about) that do need to change.
changed setshadowtransform to setshadowbasetransform in asyncCompositionManager.cpp 
LayerManagerComposite.h
CompositorParent.cpp
Attachment #8724345 - Flags: review?(botond)
Comment on attachment 8724345 [details] [diff] [review]
setShadowBaseTransform.patch

Review of attachment 8724345 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks!
Attachment #8724345 - Flags: review?(botond) → review+
Comment on attachment 8722198 [details] [diff] [review]
shadowBasePatch

Marking old patch as obsolete (it's a good idea to do this when uploading a new patch).
Attachment #8722198 - Attachment is obsolete: true
Here's a build-only Try push, to make sure the patch builds on all platforms:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=418aa79ff5ed
(In reply to Botond Ballo [:botond] [C++ standards meeting Feb 29 - Mar 5] from comment #13)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=418aa79ff5ed

Looks good! Landed on mozilla-inbound:

https://hg.mozilla.org/integration/mozilla-inbound/rev/db9d813769f6
https://hg.mozilla.org/mozilla-central/rev/db9d813769f6
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Thanks for your work on this, Andrew! As you can see from comment 15, the patch has now merged to mozilla-central.

If you're interested in working on other bugs, and would like some help finding one to work on next, let me know and I can make some suggestions.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: