我对汇编编程语言很新。我对使用Windows的MASM有一点经验。我想知道如何处理Linux中的GUI。(我已经使用gcc在Linux上组装了简单的程序)我想如果有人可以给我任何资源特别是编码样本。
谢谢!
答案 0 :(得分:3)
你想要:
答案 1 :(得分:0)
如果想“低级”,则在Linux + XFree86(现在称为X.org)上有(或曾经是)https://en.wikipedia.org/wiki/Direct_Graphics_Access。
您可以将帧缓冲区映射到用户空间并通过加载/存储在其上进行绘制,而不是在套接字上进行read
/ write
系统调用(GTK +函数调用的最终结果通常是与X服务器通过套接字)。
或者,当您的程序在没有X服务器(或其他显示服务器,如Wayland)的虚拟控制台上运行时,有各种各样的库允许或多或少地直接访问视频RAM和视频模式。
https://en.wikipedia.org/wiki/Virtual_console#Interface提到DirectFB,DRI,SDL和旧的SVGALib。
更改视频模式通常仍需要系统调用,但是您可以加载/存储到视频RAM。大概不同的库可能有不同的方式来处理vsync /双缓冲/等等。
这不一定更快或更佳:现代图形卡不只是哑帧缓冲器。他们拥有可以加速图形操作的GPU硬件,而直接存储到视频RAM并没有利用它。
但是,如果您真的想直接访问视频RAM,那么这些链接应该是在Linux下的虚拟控制台上的用户空间中实现它的一个很好的起点,希望锁定整个设备的风险较小程序出现错误时进入计算机。
(但是,准备从另一台计算机SSH插入并杀死进程+ chvt。并确保启用魔术SysRQ键以杀死当前控制台上的所有进程以及“ unRaw”键盘输入。
免责声明:我有 not 个人编写的软件可以执行此操作,但是有一些示例,例如FBI (framebuffer image viewer)。我已经使用ssh和/或SysRQ恢复了控制台,但是在使用有问题的软件和/或有问题的驱动程序后,没有重新启动。