/* * Copyright 2015 Julian Harnath * All rights reserved. Distributed under the terms of the MIT license. */ #ifndef LAYER_H #define LAYER_H #include "ServerPicture.h" #include "IntPoint.h" class AlphaMask; class Canvas; class UtilityBitmap; class Layer : public ServerPicture { public: Layer(uint8 opacity); virtual ~Layer(); void PushLayer(Layer* layer); Layer* PopLayer(); UtilityBitmap* RenderToBitmap(Canvas* canvas); IntPoint LeftTopOffset() const; uint8 Opacity() const; private: BRect _DetermineBoundingBox(Canvas* canvas); UtilityBitmap* _AllocateBitmap(const BRect& bounds); private: uint8 fOpacity; IntPoint fLeftTopOffset; }; #endif // LAYER_H