0

いくつかの助けのおかげで、以下のプログラムをコンパイルして実行することができましたが、Pi の画面に何も描画されていません。

openvg と ajstarks コードの使用に固有の問題ではないと思います。テスト プログラムをコンパイルするときに問題が発生したときに、別の方法で画像を書き込もうとしたからです (申し訳ありませんが、私が覚えているのは、それが低かったということだけです)。レベルであり、openvg のインクルードは必要ありませんでした)。コンパイルするには少し検索して書き直す必要があり、コンパイルすると同じことが起こりました。

しばらく我慢しましたが、どこにも行きませんでした。Raspberry Pi と X Windows で何らかの制限があり、同じ問題が発生するという言及がいくつかありました。何かを描画しますが、表示されません。openvg が機能していることを示唆するコメントがいくつかあったので、そこに戻って (Ross という人のおかげで) コードをコンパイルできなかった理由を突き止めました。

これで、他の人が正常に実行する必要があるコードをコンパイルできるようになりましたが、画面には何も描画されません。私はコードが実行されることを知っています-それはCPUサイクルをかみ砕きます(公式のデモはそうです、私のものはそうではありませんが、まだ確実に進んでいます)、コードは次のコマンドで終了できます

グラフィックスを操作する別の方法でも、出力が表示されない同じ問題が発生したため、問題は Pi のどこかにあると思いますが、X Windows に対処する方法については空白にしました (または、X11 だった可能性があります。タブを開いたままにしていました!) 問題を描きたくありません。

どんな助けでも大歓迎です、事前に感謝します!

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

extern "C" {
#include "VG/openvg.h"
#include "VG/vgu.h"
#include "fontinfo.h"
#include "shapes.h"
}

using namespace std;

int main (void) {

int width, height;
        VGfloat w2, h2, w;
    char s[3];

    init(&width, &height);                                      // Graphics initialization

    w2 = (VGfloat)(width/2);
    h2 = (VGfloat)(height/2);
    w  = (VGfloat)w;

    Start(width, height);                                       // Start the picture
    Background(0, 0, 0);                                        // Black background
    Fill(44, 77, 232, 1);                                       // Big blue marble
    Circle(w2, 0, w);                                           // The "world"
    Fill(255, 255, 255, 1);                                     // White text
    TextMid(w2, h2, "hello, world", SerifTypeface, width/10);   // Greetings
    End();                                                      // End the picture
    fgets(s, 2, stdin);                                         // Pause until RETURN]
    finish();                                                   // Graphics cleanup
    exit(0);
}
4

1 に答える 1

0

Ok...

幸運なことに、私は答えを見つけましたが、それは奇妙です. とにかく私に...

他の誰かが問題に遭遇した場合に備えて、ここに(部分的な)解決策があり、別の質問がまもなく投稿されます。

私は学校でプログラミング クラブを運営しようとしていますが、Pi を kb、マウス、モニターに物理的に接続するのは現実的ではないため、それらはすべて VNC を自動実行し、Ultra-VNC を使用してマシンに接続します。プログラムは共有ディレクトリに記述され、Eclipse C++ はホスト上で実行されます。したがって、すべてのプログラム出力は VNC 経由で表示されます。

私は問題の解決を試み続けていましたが、ある時点でキーボードとマウスを接続し、認識されているように見えました (レーザーがオンになった、Caps Lock がトグルされたなど) が、移動/入力しても何もしませんでした。の上。

結局、なぜ他の誰もこの問題を抱えていないのかについて私がますます混乱し始めたので、ペニーは端で引き裂かれ始めました. 他の誰も問題を抱えていなかったのは奇妙に思えたので、kb/mouse の問題についてもっと知りたいと思い始めました。

HDMI出力を自宅のモニターに接続してみました(学校のものはまだアナログd-subです!)そして、見よ、物理的なkbとマウスが機能しました。それからそれは本当に奇妙になりました!

どういうわけか、同時に 2 つのデスクトップを実行しています。物理的なキーボードとマウスが一方を制御し、VNC が他方を制御します。興味深いことに、VNC にはPi's X Desktopというタイトルが付けられており、グラフィックスの問題が X に関係している可能性があることを示唆していますが、以下の理由で確信が持てません。

「物理」デスクトップでターミナル ウィンドウを起動すると、「VNC」デスクトップには表示されません。

「物理」デスクトップでテスト ファイルを実行すると、正常に動作し、物理 KB を使用してのみ制御できます。「VNC」デスクトップで実行すると、VNC kb でのみ制御できますが、出力は物理画面に表示されます。

私は本当にこれを取得しません !

したがって、プログラムはPiで実行されるため、これは元の質問に答えます。

VNCに「物理」デスクトップを表示させる方法、またはグラフィックス出力を「正しい」デスクトップに向ける方法のいずれかに関する質問を投稿する(できれば最終的な)質問をオフにします。

于 2014-08-11T16:57:03.377 に答える