Wayland

Wayland helloworld (四)之窗口显示

匿名 (未验证) 提交于 2019-12-02 23:59:01
Wayland窗口绘制 Wayland窗口绘制有两种:1) 共享内存方式、2)EGL。 本文使用方式1绘制窗口。 Wayland窗口:wl_surface Wayland窗口绘制完全由程序控制,包括标题栏绘制,边框绘制,窗口移动,改变大小等。 其中与窗口绘制有关的函数有: wl_surface_attach() 将缓存绑定到窗口上,窗口大小会根据缓存重新计算。 wl_surface_damage() 标记窗口失效的区域 wl_surface_commit() 缓存提交请求,合成器会锁定提交的缓存,直到下一次wl_surface_attach或合成器主动释放。 wl_surface_frame() 申请帧绘制回调,每当绘制完一帧就发送wl_callback::done消息。 Walyand缓存:wl_buffer Wayland窗口显示的内容由wl_buffer负责。Wayland与X Server不同,Wayland只支持客户端直接绘制,合成器不提供对wl_buffer的绘制操作。与wl_buffer有关的函数有: wl_shm_create_pool() 创建一个缓存池,缓存池可以mmap到程序的内存空间中。 wl_shm_pool_create() 创建一个wl_buffer。 示例代码: lpBuffer -> data = mmap ( NULL , size , PROT

wayland helloworld (һ)

匿名 (未验证) 提交于 2019-12-02 23:59:01
介绍 Wayland是linux新一代的窗口系统服务器,将来肯定会替代X Server,学习一下还是很有必要的。如果有Win32 GUI编程经验的话学习Wayland会相对容易点。Win32 GUI编程中有两个主要函数WinMain和WndProc,前者负责消息分发,后者负责具体窗口的消息处理。在Wayland中也是使用这种方式,只不过Wayland使用Listener处理消息而不是WndProc。 Listener 常用的Listener有: wl_pointer_listener:处理鼠标消息。 wl_keyboard_listener:处理键盘消息。 frame_listener:处理窗口绘制消息。 Wayland全局对象 几乎所有的Wayland API都需要Wayland全局对象作为参数。 Wayland全局对象: wl_display:表示与服务器的连接。 wl_registry:全局对象注册表,全局对象需要通过它获取。 wl_compositor:窗口合成器,也是服务器。 wl_shm:内存管理器,与窗口合成器共享内存用。 wl_shell:支持窗口操作功能。 wl_seat:输入设备管理器。 wl_pointer:代表鼠标设备。 wl_keyboard:代表键盘设备。 wl_registry Wayland没有提供Get函数来获取以上全局对象,只能通过wl

Linux graphic_DRI介绍

匿名 (未验证) 提交于 2019-12-02 21:59:42
http://www.wowotech.net/linux_kenrel/dri_overview.html 1. 前言 上篇文章( Linux graphic subsytem(1)_概述 )介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。文中提到了linux DRI(Direct Render Infrastructure)框架,但限于篇幅,没有过多介绍。 蜗蜗觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How三个角度,介绍DRI框架。 在GUI环境中,一个Application想要将自身的UI界面呈现给用户,需要2个步骤: 1)根据实际情况,将UI绘制出来,以一定的格式,保存在buffer中。该过程就是常说的“Rendering”。 不知道为什么,wowo一直觉得“Render”这个英文单词太专业、太抽象了,理解起来有些困难。时间久了,也就不再执著了,看到它时,就想象一下内存中的图像数据(RGB或YUV格式),Rendering就是生成它们的过程。 通常来说,Rendering有多种表现形式,但可归结为如下几类: a)2D的点、线、面等绘图,例如,“通过一个for循环

How do I get the active window on Gnome Wayland?

不想你离开。 提交于 2019-12-02 20:10:19
Background: I'm working on a piece of software called ActivityWatch that logs what you do on your computer. Basically an attempt at addressing some of the issues with: RescueTime, selfspy, arbtt, etc. One of the core things we do is log information about the active window (class and title). In the past, this has been done using on Linux using xprop and now python-xlib without issue. But now we have a problem: Wayland is on the rise, and as far as I can see Wayland has no notion of an active window. So my fear is that we will have to implement support for each and every desktop environment

Where do I start if I want to write a wayland compositor?

杀马特。学长 韩版系。学妹 提交于 2019-11-28 21:16:44
问题 I imagine there isn't a "Beginner's guide to wayland server programming" drifting around the web, and the weston source looks daunting. Is there a barebones wayland server I can look at to give me an idea where to start? Something I can run under X that I can confirm is recieving input. I'm sure I can go from there. 回答1: Take a look at the Small Wayland Compositor. You can either use it as library to build upon, or check out how it does things internally if you want to start from scratch. 回答2

VMware Workstation Pro 15.1.0 官方版+激活密钥

拟墨画扇 提交于 2019-11-27 06:46:27
VMware Workstation Pro 15.1.0 官方版+激活密钥 2019-05-15 分类: 虚拟机 阅读(167189) 评论(22) VMware Workstation 产品允许用户将 Linux、Windows 等多个操作系统作为虚拟机在单台 PC 上运行。用户可以在虚拟机上重现服务器、桌面和平板电脑环境,无需重新启动即可跨不同操作系统同时运行应用。Workstation 还提供隔离的安全环境,用于评估新的操作系统(如 Windows 10)、测试软件应用和补丁程序以及参考体系结构。 借助 Workstation 产品,可以仅从一台本地 PC 轻松测试几乎任何操作系统和应用。构建面向 Windows 10 的应用、使用任何浏览器测试兼容性,或者在无需使用移动设备的情况下部署 Android-x86 以查看移动设备行为。 官方网站:www.vmware.com 功能特性: 巨型虚拟机 创建拥有多达 16 个虚拟 CPU、8 TB 虚拟磁盘以及 64 GB 内存的大规模虚拟机,以便在虚拟环境中运行要求最严苛的桌面和服务器应用。通过为虚拟机分配多达 2 GB 的显存,可以进一步提升图形密集型应用的处理能力。 高性能 3D 图形 VMware Workstation 产品现在支持 DirectX 10 和 OpenGL 3.3,可在运行 3D