概述
1. 关于linux DRM的介绍以及基本的single buff, duble buff的使用,请参考
这里面的介绍比较详尽。
2. plane操作
这里以atmel SAMA5D27 的LCD控制器为例,LCD有4个planes,
base plane, over1 plane, over2 plane, HEO plane
先介绍下drmModeSetPlane,该函数用来设定plane的位置、长宽参数:
drmModeSetPlane(plane_id, crtc_id, fb_id, 0,
crtc_x, crtc_y, crtc_w, crtc_h,
src_x<<16, src_y<<16, src_w << 16, src_h << 16);
比如:
drmModeSetPlane(plane_id, crtc_id, fb_id, 0,
10,20, 200, 200,
0<<16, 0<<16, 200<< 16, 200<< 16);
表示在屏幕(10,20)坐标处设定size为200x200的plane
3. property
每个plane有很多的属性,如旋转、透明度等,这些属性可以通过drmModeGetProperty和drmModeObjectSetProperty来进行获取和设定
关于多层plane及相关property的操作代码,参考:
4. modetest使用
modetest是libdrm下的一个很有用的drm测试程序,使用示例如下:
$modetest -M atmel-hlcdc -s 24@31:800x480
24是connect id, 31 crtc id,这些id可以使用$./modetest 命令来获取
执行命令后
800x480的屏幕上会显示彩条
$modetest -M atmel-hlcdc -s 24@31:800x480 -w 30:alpha:100 -P 30@31:200x200+200+200
在base plane上显示id为30的plane,位置为(200,200),大小为200x200,同时设定该plane的透明度为100(最大255),这里的-w是设定property 参数
最后
以上就是热情小伙为你收集整理的linux的DRM应用程序,linux DRM driver 使用示例的全部内容,希望文章能够帮你解决linux的DRM应用程序,linux DRM driver 使用示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复