创建一个全屏的背景以及一个运动的bar,用于检测屏的显示状况以及帧率等
sw_vsync 参数配置:
sw-vsync [-bg_rbga=background_color]
[-display=display_id]
[-double-buffer]
[-format=pixel_format]
[-frame-limit=frames]
[-grid]
[-interval=swap_interval]
[-pipeline=pipeline]
[-pos=x,y]
[-single-buffer]
[-size=widthxheight]
[-transparency=transparency]
[-zorder=zorder]
- -bg_rgba=r,g,b,a, 设置背景颜色和alpha值,例如-bg_rgba=0xff,0xff,0,0xff,黄色不透明背景
- -display=[int]or[str], 设置使用的display
- -double-buffer,使用两个缓冲区
- -format=[str], 设置窗口显示格式
- -frame_limit=[int], 设置最大的渲染帧数
- -gird,显示网格
- -interval=[int],设置刷新间隔数
- -pipeline,指定pipeline id
- -pos=[x],[y], 设置显示偏移位置
- -single-buffer,使用一个渲染缓冲区
- -size=[width]x[height],设置窗口尺寸
- -transparency=[str],设置窗口的透明模式
- -zorder=[int],设置窗口的z-order
使用OpenGL ES 2.x显示硬件渲染的内容
gles2-gears命令参数:
gles2-gears [-bg-alpha=background_alpha_value]
[-brightness=brightness]
[-config=egl_configuration]
[-contrast=contrast]
[-display=display_id]
[-double-buffer]
[-fg-alpha=foreground_alpha_value]
[-frame-limit=frame_limit]
[-hue=hue]
[-interval=swap_interval]
[-pipeline=pipeline_id]
[-pos=x,y]
[-saturation=saturation]
[-single-buffer]
[-size=widthxheight]
[-transparency=transparency_mode]
[-verbose]
[-zorder=zorder]
- -bg-alpha=background_alpha_value, 设置背景alpha值,范围为[0.0f..1.0f],默认值为0.0f
- -brightness=brightness, 设置窗口亮度,范围为[-255..255], 默认是显示硬件的亮度
- -config = egl_configuration,设置可选的EGL的配置说明符,说明符包括像素格式,多重采样或EGL配置符
- -contrast=contrast, 设置窗口对比度,范围为[128..127]
- -display= display_id,设置使用的display
- -double-buffer,使用EGL_BACK_BUFFER(默认)作为EGL surface的EGL_RENDER_BUFFER属性
- -fg-alpha=foreground_alpha_value, 设置前景的alpha值,范围为[0.0f..1.0f],默认为1.0f
- -frame-limit=frame_limit, 设置渲染的帧数
- -hue=hue, 设置窗口的色调,范围为[-128..127]
- -interval=swap_interval, 设置刷新间隔数
- -pipeline=pipeline_id. 设置pipeline
- -pos=x,y, 设置窗口偏移位置
- -saturation=saturation. 设置饱和度,范围为[-128..127]
- -single-buffer, 使用EGL_SINGLE_BUFFER 作为EGL surface的EGL_RENDER_BUFFER属性
- -size=widthxheight, 设置窗口的宽度和高度
- -transparency=transparency_mode, 设置窗口透明度模式
- -verbose, 打印级别
- -zorder=zorder, 设置z-order
修改screen对象的属性
1. 一个程序在创建screen组件完成后,screen进程会将程序设置的一些信息输出在/dev/screen/
/ 文件中。cat /dev/screen/
>/ 后会看到screen的相关信息。
id = __scrn-win-7-00000023-e8deb591790c5becdf276f09b210b3d0
id string = camera_23237c5660_0
permissions = rwxrwx--x--x--x--x--x---
acl = (empty)
locks = (none)
display = dpy-1
status = FULLY VISIBLE
type = SCREEN_APPLICATION_WINDOW
autonomous = 0
references = 1
window manager = (none)
window manager string =
pipeline id = 6
pipeline bound = false
parent = (none)
children = (none)
window above = (none)
window below = (none)
alternate window = (none)
root window = (none)
reclip = 0
updates = 0
valid = WINDOW_SIZE
class =
flags = WIN_FLAG_VISIBLE WIN_FLAG_FLOATING
buffer size = 1920x1080
format = SCREEN_FORMAT_rgb888
color space = SCREEN_COLOR_SPACE_UNCORRECTED
usage = SCREEN_USAGE_READ SCREEN_USAGE_WRITE SCREEN_USAGE_NATIVE
order = 3000
swap interval = 1
default = ssn-0
sessions = *ssn-0
streams = str-3
holes = (none)
regions = (0,0;1280,720)
flip = 0
mirror = 0
scale mode = (default)
source viewport = (0,0 1920x1080)
source clip rectangle = (0,0;1920,1080)
clipped source viewport = (0,0;1920,1080 1920x1080)
destination rectangle = (0,0 1280x720)
clipped destination rectangle = (0,0;1280,720 1280x720)
rotation = 0
clipped rotation = 0
transform = [[0.664063 0 0],[0 0.664063 0],[0 0 1]]
transparency = SCREEN_TRANSPARENCY_SOURCE
color = 0xffcfcfcf
global alpha = 255 -> 255
brightness = 0 -> 0
contrast = 1 -> 1
hue = 0 -> 0
saturation = 0 -> 0
scale quality = 0
idle mode = normal
protection requested = (none)
protection enabled = (none)
cbabc mode = SCREEN_CBABC_MODE_NONE
metrics.dropped = 0
metrics.visible.partial = 19775000000
metrics.visible.full = 19775000000
metrics.updates.count = 197
metrics.updates.pixels = 408 Mpixels
metrics.updates.reads = 4901 Mbytes
- id, screen窗口的唯一标识符,在创建窗口时生成,可调用SCREEN_PROPERTY_ID标志获取
- id string, 窗口名称,可调用SCREEN_PROPERTY_ID_STRING标志设置以及获取
- permissions,窗口权限,可调用SCREEN_PROPERTY_PERMISSIONS标志设置以及获取
- display, display id,可调用SCREEN_PROPERTY_ID标志获取。dpy-1表示窗口在display id 1上
- status, 显示状态,可调用SCREEN_PROPERTY_STATUS标志获取。FULLY表示显示在显示屏上,VISIBLE表示是可见的,FULL表示全屏显示,INVISIBLE表示窗口隐藏
- pipeline id, 使用的pipeline, 可调用SCREEN_PROPERTY_PIPELINE标志设置以及获取
- pipeline bound,是否主动绑定pipeline。如果代码中主动调用SCREEN_PROPERTY_PIPELINE标志设置使用的pipeline,这里就会显示true。如果pipeline的相关配置有问题,这里也会显示一些错误信息
- parent,children, 父,子窗口信息
- window above, 显示在当前进程窗口上面的窗口所在的进程名,显示层级由z-order决定
- window below,显示在当前进程窗口下面的窗口所在的进程名,显示层级由z-order决定
- alternate window, 备用窗口对象,可调用SCREEN_PROPERTY_ALTERNATE标志设置或者获取。它的主要作用是虚拟一个对象,通过它可以将一个display上的鼠标指针移动到另外一个display上。
- root window, 根窗口,在创建窗口时指定SCREEN_ROOT_WINDOW标志。根窗口用于管理和控制其子级的层次结构和更新率
- valid, 显示程序设置的一些窗口属性,例如设置SCREEN_PROPERTY_SIZE,SCREEN_PROPERTY_SOURCE_SIZE等
- flags, 显示程序当前的一些状态,例如VISIBLE, STATIC, FLOATING等
- buffer size, buffer的尺寸, 可调用SCREEN_PROPERTY_BUFFER_SIZE标志设置或者获取
- format, 数据格式,可调用SCREEN_PROPERTY_FORMAT标志设置或者获取
- color space, 色彩空间类型,可调用SCREEN_PROPERTY_COLOR_SPACE标志设置或者获取
- usage, 窗口用法属性,可调用SCREEN_PROPERTY_USAGE标志设置或者获取
- order,窗口层级,可调用SCREEN_PROPERTY_ZORDER标志设置或者获取
- swap interval, 缓冲区刷新间隔,可调用SCREEN_PROPERTY_SWAP_INTERVAL标志设置或者获取。0表示在更新显示时要更新窗口缓冲区;大于0表示窗口按照显示屏的(刷新率 / swap interval)的刷新率进行刷新
- regions, 显示区域,regions = (0,0;1280,720),0,0表示偏移位置,可使用SCREEN_PROPERTY_POSITION标志设置或者获取;1280,720表示显示区域大小,注意这个大小是加上了偏移位置,也就是1280 = 实际显示宽度 + 宽度的偏移
- scale mode, scale模式设置,可调用SCREEN_PROPERTY_SCALE_MODE标志设置和获取
- source viewport, 缓冲区源区域, source viewport = (0,0 1920x1080),0,0表示偏移位置,可以调用SCREEN_PROPERTY_SOURCE_POSITION标志设置和获取;1920x1080表示源大小,可调用SCREEN_PROPERTY_SOURCE_SIZE标志设置和获取。
- source clip rectangle,源裁剪区域。source clip rectangle = (0,0;1920,1080),0,0表示裁剪源位置偏移,可调用SCREEN_PROPERTY_SOURCE_CLIP_POSITION标志设置或获取;1920,1080表示源的大小,主要它是相对于偏移位置,但是不能超过源的最大值
- clipped source viewport, 源裁剪展示。 clipped source viewport = (0,0;1920,1080 1920x1080),0,0表示源裁剪偏移位置,1920,1080表示源裁剪大小,1920x1080表示源的大小
- destination rectangle,目标显示大小,可通过SCREEN_PROPERTY_POSITION和SCREEN_PROPERTY_SIZE标志设置或获取显示位置偏移和大小
- rotation,图像翻转。 可通过SCREEN_PROPERTY_ROTATION表示设置翻转度数
- transparency,透明类型,可通过SCREEN_PROPERTY_TRANSPARENCY标示设置或者获取
- color, 设置背景色,可通过SCREEN_PROPERTY_COLOR标志设置或者获取
- global alpha, 设置透明度,可通过SCREEN_PROPERTY_GLOBAL_ALPHA标志设置或者获取
2. screencmd使用:
示例:
screencmd setcv grp-11 SCREEN_PROPERTY_NAME "My Group Name" screencmd setiv win-1 SCREEN_PROPERTY_BUFFER_SIZE 100,100 screencmd setpv win-1 SCREEN_PROPERTY_ALTERNATE win-2 screencmd setllv dpy-1 SCREEN_PROPERTY_IDLE_TIMEOUT 1234 screencmd setgp win-1 "My Group Name" screencmd apply
用法:
screencmd [cmd]
[cmd]:
•setcv 设置对象属性为“string”型
•setiv 设置对象属性是"int"或者"int"类类型数组
•setllv 设置对象属性为"long"型
•setpv 设置对象属性为指针类型
•setgp 将对象加入到指定字符串所在的组,如果指定的字符串为空,则移除当前组
•apply 刷新修改
[设置的对象]:
Screen object
Prefix
context
ctx-
device
dev-
display
dpy-
group
grp-
pixmap
pix-
session
ssn-
stream
str-
window
win-