使用 DirectFB 的 SDL 应用程序错误:没有可用的视频设备

发布于 2024-11-27 19:44:59 字数 442 浏览 2 评论 0原文

我希望这很简单。我正在从我的 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 则不会。

I'm hoping this is something simple. I am writing an app for an embedded linux platform from my Ubuntu linux desktop. The app itself works fine under X11. I can also get it to work using the fbcon driver and /dev/fb0.

However, if I putenv("SDL_VIDEODRIVER=directfb"); i get the error "No available video device"

I'm still pretty new to SDL so I'm not sure what's going on. I have just installed libsdl on my ubuntu desktop using 'apt-get install libsdl'. So does the standard ubuntu SDL build not have support for DirectFB? Is there something else I need to install/setup/execute before this will work?

Or, more importantly, is there any point/advantage in trying to get DirectFB working when fbcon works fine? I thought that DirectFB would allow me to set video modes correctly and offer some form of hardware acceleration that fbcon will not.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生寂 2024-12-04 19:44:59

SDL 为程序员提供了一个抽象,作为该抽象的一部分,它可以被迫在后端使用许多不同的硬件视频模式。

您试图强制它使用底层硬件不支持的硬件模式。

强制它使用特定硬件模式的唯一原因是您怀疑您可能能够从特定模式获得更高的性能,或者您希望更好地控制正在发生的事情。例如,某些硬件模式支持全屏、更智能的屏幕缩放、图形加速等。

最后,您只需向 SDL 传递提示,它可能会或可能不会执行您怀疑的操作。如果您强制它使用特定的后端,那么它更有可能执行您怀疑它应该执行的操作。

SDL provides an abstraction for you, the programmer, and as part of that abstraction it can be forced to use a number of different hardware video modes on the back end.

You are trying to force it to use a hardware mode that is not supported by the underlying hardware.

The only reason to force it to use a specific hardware mode is that you suspect you might be able to get higher performance from a specific mode, or that you want more control over what is happening. For instance some hardware modes support full screen, smarter screen scaling, accelerated graphics, and so on.

In the end, you just pass hints to SDL, and it may or may not be doing what you suspect. If you force it to use a specific back end, their is a higher probability that it is doing what you suspect it should be doing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文