kmscube: use drmModeAddFB2 version of ExtFB
[android/external-libkmsxx.git] / kmscube / cube-gbm.cpp
index bbf58d1377f0017f0b4f4cfbae36909ec2a8a5b4..993434b186370429553e049efcc819b8cdf341f3 100644 (file)
@@ -9,8 +9,8 @@
 #include <xf86drmMode.h>
 #include <gbm.h>
 
-#include <kms++.h>
-#include "test.h"
+#include <kms++/kms++.h>
+#include <kms++util/kms++util.h>
 #include "cube-egl.h"
 #include "cube-gles2.h"
 
@@ -89,7 +89,7 @@ class GbmEglSurface
 {
 public:
        GbmEglSurface(Card& card, GbmDevice& gdev, const EglState& egl, int width, int height)
-               : card(card), gdev(gdev), egl(egl), m_width(width), m_height(height),
+               : card(card), egl(egl), m_width(width), m_height(height),
                  bo_prev(0), bo_next(0)
        {
                gsurface = unique_ptr<GbmSurface>(new GbmSurface(gdev, width, height));
@@ -132,8 +132,13 @@ public:
                uint32_t height = gbm_bo_get_height(bo);
                uint32_t stride = gbm_bo_get_stride(bo);
                uint32_t handle = gbm_bo_get_handle(bo).u32;
+               PixelFormat format = (PixelFormat)gbm_bo_get_format(bo);
 
-               fb = new ExtFramebuffer(card, width, height, 24, 32, stride, handle);
+               uint32_t handles[4] { handle };
+               uint32_t strides[4] { stride };
+               uint32_t offsets[4] { 0 };
+
+               fb = new ExtFramebuffer(card, width, height, format, handles, strides, offsets);
 
                gbm_bo_set_user_data(bo, fb, drm_fb_destroy_callback);
 
@@ -161,7 +166,6 @@ public:
 
 private:
        Card& card;
-       GbmDevice& gdev;
        const EglState& egl;
 
        unique_ptr<GbmSurface> gsurface;