【问题标题】:SFML 1.6 Fullscreen Crash on Gnome 3Gnome 3 上的 SFML 1.6 全屏崩溃
【发布时间】:2012-06-10 15:09:42
【问题描述】:

我正在尝试使用 SFML 的全屏模式进行测试,但是每次窗口进入全屏模式时它都会崩溃。这是我的程序:

#include <stdio.h>
#include <SFML/Graphics.hpp>

int main ( int argc, char** argv ) {
    sf::Window win( sf::VideoMode ( argc >= 3 ? atoi ( ( const *char ) argv[1] ) : 1280, argc >= 3 ? atoi ( ( const *char ) argv[2] ) ), "", sf::Style::Fullscreen );

    while ( win.IsOpened ( ) ) {
        sf::Event in;

        while ( win.GetEvent ( in ) ) {
            if ( in.Type == sf::Event::KeyPressed ) {
                switch ( in.Key.Code ) {
                    case sf::Key::Q:
                        win.Close ( );
                        break;

                    default:
                        break;

                }
            }
        }

        win.Display ( );
    }
}

我用 makefile 用这个命令编译它:

g++ -o build/Test -lsfml-system -lsfml-window -lsfml-graphics src/main.cpp

当我从终端运行程序时它崩溃了:

build/Test 1440 900

build/Test

我在 Apple Macbook Air (4, 2) 上运行 ubuntu linux 12.04。我尝试同时使用 gdm 和 lightdm,它们都有相同的结果。此外,它适用于 gnome 2、unity 和 openbox,但不适用于 gnome 3。

我不介意弄乱配置文件,但我想继续使用 gnome shell,因为它目前是我最喜欢的 DE。

【问题讨论】:

  • 你在那里使用了大量不必要的指针,当然——泄漏了它们的内存。像 SFML 这样的库的全部意义在于您使用指针。现在,您没有提及它在 哪里 崩溃(您是否调试过?)以及终端上的错误消息是什么。
  • @up 是对的,而且 1.6 确实已经过时了。我知道 2.0 还没有正式发布,但可能值得一试并自己从源代码编译它。我发现这种方法通常不太容易出错。
  • 但是,但是……指针不是很酷很高效吗? ;)
  • 所有酷孩子都使用指针。
  • 它在“显示()”功能上崩溃。我会尝试编译下一个版本,谢谢。我让我的代码变得漂亮漂亮,只为你;)。

标签: c++ linux ubuntu sfml gnome-shell


【解决方案1】:

切换到 SFML 2.0 解决了这个问题。感谢 Konrad Rudolph 在 cmets 中发布该内容。

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 2022-12-09
    • 2018-05-14
    • 2015-09-16
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多