Приложение SDL, использующее ошибку DirectFB: нет доступного видеоустройства - PullRequest
0 голосов
/ 05 августа 2011

Я надеюсь, что это что-то простое. Я пишу приложение для встроенной платформы Linux с моего рабочего стола Ubuntu Linux. Само приложение отлично работает под X11. Я также могу заставить его работать, используя драйвер fbcon и /dev/fb0.

Однако, если я putenv("SDL_VIDEODRIVER=directfb");, я получаю сообщение об ошибке «Нет доступных видеоустройств»

Я все еще довольно новичок в SDL, поэтому я не уверен, что происходит. Я только что установил libsdl на свой рабочий стол Ubuntu, используя «apt-get install libsdl». Так разве стандартная сборка Ubuntu SDL не поддерживает DirectFB? Есть ли что-то еще, что мне нужно установить / настроить / выполнить, прежде чем это сработает?

Или, что более важно, есть ли смысл / преимущество в попытке заставить DirectFB работать, когда fbcon работает нормально? Я подумал, что DirectFB позволит мне правильно установить режимы видео и предложит некоторую форму аппаратного ускорения, которой не будет fbcon.

1 Ответ

1 голос
/ 12 августа 2011

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

Вы пытаетесь заставить егоиспользуйте аппаратный режим, который не поддерживается базовым оборудованием.

Единственная причина, по которой он вынужден использовать определенный аппаратный режим, заключается в том, что вы подозреваете, что можете получить более высокую производительность в определенном режиме или что вам нужен больший контроль над происходящим.Например, некоторые аппаратные режимы поддерживают полноэкранный режим, более интеллектуальное масштабирование экрана, ускоренную графику и т. Д.

В конце вы просто передаете подсказки SDL, и он может выполнять, а может и не делать то, что вы подозреваете.Если вы заставляете его использовать определенный бэкэнд, вероятность того, что он делает то, о чем вы подозреваете, должна быть выше.

...