在学习研究libdrm和DRM的时候,为了了解和研究KWin中Compositor::composite核心中的图像帧绘制机制,在最终调用到的DrmFramebuffer::createFramebuffer函数中加入了以下代码:
- std::shared_ptr
DrmFramebuffer::createFramebuffer1(const std::shared_ptr &buffer, const std::shared_ptr &gbmbuffer) - {
- const auto size = buffer->size();
- const auto handles = buffer->handles();
- const auto strides = buffer->strides();
- const auto offsets = buffer->offsets();
- struct gbm_bo *bobo = gbmbuffer->bo(); //phph1
-
- uint32_t framebufferId = 0;
- int ret;
- if (buffer->gpu()->addFB2ModifiersSupported() && buffer->modifier() != DRM_FORMAT_MOD_INVALID) {
- //qCCritical(KWIN_DRM, "daozhelile vvvv111...\n\n"); //phph
- uint64_t modifier[4];
- for (uint32_t i = 0; i < 4; i++) {
- modifier[i] =