Bundle of dependencies the Surface inherits from the factory. More...
#include <phosphor-layer/include/PhosphorLayer/Surface.h>
Public Attributes | |
| ILayerShellTransport * | transport = nullptr |
| IQmlEngineProvider * | engineProvider = nullptr |
| IScreenProvider * | screenProvider = nullptr |
| Screen provider the Surface subscribes to for hot-unplug detection. | |
| ISurfaceAnimator * | animator = nullptr |
| Phase-5 hook for show/hide visual transitions. | |
| QString | loggingCategory |
Bundle of dependencies the Surface inherits from the factory.
Kept in the public header because SurfaceFactory::create() returns a Surface* and the dependency pointers need to travel with it; private because only SurfaceFactory constructs Surfaces. No stable ABI guarantee between library versions — revisit if Surface becomes user-constructible.
SurfaceDeps{.transport = ...}) for forward-compatibility. | ISurfaceAnimator* PhosphorLayer::SurfaceDeps::animator = nullptr |
Phase-5 hook for show/hide visual transitions.
Optional: nullptr means the Surface uses the library-internal NoOp default (synchronous onComplete; identical pre-Phase-5 behaviour). The factory propagates SurfaceFactory::Deps::animator into this slot.
Lifetime contract: when non-null, the animator MUST outlive every Surface that holds this SurfaceDeps. The Surface dispatches through the raw pointer on every show/hide and on its own destruction (~Impl calls animator().cancel(this) to drop in-flight tracking). Dropping the animator while a Surface still holds the pointer is UB.
| IQmlEngineProvider* PhosphorLayer::SurfaceDeps::engineProvider = nullptr |
| QString PhosphorLayer::SurfaceDeps::loggingCategory |
| IScreenProvider* PhosphorLayer::SurfaceDeps::screenProvider = nullptr |
| ILayerShellTransport* PhosphorLayer::SurfaceDeps::transport = nullptr |