0

まず、質問のタイトルが悪くて申し訳ありません。何を入力すればよいか正確にはわかりませんでした。

そのため、SFML Window コンテキストから OpenGL アプリケーションを実行しています。

以前にパフォーマンスの低下について質問を投稿しましたが、その問題は現在解決されているようです。

私がアップロードした画像でわかるように、かなり奇妙なことが起こっています。どう表現すればよいかわかりませんが、ウィンドウの右半分が存在しないように見えます。

ウィンドウの右側は灰色のブロックで始まります

これは、サイズ変更後に何が起こるかの例です

2 つの OpenGL コンテキストが並んでいるように見えますか?

問題に関するアイデアはありますか?

これが私のコードです:

sf::ContextSettings settings;
settings.depthBits = 32;
settings.stencilBits = 8;
settings.antialiasingLevel=4;
settings.majorVersion = 3;
settings.minorVersion = 0;

sf::Window window(sf::VideoMode(800, 600), "insert title", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);


bool running = true;
while(running)
{
    sf::Event e;
    while(window.pollEvent(e))
    {
        if(e.type == sf::Event::Closed)
        {
            running = false;
        }

        if(e.type == sf::Event::Resized)
        {
            glViewport(0, 0, e.size.width, e.size.height);
            gluLookAt(0,0,-1, 0,0,0, 0,1,0);;
        }
    }


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

    glutSolidSphere(1, 12, 12);

    window.display();
}
4

1 に答える 1

0

これは、コードのコピーと貼り付けが原因であることが判明しました。

表示されたコードの上に、次の行がありました。

sf::ContextSettings settings;
settings.depthBits = 24;
settings.stencilBits = 0;
settings.antialiasingLevel = 0;
settings.majorversion = 3;
settings.minorversion = 2;

マイナー バージョンが正しくありませんでした。行「settings.majorversion = 3;」を削除します および「settings.minorversion = 2;」問題を修正しました!

実験として、メジャーを 4 に変更しました。これにより、プログラムが一斉にクラッシュしました。

于 2013-05-24T17:37:33.023 に答える