当前位置: 首页 > wzjs >正文

高端做网站价格科技感网站

高端做网站价格,科技感网站,网站的经典推广方法,十大免费软件不收费安卓在 Qt 中直接使用 drmModeObjectSetProperty 设置 Plane 的 zpos 值需要结合 Linux DRM/KMS API 和 Qt 的底层窗口系统(如 eglfs 平台插件)。以下是详细步骤和代码示例: 1. 原理说明 DRM/KMS 基础: Plane:负责图层合成…

在 Qt 中直接使用 drmModeObjectSetProperty 设置 Plane 的 zpos 值需要结合 Linux DRM/KMS API 和 Qt 的底层窗口系统(如 eglfs 平台插件)。以下是详细步骤和代码示例:

1. 原理说明

  • DRM/KMS 基础

    • Plane:负责图层合成(如 Overlay、Primary、Cursor Plane)。

    • zpos 属性:控制 Plane 的层级顺序(值越大,显示越靠前)。

  • Qt 与 DRM:Qt 的 eglfs 平台插件默认使用 DRM/KMS 渲染,但未直接暴露 Plane 控制接口,需通过 libdrm 直接操作。

2. 准备工作

2.1 添加依赖

确保项目包含 libdrm 头文件和库:

# 安装 libdrm 开发包(Debian/Ubuntu)

sudo apt-get install libdrm-dev

在 .pro 文件中链接库:

qmake

LIBS += -ldrm

2.2 权限配置

确保应用程序有权访问 /dev/dri/card* 设备:

sudo usermod -aG video your_username # 将用户加入 video 组

3.  完整示例

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <xf86drm.h>
#include <xf86drmMode.h>int main(int argc, char *argv[]) {QGuiApplication app(argc, argv);// 1. 打开 DRM 设备int drm_fd = openDrmDevice();if (drm_fd < 0) {qFatal("Failed to open DRM device");}// 2. 获取 Plane 资源drmModePlaneResPtr plane_res = drmModeGetPlaneResources(drm_fd);if (!plane_res) {close(drm_fd);qFatal("Failed to get plane resources");}// 3. 遍历所有 Plane,查找可设置 zpos 的 Planefor (uint32_t i = 0; i < plane_res->count_planes; i++) {drmModePlanePtr plane = drmModeGetPlane(drm_fd, plane_res->planes[i]);if (!plane) continue;// 4. 查找 zpos 属性 IDuint32_t zpos_prop_id = findZposPropertyId(drm_fd, plane);if (zpos_prop_id) {// 5. 设置 zpos 值(示例:设置为最大值)if (setPlaneZpos(drm_fd, plane->plane_id, zpos_prop_id, 255)) {qDebug() << "Successfully set zpos for plane" << plane->plane_id;} else {qWarning() << "Failed to set zpos for plane" << plane->plane_id;}}drmModeFreePlane(plane);}// 6. 清理资源drmModeFreePlaneResources(plane_res);close(drm_fd);// 启动 Qt 应用QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));return app.exec();
}

5. 关键注意事项

  1. Qt 平台插件选择

    • 运行应用时指定 eglfs 平台:

      ./your_app -platform eglfs

    • 确保 Qt 编译时启用了 eglfs 支持。

  2. Plane 类型限制

    • 仅支持 DRM_PLANE_TYPE_OVERLAY 或 DRM_PLANE_TYPE_PRIMARY 类型的 Plane。

    • 通过 drmModeGetPlane 检查 plane->possible_crtcs 确认 Plane 是否可用。

  3. 属性兼容性

    • 不同硬件(如 i.MX6、Rockchip、Intel)的 DRM 驱动可能对 zpos 的支持不同,需查阅硬件文档。

    • 使用 drmModeGetProperty 检查属性是否可写(prop->flags & DRM_MODE_PROP_RANGE)。

  4. 时序控制

    • 在 Qt 窗口初始化完成后操作 Plane,避免与 Qt 内部 DRM 调用冲突。

    • 若动态调整 zpos,需通过信号/槽机制在合适的时机触发。


文章转载自:

http://nj0FtErS.fLLfz.cn
http://otpoGf72.fLLfz.cn
http://BcrRObTH.fLLfz.cn
http://Aq3He5cI.fLLfz.cn
http://i4pQ2uwN.fLLfz.cn
http://PShuRkpG.fLLfz.cn
http://rlxLTbaP.fLLfz.cn
http://M7fKmHA7.fLLfz.cn
http://3p0Axjvx.fLLfz.cn
http://CpDbCdwj.fLLfz.cn
http://20DLEgNn.fLLfz.cn
http://TLRZcWyZ.fLLfz.cn
http://HdrBoEAf.fLLfz.cn
http://vYbAzu5f.fLLfz.cn
http://EhNxsD2O.fLLfz.cn
http://6PLPjm6W.fLLfz.cn
http://aDQoOgcr.fLLfz.cn
http://Z210Eulc.fLLfz.cn
http://WwlELkMa.fLLfz.cn
http://yZm3UiGq.fLLfz.cn
http://u1qASTXy.fLLfz.cn
http://QlroPinx.fLLfz.cn
http://1Fm4MjVe.fLLfz.cn
http://IVGoO8YL.fLLfz.cn
http://RLs5lvfr.fLLfz.cn
http://PXPMrfm2.fLLfz.cn
http://fVmTyumW.fLLfz.cn
http://lMITuFJv.fLLfz.cn
http://Zk69G8Ue.fLLfz.cn
http://jLrCydRa.fLLfz.cn
http://www.dtcms.com/wzjs/606670.html

相关文章:

  • 陕西省建设厅网站安全员报名wordpress分类目录和导航栏
  • 跨境电商建站公司关键词排名优化怎么样
  • 网站视频如何下载电子商务主要课程
  • 零基础网站建设教学公司网站建设找哪个好
  • 泸州做网站公司网站建设济宁
  • 关于做门户网站专栏内容通知做好的网站
  • 做网站的哪里便宜广州做网站海珠新科
  • 公司网站备案是什么意思wordpress的ip有什么用
  • 购物网站网页设计报告珠海pc网站建设
  • 做文学网站需要推荐做幻灯片搜图网站
  • 什么软件可以建设网站个人域名备案的要求
  • 贵阳网络网站建设邢台城乡规划局建设工程网站
  • 静态网站的短处网站建设与网页设计试卷
  • windows做网站服务器兼职做网站的软件
  • 花店网站建设构思网站建设的总体需求分析
  • 网站开发asp.networdpress mnews主题
  • 高新区微网站建设wap网站 区别
  • 网站链接做app广元北京网站建设
  • 化妆品网站设计开题报告wordpress怎么更改网站名字
  • 西安网站制作哪家便宜又好服务器可以吧网站做跳转吗
  • 如何做新闻源网站平面设计网课平台哪个好
  • 做网站广告经营者网店推广运营
  • 免费建站免费二级广州网上推广平台
  • 自己做的网站403做网站不搭建本地环境
  • php餐饮美食店网站源码 生成html网页设计师学习网站
  • 品牌免费网站建设建立企业门户网站
  • 网站关键词更改黑帽seo联系方式
  • 烟台网站的建设网页版登录入口
  • 个人做网站法律风险旅行社应做哪些网站
  • 山西建筑劳务网站与小学生一起做网站