blob: faf1ec64f8d80b1f4f49f305f113519e947cb8c7 [file] [log] [blame]
chaviwa76b2712017-09-20 12:02:26 -07001#pragma once
2
3#include "Transform.h"
4
5namespace android {
6
7class RenderArea {
8public:
9 RenderArea(uint32_t reqHeight, uint32_t reqWidth, ISurfaceComposer::Rotation rotation)
10 : mReqHeight(reqHeight), mReqWidth(reqWidth) {
11 mRotationFlags = Transform::fromRotation(rotation);
12 }
13
14 virtual ~RenderArea() = default;
15
16 virtual const Transform& getTransform() const = 0;
17 virtual Rect getBounds() const = 0;
18 virtual int getHeight() const = 0;
19 virtual int getWidth() const = 0;
20 virtual bool isSecure() const = 0;
21 virtual bool needsFiltering() const = 0;
22 virtual Rect getSourceCrop() const = 0;
23
24 int getReqHeight() const { return mReqHeight; };
25 int getReqWidth() const { return mReqWidth; };
26 Transform::orientation_flags getRotationFlags() const { return mRotationFlags; };
27#ifdef USE_HWC2
28 virtual bool getWideColorSupport() const = 0;
29 virtual android_color_mode_t getActiveColorMode() const = 0;
30#endif
31
32 status_t updateDimensions();
33
34private:
35 uint32_t mReqHeight;
36 uint32_t mReqWidth;
37 Transform::orientation_flags mRotationFlags;
38};
39
40} // namespace android