Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56b4f0b7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "minui: Add API to support multiple connectors detection" am: ece44b94

parents fa1855a5 ece44b94
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -502,3 +502,7 @@ void gr_fb_blank(bool blank, int index) {
void gr_rotate(GRRotation rot) {
  rotation = rot;
}

bool gr_has_multiple_connectors() {
  return gr_backend->HasMultipleConnectors();
}
+4 −1
Original line number Diff line number Diff line
@@ -40,8 +40,11 @@ class MinuiBackend {
  // Blank (or unblank) the specific screen.
  virtual void Blank(bool blank, DrmConnector index) = 0;

  // Return true if the device supports multiple connectors.
  virtual bool HasMultipleConnectors() = 0;

  // Device cleanup when drawing is done.
  virtual ~MinuiBackend() {};
  virtual ~MinuiBackend() = default;
};

#endif  // _GRAPHICS_H_
+4 −0
Original line number Diff line number Diff line
@@ -200,6 +200,10 @@ void MinuiBackendDrm::Blank(bool blank, DrmConnector index) {
  }
}

bool MinuiBackendDrm::HasMultipleConnectors() {
  return (drm[DRM_SEC].GRSurfaceDrms[0] && drm[DRM_SEC].GRSurfaceDrms[1]);
}

static drmModeCrtc* find_crtc_for_connector(int fd, drmModeRes* resources,
                                            drmModeConnector* connector) {
  // Find the encoder. If we already have one, just use it.
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ class MinuiBackendDrm : public MinuiBackend {
  GRSurface* Flip() override;
  void Blank(bool) override;
  void Blank(bool blank, DrmConnector index) override;
  bool HasMultipleConnectors() override;

 private:
  void DrmDisableCrtc(int drm_fd, drmModeCrtc* crtc);
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,11 @@ void MinuiBackendFbdev::Blank(bool blank, DrmConnector index) {
  fprintf(stderr, "Unsupported multiple connectors, blank = %d, index = %d\n", blank, index);
}

bool MinuiBackendFbdev::HasMultipleConnectors() {
  fprintf(stderr, "Unsupported multiple connectors\n");
  return false;
}

void MinuiBackendFbdev::SetDisplayedFramebuffer(size_t n) {
  if (n > 1 || !double_buffered) return;

Loading