Как мне управлять тем, какой графический выход C ++ для рабочего стола использовать на Raspberry Pi?

Я пытаюсь запустить клуб программирования в своей школе, и нецелесообразно физически подключать Pi к kb, мышке и монитору, чтобы все они автоматически запускали VNC, а мы подключались к машинам с помощью Ultra-VNC. Программы написаны в общем каталоге, и Eclipse C ++ работает на хосте; поэтому весь вывод программы просматривается через VNC.

Все было хорошо при программировании на Python и когда мы начали использовать C ++. Тем не менее, я попал в стену Брик, пытаясь получить графику для отображения. Я мог бы создать программу, которая, казалось бы, работала, но давала только вывод терминала — она ​​никогда не отображала бы рисунки на экране. Пытаясь решить проблему, в какой-то момент подключил клавиатуру и мышь и заметил, что они, казалось, были распознаны (включился лазер, переключился Caps Lock и т. Д.), Но они ничего не сделали, когда переместили / набрали текст.

В конце концов копейка начала волноваться, так как я все больше запутывался в том, почему ни у кого больше не было этой проблемы, учитывая, что, похоже, многие люди используют openvg, и я начал задумываться о проблеме kb / mouse.

Я попытался подключить выход HDMI к монитору дома (все еще аналоговые d-sub!), И вот, физический кб и мышь работали. Тогда это стало действительно странно!

Как-то у меня одновременно работают 2 рабочих стола. Физическая клавиатура и мышь управляют одним, а VNC — другим. Если я запускаю окно терминала на «Физическом» рабочем столе, оно не отображается на рабочем столе «VNC» и наоборот — они кажутся независимыми, хотя это не совсем так.

Когда я запускаю графический исполняемый файл на «физическом» рабочем столе, он работает нормально и может управляться только с помощью физического кб. Когда я запускаю его на рабочем столе ‘VNC’, им можно управлять только с помощью VNC kb, но вывод выводится на физический экран.

Я действительно не понимаю этого!

Я вроде как должен иметь возможность запускать программы через VNC, но мне нужно уметь сообщать коду, который я запускаю, какой рабочий стол выводить, так как кажется, что он по умолчанию неверный. На самом деле, было бы предпочтительнее, чтобы VNC подключался к существующему рабочему столу HDMI, а не запускал новый, но я не могу выяснить, как заставить InVC сделать это.

Код здесь, но я думаю, что проблема может быть в функции init (), которая находится в библиотеке, поэтому, вероятно, лучше установить VNC на нужный рабочий стол …

Заранее благодарю за любую помощь!

#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);
}

0

Решение

Смотрите последний комментарий — заброшенный openvg и использующий X Windows.

0

Другие решения


По вопросам рекламы [email protected]