Articles of framebuffer

通过命令行在Linux中执行桌面应用程序,而不显示其GUI窗口

我有一个窗口的应用程序(带有graphics或GUI X窗口的应用程序),它将文本文件作为input(stdin)并写入输出文本文件。 在计算过程中,它会短暂地打开一个graphics计算所必需的窗口,然后应用程序退出。 我怎样才能将这个程序整合到一个纯粹的文本和自动化的批处理环境中的一个shell在linux? 当我尝试在shell中运行它时,当然我得到一个错误“无法打开显示”。 有没有办法隐藏APP窗口,以便它可以纯粹在shell中运行? (在我的情况下,它实际上是一个AIR应用程序,但我希望这是一般可以解决的各种基于xwindow的应用程序)

更改Linux帧缓冲区背景颜色

我的问题是关于Linux内核。 当framebuffer设备初始化(我猜它是vesafb ),屏幕上充满了黑色。 我怎样才能改变这种颜色? 我应该编辑哪个文件? 我想这是在司机/video/东西。 我只知道更改控制台背景( drivers / tty / vt / vt.c ),但这不是我所需要的。 VGA控制台已closures。 如果我的描述不清楚,我有一个video ,显示我的系统在虚拟机启动。 内核加载后,QEMU窗口将其大小更改为640×480并变为完全黑色(0:03-0:04)。 这是我想修改的。 在我的init启动之后。 它将文本输出到framebuffer,然后死亡,导致内核恐慌和重启1秒。 然后一切都开始了。

在从帧缓冲区读取之前,我需要caching无效吗?

我试图在Linux机器上读取/dev/fb0 。 我只是open("/dev/fb0", O_RDWR) ,然后mmap ,然后从映射的指针memcpy 。 一切似乎都很好,除了我得到的图像的右上angular是从前一帧。 这似乎是一个caching一致性问题给我。 具体来说,我正在GPU和CPU共享内存的ARM芯片上运行它。 这是真的吗? 在mmap到帧缓冲区之后,通常的做法是使caching失效吗? 如果我需要使内存无效,我应该使用哪个API调用? 我正在尝试TI的SDK中的Memory.h,但是还有更多的标准/ Linux / Posixselect吗?

Linux framebuffer像素位域通用实现

我正在编写一个小型库来与Linux的帧caching抽象接口。 我所有的显卡都使用相同的像素格式(每个通道一个八位字节,四个通道,BGRAsorting),所以到目前为止,图书馆只是采用这种格式。 但是,framebuffer API提供了像素格式的数据,如果我想要在任何Linux帧缓冲区上工作,我必须使用这些数据。 你不需要知道framebuffer如何工作来回答这个问题(我希望),只是一些我不擅长的技术。 以下是我的标题中提供的像素格式信息: /* Interpretation of offset for color fields: All offsets are from the right, * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you * can use the offset as right argument to <<). A pixel afterwards is a bit * stream and is written to video memory […]

Linux Framebuffer正确设置分辨率

我有一个RaspberryPi,并希望显示一个没有xserver的全屏图像 – 所以直接写入帧缓冲区。 这里没问题。 但是设置全屏不起作用。 cat /sys/class/graphics/fb0/modes 收益率: U:1024x768p-0 U:1920x1200p-0 U:1920x1080p-0 U:608x684p-0 所以我用 fbset -xres 1920 -yres 1200 -match 导致 >>fbset mode "1920×1200" geometry 1920 1200 1920 1200 16 timings 0 0 0 0 0 0 0 rgba 5/11,6/5,5/0,0/16 endmode 如果我现在使用fbi来显示一个图像,或者只填写framebuffer /dev/urandom >> /dev/fb0 ,只是部分屏幕被填充。 显示部分的方面是正确的,周围只是一个很大的黑色边界。 如果我使用其他解决scheme,一切都按预期工作,例如fbi中的统计信息变得更大等。 我做错了什么?

C + Linux:如何接pipeframebuffer

我有一个直接渲染帧缓冲的OpenGL应用程序。 如果我从terminal启动应用程序,有时我会看到在应用程序后面闪烁的光标。 同样,如果我从X中的terminal模拟器启动它,如果我移动鼠标,我会看到鼠标移动到后面。 我的应用程序目前呈现在45fps如此低的帧率不应该是问题。 我注意到当X开始的时候,似乎在开始渲染之前清除了shell,但是之后当closuresX服务器时,发送到stdout的诊断信息又回来了,所以我怀疑它是发出一个清晰的命令。 我想做什么? 你可以简单地渲染到fb1,并告诉video输出从fb1显示,而不是争取fb0? 那么当你的应用程序死亡,你可以返回到fb0的显示? 编辑: 为了澄清,该应用程序正在开发用于embedded式系统的ARM SoC(飞思卡尔i.MX6)与Vivante GPU和ArchLinux ARM上运行。

如何通过linux framebuffer在屏幕上显示的东西?

我发现下面的代码被devise成在屏幕上画一个方块。 #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> #include <sys/ioctl.h> int main() { int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; long int screensize = 0; char *fbp = 0; int x = 0, y = 0; long int location = 0; // Open the file for reading […]

Linux Framebuffer模式

我目前正在研究embedded式Linux帧缓冲区。 我知道如何通过键入以下内容来显示我的系统的可用分辨率: cat /sys/class/graphics/fb0/modes 这给了我一个决议清单,例如: U:720x576p-50 D:1920x1080p-50 D:1280x720p-50 D:1920x1080i-60 D:1920x1080i-50 U:1440x900p-60 S:1280x1024p-60 V:1024x768p-60 V:800x600p-60 V:640x480p-60 D:1280x720p-60 D:1920x1080p-60 我想知道每行的第一个字符是什么意思(S,U,V或D)。 是否有一个标准/文件列出所有可能的字符?

如何捕获Linux framebuffer上的屏幕电影logging

如何捕获Linux帧缓冲区以获得屏幕电影? 我已经没有了解如何获得framebuffer和转换为图像,但我不知道如何将它们录制到电影。 有人可以告诉我一些方法来将帧缓冲转换成电影? 或者给我一些show.c或java的例子都可以。

在fb_var_screeninfo中设置yres_virtual时,无效的参数错误

我试图做一个直接写入framebuffer / dev / fb0的Linux应用程序。 为了使它双缓冲,我尝试使虚拟屏幕的大小是屏幕的两倍。 这是我写的程序: struct fb_var_screeninfo screeninfo_var; struct fb_fix_screeninfo screeninfo_fixed; unsigned int* screenbuffer; void gfx_init() { fb0 = open("/dev/fb0", O_RDWR); if(fb0 == 0) error("Could not open framebuffer located in /dev/fb0!"); if (ioctl(fb0, FBIOGET_FSCREENINFO, &screeninfo_fixed) == -1) error("Could not retrive fixed screen info!"); if (ioctl(fb0, FBIOGET_VSCREENINFO, &screeninfo_var) == -1) error("Could not retrive variable […]