Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> off-screen рендеринг, кросс-платформенный 
:(
    Опции темы
set1700
Дата 12.8.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.8.2009

Репутация: нет
Всего: нет



Привет всем. Мне необходимо снимать скриншоты opengl анимации без вывода на экран. Подскажите, пожалуйста, какое-нибудь кросс-платформенное решение.

PM MAIL   Вверх
Alexeis
Дата 12.8.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



Цитата(set1700 @  12.8.2009,  13:12 Найти цитируемый пост)
Привет всем. Мне необходимо снимать скриншоты opengl анимации без вывода на экран. Подскажите, пожалуйста, какое-нибудь кросс-платформенное решение.

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

Display *dis = (Display*)wxGetDisplay();
int scrnum = DefaultScreen( dpy );
GLXContext FBRC = glXGetCurrentContext();
GLXDrawable FBDC = glXGetCurrentDrawable();

if (dpy == NULL)
{
throw "unable to get device context";
}
if (!FBDC)
{
throw "unable to get render context";
}
int attrib[] =
{
GLX_DOUBLEBUFFER, False,
GLX_RED_SIZE, 8,
GLX_GREEN_SIZE, 8,
GLX_BLUE_SIZE, 8,
GLX_ALPHA_SIZE, 8,
GLX_STENCIL_SIZE, 8,
GLX_DEPTH_SIZE, 24,
GLX_RENDER_TYPE, GLX_RGBA_BIT,
GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT | GLX_WINDOW_BIT,
None
};

int PBattrib[] =
{
GLX_PBUFFER_WIDTH, width,
GLX_PBUFFER_HEIGHT, height,
GLX_LARGEST_PBUFFER, False,
None
};

// choose a pixel format that meets our minimum requirements
int count = 0;
GLXFBConfig *config =
glXChooseFBConfig(dpy, scrnum, attrib, &count);

if(config == NULL || count == 0)
{
throw "no fitting pbuffer pixel format found";
}

PBDC = glXCreatePbuffer(dpy, config[0], PBattrib);
PBRC = glXCreateNewContext(dpy, config[0], GLX_RGBA_TYPE, FBRC,
true);
XFree(config); 

стыбжено отседова.
http://www.groupsrv.com/computers/about268710.html

Это сообщение отредактировал(а) Alexeis - 12.8.2009, 14:45


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
set1700
Дата 13.8.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.8.2009

Репутация: нет
Всего: нет



Спасибо, попробую.
PM MAIL   Вверх
Rickert
Дата 6.10.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Рисуем всё как всегда, потом используем стаднартную функцию получения значений пикселей из буффера и просто не делаем его свап, а переходим к отрисовке след. кадра. Ничего дополнительно не нужно и кроссплатформенно как и сам ogl.
Или я может вопроса не понял?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0990 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.