Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как сделать скриншот в SVGA режиме?  (Прочитано 1134 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн abodnya

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Как сделать скриншот в SVGA режиме?
« : 14 Апреля 2012, 21:20:20 »
Пишу программу на C++, которая использует SVGAlib и VGAGL. После успешной компиляции программа прекрасно работает. Она переходит на одну из виртуальных консолей (Alt+Crtl+<номер>), там запускает модуль SVGA и рисует все, что мне нужно. Все вроде как хорошо. Но надо снять скриншот результата программы, а ничем не получается это сделать. fbgrab снимает скриншот текстового режима (небольшой лог при запуске svga), другие программы тоже работают нестабильно. Обычно ищу решения в гугле самостоятельно, но в этот раз уже несколько часов не могу найти ответ или хоть намек на ответ, поэтому обращаюсь к вам.
Итак нужно добится хотя бы одной из двух целей:
1) Запустить в ТЕРМИНАЛЕ, а не в виртуальной консоли SVGA-программу и сделать скриншот  уже в X-сервере
2) Как-то сделать скриншот именно в виртуальной консоли.

Дистрибутив: Ubuntu 10.10
Результат скриншота от fbgrab: http://i27.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2012/0414/c6/cfed843bb487a2c6f88fef82eb1dd4c6.png

Прилагаю простенький пример программы с SVGA
#include  <stdio.h>
#include  <vga.h>
#include <stdlib.h>
#include <unistd.h>

int main(void) {
   vga_init();
   vga_setmode(12);
   vga_setcolor(4);
   vga_drawline(0,0,1024,768);
   getchar();
   vga_setmode(0);
   exit(0);
}
« Последнее редактирование: 14 Апреля 2012, 21:50:50 от abodnya »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как сделать скриншот в SVGA режиме?
« Ответ #1 : 14 Апреля 2012, 21:52:01 »
а не, случай надо груб добав vga=... и разрешена права /dev/fb0 и /dev/input/mice не было?
Wars ~.o

Оффлайн abodnya

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как сделать скриншот в SVGA режиме?
« Ответ #2 : 14 Апреля 2012, 22:21:28 »
Можно пожалуйста немножко подробней? С Линуксом только второй месяц и еще не совсем понимаю, когда кратко описывают действия. При получении framebuffer, копался в настройках груба. Делал так как этот парень - https://forum.ubuntu.ru/index.php?topic=146602.0 и framebuffer вроде бы работает нормально (хоть какие-то скрины ж fbgrab делает то)

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как сделать скриншот в SVGA режиме?
« Ответ #3 : 14 Апреля 2012, 23:30:46 »
sudo X :11 vt01 2>/dev/null & bash -c "sleep 2;DISPLAY=:11 xterm" &вернуть ctrl+alt+f7 или f8
если появитья Х терминал, можно загрузка первую экран Х потом на гноме, не могу сказать. а подробней нет, я сам.
Wars ~.o

Оффлайн abodnya

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как сделать скриншот в SVGA режиме?
« Ответ #4 : 15 Апреля 2012, 00:42:53 »
При первой попытке увидел терминал похожий очень на Recovery консоль, через неё пробывал запустить программу, опять создалась на другой консоли. Попробывал перезайти в Recovery Console Mode и запустить там. Опять же программа создалась на другой консоли. Теперь же при вводе вашей комманды получаю ошибку (сделал reboot):
abodnya@abodnya-ubuntu:~$ sudo X :11 vt01 2>/dev/null & bash -c "sleep 2;DISPLAY=:11 xterm" &
[1] 4278
[2] 4279
abodnya@abodnya-ubuntu:~$ xterm Xt error: Can't open display: :11

Пользователь решил продолжить мысль 15 Апреля 2012, 23:29:38:
Сегодня пришла в голову идея запустить на виртуальной машине другой линукс и в нем запустить уже прогу. Ну а заскринить из иксов виртуальную машину уже не представляет трудности.
Итак:
Поставил я на VirtualBox Linux Mint 12
Поставил g++ (с горем пополам) и собственно svgalib. Программу наконецто минт закомпилил. Как извесно, программы работющие с svgalib требуют рут прав. Собственно прописую sudo su, благополучно захожу под рут. Запускаю программу и тут мне пишет "permission denied", хотя я под рутом. Почитал парочку мануалов, переставил framework, но проблема всеравно осталась.

Пошел другим путем. Запустил на настольном компьютере (обычно я с ноута) свою Windows 7, поставил там VirtualBox и проделал тоже самое. Пришел к той же ошибке.

Пошел третим путем - поставил на свою винду andLinux, расшарил папку, зашел под рутом через sudo su, запускаю программу. И как вы думаете что? "permission denied"!
Целый вечер убиваюсь этой проблемой. Может кто-нибудь знает как бороться?
« Последнее редактирование: 15 Апреля 2012, 23:29:38 от abodnya »

 

Страница сгенерирована за 0.02 секунд. Запросов: 21.