OSDN Git Service

Merge "drm_hwcomposer: Increase failure time for acquire fences" into mnc-dr-dev
[android-x86/external-drm_hwcomposer.git] / drmcompositor.h
index ad1316c..0741932 100644 (file)
 #ifndef ANDROID_DRM_COMPOSITOR_H_
 #define ANDROID_DRM_COMPOSITOR_H_
 
-#include "compositor.h"
-#include "drm_hwcomposer.h"
 #include "drmcomposition.h"
-#include "drmcompositorworker.h"
-#include "drmplane.h"
+#include "drmdisplaycompositor.h"
 #include "importer.h"
 
-#include <pthread.h>
-#include <queue>
+#include <map>
+#include <memory>
 #include <sstream>
 
-#include <hardware/hardware.h>
-#include <hardware/hwcomposer.h>
-
 namespace android {
 
-class Drm;
-
-class DrmCompositor : public Compositor {
+class DrmCompositor {
  public:
   DrmCompositor(DrmResources *drm);
   ~DrmCompositor();
 
-  virtual int Init();
-
-  virtual Targeting *targeting() {
-    return NULL;
-  }
+  int Init();
 
-  virtual Composition *CreateComposition(Importer *importer);
+  DrmComposition *CreateComposition(Importer *importer);
 
-  virtual int QueueComposition(Composition *composition);
-  virtual int Composite();
-  virtual void Dump(std::ostringstream *out) const;
-
-  bool HaveQueuedComposites() const;
+  int QueueComposition(std::unique_ptr<DrmComposition> composition);
+  int Composite();
+  void Dump(std::ostringstream *out) const;
 
  private:
-  DrmCompositor(const DrmCompositor &);
-
-  int CompositeDisplay(DrmCompositionLayerMap_t::iterator begin,
-                       DrmCompositionLayerMap_t::iterator end);
-  int PerformModeset(DrmCompositionLayerMap_t::iterator begin,
-                     DrmCompositionLayerMap_t::iterator end);
+  DrmCompositor(const DrmCompositor &) = delete;
 
   DrmResources *drm_;
 
-  DrmCompositorWorker worker_;
-
-  std::queue<DrmComposition *> composite_queue_;
-  DrmComposition *active_composition_;
-
   uint64_t frame_no_;
 
-  bool initialized_;
-
-  // mutable since we need to acquire in HaveQueuedComposites
-  mutable pthread_mutex_t lock_;
-
-  // State tracking progress since our last Dump(). These are mutable since
-  // we need to reset them on every Dump() call.
-  mutable uint64_t dump_frames_composited_;
-  mutable uint64_t dump_last_timestamp_ns_;
+  // mutable for Dump() propagation
+  mutable std::map<int, DrmDisplayCompositor> compositor_map_;
 };
 }