问题标签 [directfb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
embedded-linux - 从 xserver 到 xdirectfb
嗨 是否可以卸载 xserver 并使用带有小窗口管理器的 xdirectfb - 就像很棒的一样?我是否需要从源代码编译我想与 xdirectfb 一起使用的每个应用程序?
从这些链接中,我不清楚:
c - 将两位颜色转换为八位颜色
我有六位颜色值,红色、绿色和蓝色各有两位。所以黑色将被表示为 binary 000000
、 red 110000
、 blue 000011
、 yellow111100
等等。
我必须将此颜色转换为 24 位 rgb 值才能将其传递给图形层(DirectFB)。由于三(二进制 11)要变成 255(0xFF),所以我使用以下公式,以 85(=255/3)作为转换因子。
这会正确转换颜色(白色 [0x3F -> 0xFFFFFF]、红色 [0x30 -> 0xFF0000] 等)。
现在,这些颜色是要在电视上显示的字幕的文本和背景颜色,我们有测试流,其中嵌入了视频中的参考调色板。当我将使用此公式获得的八位颜色绘制到屏幕上时,它与视频中存在的参考颜色并不完全匹配 - 它相当接近,但存在差异。
我是否正确地进行了转换,或者是否有任何标准算法可以将两位 rgb 颜色值转换为八位 rgb 值?DirectFB 是否可以在内部使用一些不同的表示形式(如 RGB565)?
对于它的价值,当因子 85 被替换为 48(通过反复试验找到的值)时,颜色几乎完美匹配。
linux - 我可以为 DirectFB 构建 FireBreath NPAPI 插件吗?
是否可以使用 FireBreath 为在 directFB、嵌入式 linux 上运行的 webkit 浏览器构建 NPAPI 插件?
我问是因为我发现在 ubuntu 上构建我的测试插件时,它使用的是 x11 相关文件,
好吧,我不想制作一个 gui 插件,我正在制作一个插件,我们可以通过它使用 JavaScript 从浏览器控制外部媒体播放器。
c++ - SDL 应用程序使用 DirectFB 错误:没有可用的视频设备
我希望这很简单。我正在从我的 Ubuntu linux 桌面为嵌入式 linux 平台编写应用程序。该应用程序本身在 X11 下运行良好。我还可以使用 fbcon 驱动程序和 /dev/fb0 让它工作。
但是,如果我putenv("SDL_VIDEODRIVER=directfb");
收到错误“没有可用的视频设备”
我对 SDL 还是很陌生,所以我不确定发生了什么。我刚刚使用“apt-get install libsdl”在我的 ubuntu 桌面上安装了 libsdl。那么标准的 ubuntu SDL 构建不支持 DirectFB 吗?在此之前我还需要安装/设置/执行其他东西吗?
或者,更重要的是,当 fbcon 工作正常时,尝试让 DirectFB 工作是否有任何意义/优势?我认为 DirectFB 将允许我正确设置视频模式并提供某种形式的硬件加速,而 fbcon 不会。
android - Android GUI架构——Surface/view/window/canvas之间的关系
==========================
更新:经过几天的谷歌搜索和实验,我找到了大多数愚蠢问题的答案。查看我提交的答案。
=========
Android Window 的职责是什么?
这里有一些问题:
- 它负责收集和分派输入吗?
- 视图和窗口之间是什么关系?和DFB中表面和窗口的关系一样吗?
- 活动和窗口之间有什么关系?每个Activity都会有一个窗口吗?
- 是否可以从应用程序创建一个窗口?什么时候有必要?
- Android是否支持多窗口?
编辑:添加更多问题:
Window、View、Canvas、Surface 等各个类的职责是什么,以及它们如何相互协作?
一个活动通常有多少个窗口?
3. 一个Activity中的所有视图会被附加到Window吗?附上是什么意思?
每个窗户都有表面吗?每个 Canvas 都有表面?
View负责focus/keyEvent/manager,而Cavus只负责“绘图”操作。
WindowManager 负责 Window 堆叠?这与 SurfaceFlinger 有什么关系?
View 不拥有 Surface ,视图包含的 Window 拥有?
View 使用通过调用 surface.lockCanvas() 获得的画布绘制自身。
何时调用 onDraw(Canvas)?如何和谁传递画布参数?
帆布有尺寸吗?Window 的表面是否总是全屏显示?
再次编辑:
在观看了 Romain Guy http://www.youtube.com/watch?v=duefsFTJXzc&feature=feedwll&list=WL提供的精彩演示之后,解决了几个问题并添加了更多 :)
- 每个 Activity 都会有一个 ViewRoot 和一个 Window 吗?
- 是否需要明确创建一个窗口?窗口的表面是否总是全屏?
- 状态栏会在另一个窗口中吗?
- 表面的尺寸是多少?会一直全屏吗?
framebuffer - 来自内存缓冲区的 DirectFB 数据
我需要一种将数据缓冲区显示到屏幕的非常快速的方法。我首先尝试访问 linux 帧缓冲区,结果证明非常好。然后我了解了 directFB,我喜欢它提供的额外功能(如快速 memcpy、即时调整图像大小、无需额外代码等)。但后来我遇到了一个障碍——所有示例都是针对从文件加载的图像。据我所知,它的“DataBuffer”类型没有示例/教程。在查看文档和源代码后,我设法编译了如下内容:
所以基本上我从 DFB 创建一个 DataBuffer,然后从 DataBuffer 创建一个 ImageProvider 并将其设置为在表面上渲染。但是,当我运行它时,它会引发错误:
方法真的没有实现吗?我目前正在使用 DirectFB 1.4,从 API 文档中该函数应该在那里。话虽如此,有谁知道如何从内存中获取缓冲区(char * 640 * 480 * 4 RGBA)以使用DirectFB渲染到帧缓冲区?
谢谢。
qt4 - 在 Qt Embedded + directFB 中访问多个帧缓冲区?
我正在为嵌入式 linux/MIPS 设备开发 Qt 应用程序。到目前为止,我设法在设备上执行了我的 Qt 应用程序。现在我需要在视频之上创建叠加层。硬件提供四个叠加窗口,不支持 OpenGL。
到目前为止尝试过:
- 尝试在视频之上创建
QStackedLayout
和创建叠加层。QGraphicsView
但是覆盖显示为黑色,尽管覆盖上的小部件会响应用户点击。 - 试图直接访问多个帧缓冲区。我可以访问/dev/fb0但不能访问 / dev/fb1 , 2 , 3。
- 尝试创建一个简单的 Qt 应用程序,上面有一个对话框和一个按钮。我尝试使用此命令在嵌入式设备上执行它
./<appname> -display directfb:/dev/fb1:2
。但它无法打开/dev/fb1。
问题:
- 如何使用 LCD 控制器提供的覆盖窗口?
- 是否可以使用 QT 提供的 directfb 插件并利用其对 OpenGL 的支持?
- 我是否必须将/dev/fb1显式映射到用户空间才能使用它?
在这方面需要紧急帮助。
opengl-es - Directfbgl 与 Qt-4.6.2
我正在使用为 Linux/MIPS 设备与 directfb-1.4.14 交叉编译的 Qt-4.6.2。我正在尝试在播放一些视频的 QT 应用程序之上创建叠加层。最近在 DirectFB 网站上的新闻中,更新了 DirectFB 上的 Qt 应用程序现在可以使用 OpenGL。这是我的问题:
- 是否可以在 Linux/MIPS 设备上将 directfbgl 与 Qt-4.6.2 一起使用?如果是,如何将 directfbgl 与 Qt-4.6.2 合并并交叉编译?
- directfbgl 应用程序会在我不支持 OpenGL 的硬件上运行吗?
谁能帮帮我吗?
linux - 键盘为拉丁字符返回错误的键码
我正在编写一个使用 DirectFB v1.4.2 / Linux 键盘驱动程序处理按键的应用程序。我收到的关键代码包含错误的拉丁字符值。在 USB 键盘上按字符“a”时,我收到一个 Unicode 值“0xF601”。但是,拉丁字符“a”的 Unicode 值似乎不同。请让我知道这里出了什么问题。DirectFB中是否需要设置任何特定设置?
提前致谢。
linux - 没有 X 的 Mesa3D
在过去的 2 天里,我一直在搜索这个主题,但没有找到任何最新的答案。我有一个基于最新开发LFS(基于 Kernel 3.4.1)但没有安装 X 服务器的测试项目。而且我想使用将使用 OpenGL ES 2.x 的 Mono(或不使用)构建一个应用程序。
我可以使用 Mesa3D,但在他们的网站上,它取决于 X。我看到了 DRI,但它仍然基于 X。我偶然发现了带有 DirectFBGL 的DirectFB,但后者大约有 8 年的历史......
所以问题是:有没有办法在 Linux 内核 3.4.1 上使用 Mono(或不使用)在没有 X 的情况下运行 OpenGL ES 2.x?
编辑 1:我现在的目标是 x86 或 x64 PC。那么使用 OpenGL ES 是否明智?