diff options
Diffstat (limited to 'gfx/tests/gtest/TestLayers.h')
-rw-r--r-- | gfx/tests/gtest/TestLayers.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gfx/tests/gtest/TestLayers.h b/gfx/tests/gtest/TestLayers.h new file mode 100644 index 0000000000..9812a39ff5 --- /dev/null +++ b/gfx/tests/gtest/TestLayers.h @@ -0,0 +1,48 @@ +/* vim:set ts=2 sw=2 sts=2 et: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +#ifndef GFX_TEST_LAYERS_H +#define GFX_TEST_LAYERS_H + +#include "Layers.h" +#include "nsTArray.h" +#include "mozilla/layers/ISurfaceAllocator.h" + +namespace mozilla { +namespace layers { + +class TestSurfaceAllocator final : public ISurfaceAllocator { + public: + TestSurfaceAllocator() = default; + virtual ~TestSurfaceAllocator() = default; + + bool IsSameProcess() const override { return true; } +}; + +} // namespace layers +} // namespace mozilla + +/* Create layer tree from a simple layer tree description syntax. + * Each index is either the first letter of the layer type or + * a '(',')' to indicate the start/end of the child layers. + * The aim of this function is to remove hard to read + * layer tree creation code. + * + * Example "c(c(c(tt)t))" would yield: + * c + * | + * c + * / \ + * c t + * / \ + * t t + */ +already_AddRefed<mozilla::layers::Layer> CreateLayerTree( + const char* aLayerTreeDescription, nsIntRegion* aVisibleRegions, + const mozilla::gfx::Matrix4x4* aTransforms, + RefPtr<mozilla::layers::LayerManager>& aLayerManager, + nsTArray<RefPtr<mozilla::layers::Layer> >& aLayersOut); + +#endif |