Home | History | Annotate | Download | only in tangier
      1 /*
      2 // Copyright(c)2014 IntelCorporation
      3 //
      4 // LicensedundertheApacheLicense,Version2.0(the"License");
      5 // youmaynotusethisfileexceptincompliancewiththeLicense.
      6 // YoumayobtainacopyoftheLicenseat
      7 //
      8 // http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unlessrequiredbyapplicablelaworagreedtoinwriting,software
     11 // distributedundertheLicenseisdistributedonan"ASIS"BASIS,
     12 // WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
     13 // SeetheLicenseforthespecificlanguagegoverningpermissionsand
     14 // limitationsundertheLicense.
     15 */
     16 #ifndef TNG_PLANE_MANAGER_H
     17 #define TNG_PLANE_MANAGER_H
     18 
     19 #include <DisplayPlaneManager.h>
     20 #include <linux/psb_drm.h>
     21 
     22 namespace android {
     23 namespace intel {
     24 
     25 class TngPlaneManager : public DisplayPlaneManager {
     26 public:
     27     TngPlaneManager();
     28     virtual ~TngPlaneManager();
     29 
     30 public:
     31     virtual bool initialize();
     32     virtual void deinitialize();
     33     virtual bool isValidZOrder(int dsp, ZOrderConfig& config);
     34     virtual bool assignPlanes(int dsp, ZOrderConfig& config);
     35     // TODO: remove this API
     36     virtual void* getZOrderConfig() const;
     37 
     38 protected:
     39     DisplayPlane* allocPlane(int index, int type);
     40     DisplayPlane* getPlaneHelper(int dsp, int type);
     41 
     42 private:
     43     struct intel_dc_plane_zorder mZorder;
     44 };
     45 
     46 } // namespace intel
     47 } // namespace android
     48 
     49 
     50 #endif /* TNG_PLANE_MANAGER_H */
     51