28.05.2013, 13:52
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от drug2004
|
вы его почему выбрали?
|
Ну дык все еще на стадии тырканья(поисков) . Кстати те кто юзают SDL почему то наоборот советуют OpenGL для подобного. И я так понимаю SDL это обертка DirectX ?
Сообщение от drug2004
|
С пикселами в OpenGL не очень удобно работать,
|
Не именно пиксели , а точки . Ибо хотелось все таки масштабировать .
А текст и рисунки и получатся при подобном выводе как растровое изображение .
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 28.05.2013 в 13:55.
|
|
|
|
28.05.2013, 14:28
|
|
Частый гость
Регистрация: 30.01.2009
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: OpenGL вопросы
Сообщение от dosikus
|
Ну дык все еще на стадии тырканья(поисков) .
|
Понял.
Сообщение от dosikus
|
Кстати те кто юзают SDL почему то наоборот советуют OpenGL для подобного.
|
Так вы хотите графику рисовать на экране определенного размера?
Сообщение от dosikus
|
И я так понимаю SDL это обертка DirectX
|
SDL это самостоятельная библиотека, кроссплатформенная и с ДиректХ никак не связана.
Сообщение от dosikus
|
Не именно пиксели , а точки
|
Вам нужно чтобы OpenGL отрендерила картинку в буфер (не обязательно на экран), а вы уже потом этот буфер оприходуете как надо? Тогда нужно копать в сторону рендеринга в текстуру. Текстура как раз и есть тот самый массив.
|
|
|
|
28.05.2013, 14:32
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: OpenGL вопросы
Сообщение от drug2004
|
Так вы хотите графику рисовать на экране определенного размера?
|
Угу ,скажем так - исходный массив задан с жестким размером . Получаемое изображение масштабируем пропроционально.
Сообщение от drug2004
|
Текстура как раз и есть тот самый массив.
|
Спасибо , начинаю въезжать потихоньку.
__________________
Осторожно , злой кот
|
|
|
|
28.05.2013, 14:53
|
|
Частый гость
Регистрация: 30.01.2009
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: OpenGL вопросы
Сообщение от dosikus
|
Угу ,скажем так - исходный массив задан с жестким размером . Получаемое изображение масштабируем пропроционально.
|
Тогда вам нужно просто настроить параметры текстуры и рендерить сразу в этот массив подставив его как текстуру.Смотрите в сторону функции glTexImage2D(GL_TEXTURE_2D, 0, 4, texture_width_, texture_height_, 0, GL_BGRA, GL_UNSIGNED_BYTE, intermediary.pixels)
первый параметр это указание что у вас двумерная текстура,
второй и третий не вспомню, они редко меняются, нужно API смотреть,
четверный и пятый это ширина(Х) и высота(У) текстуры в пикселах (не в байтах),
шестой опять не помню,
седьмой это как раз формат данных, те. сколько компонент цвета на один пиксел - в данном случае 4 компонента (красный, зеленый, синий и прозрачность),
восьмой это сколько байт на компонент, здесь указан беззнаковый байт, у вас же два и значит должна быть другая константа, нужно смотреть,
и последний параметр это указатель на ваш массив.
Елки-палки, вам же наоборот из текстуры надо массив получить. Это надо погуглить, я сам так не делал, по крайней мере не помню.
|
|
|
|
28.05.2013, 14:55
|
|
Частый гость
Регистрация: 30.01.2009
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: OpenGL вопросы
вот здесь есть пример рендеринга в текстуру - http://masandilov.ru/opengl/render-to-texture, но здесь текстура наружу не передается, а используется тут же. А вы ее куда и как хотите передавать?
|
|
|
|
28.05.2013, 15:27
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от drug2004
|
Елки-палки, вам же наоборот из текстуры надо массив получить.
|
Да похоже нет . Я стряпую массив как битмап текстуру в сишном коде, и эту текстуру
натягиваю в OpenGL на плоскость .
Сообщение от drug2004
|
А вы ее куда и как хотите передавать?
|
Лицезреть так сказать результат работы кода.
Просто выводить в окно , как выше и писал - эмулятор LCD .
__________________
Осторожно , злой кот
|
|
|
|
28.05.2013, 15:37
|
|
Частый гость
Регистрация: 30.01.2009
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: OpenGL вопросы
Сообщение от dosikus
|
Да похоже нет . Я стряпую массив как битмап текстуру в сишном коде, и эту текстуру
натягиваю в OpenGL на плоскость .
|
Сообщение от dosikus
|
Лицезреть так сказать результат работы кода.
Просто выводить в окно , как выше и писал - эмулятор LCD .
|
Ну тогда это то, что вам нужно. Правда для текста что хотите использовать? Я раньше использовал дисплейные списки и wgl* функции. Сейчас я предпочитаю freetype как более общее решение. Как уже писал, я сейчас использую freetype для вывода текста в SDL_surface, а ее потом использую как текстуру. Довольно гибко получается - я рисую графику средствами OpenGL, а где нужно текст вывожу текстурой.
|
|
|
|
28.05.2013, 15:44
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: OpenGL вопросы
Сообщение от drug2004
|
Правда для текста что хотите использовать?
|
Текст будет формироваться рисунком в текстуре , ну собственно если ембеддите то поймете.
Возможно буду выводить что то типа OSD , но до этого как до пекина пока.
Пока информация получена , буду переваривать.
Далее будут вопросы по организации самого вызова того сишного кода .
Я так понял , что весь цикл крутится в функции, вызываемой из самой OpenGL либы
по какому либо событию .Например обработка кнопок .
И здесь так же куча вопросов ...
__________________
Осторожно , злой кот
|
|
|
|
28.05.2013, 15:53
|
|
Частый гость
Регистрация: 30.01.2009
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: OpenGL вопросы
Главный цикл вы сами должны организовать. Обычно это банально while(running) {}, где установкой running в false вы прерываете цикл и завершаете работу. Хотя если вы фриглут юзаете, там уже есть такая функция, да.
Я бы вам еще раз порекомендовал присмотреться к SDL - для десктопа как раз что нужно, в том числе и вывод текста отличного (любой TTF шрифт, например), плюс организация главного цикла и реакция на события. И OpenGL отлично дружит.
Последний раз редактировалось drug2004; 28.05.2013 в 15:55.
|
|
|
Сказали "Спасибо" drug2004
|
|
|
28.05.2013, 21:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: OpenGL вопросы
Сообщение от dosikus
|
Видится так - Сишный код , изолированный от остального, производит заполнение массива, ... Массив выводим через либы OpenGL.
|
Если OpenGL есть лишь способ визуализации, то напрашивается вопрос - почему на нём свет клином сошёлся? Разве не все равно, чем визуализировать-то? OpenGL, SDL - не из пушки по воробьям?
Когда-то было нечто похожее:
Код:
|
DsplPort = new CMarqueePanel(this);
DsplPort-›Parent = pnlMarquee;
DsplPort-›Align = alClient;
DsplPort-›Color = BckColor;
...
DsplPort.CDat = (c & col_mask)? 1:0; // light up pixel if masked's non zero
... |
Заполнение можно по-разному осуществлять - что за массив у тебя?
__________________
There's always more than one way to skin a cat.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:50.
|
|