Автор Тема: [BlackBox] Быстрое рисование.  (Прочитано 7644 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
[BlackBox] Быстрое рисование.
« : Май 07, 2013, 09:16:42 pm »
Чую надо отдельную тему завести.

Итак задача - нужно быстро рисовать. То есть нужно выводить на экран картинку 640x480 без мерцания, 30 кадров в секунду. Картинка уже сформирована и есть в виде буфера (одномерного массива), например вот в таком виде: http://oberspace.dyndns.org/index.php/topic,484.msg16241.html#msg16241.

Как это сделать максимально просто и не слишком криво?
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #1 : Май 07, 2013, 10:01:32 pm »
OK. Упростим задачу - нужно просто вывести картинку (bmp или ppm) на экран.
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #2 : Май 08, 2013, 01:41:22 am »
если под виндой то функции gdi, если универсально то opengl

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #3 : Май 08, 2013, 01:48:25 am »
если под виндой то функции gdi, если универсально то opengl
Вообще хотелось переносимо чисто ББшно. Однако оказалось что Ports.Frame умеет всякие там эллипсы и прочие кривые, а вот банально растр вывести не может никак. WinAPI (aka GDI) использовать не вариант вообще.

Так что пока остановился на OpenGL.
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #4 : Май 08, 2013, 02:00:13 am »
тогда зачем задавать риторические вопросы?

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #5 : Май 08, 2013, 02:04:38 am »
тогда зачем задавать риторические вопросы?
Я его задал до того как нашел приемлемое решение. Спасибо Ilovb за консультацию :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #6 : Май 11, 2013, 10:26:55 pm »
Похоже таки придется пробовать Win32 API - мне на этом битмапе еще рисовать надо. И если окружности да линии я и сам могу, то вот текст...
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: [BlackBox] Быстрое рисование.
« Ответ #7 : Май 12, 2013, 08:00:50 am »
SDL умеет текст рисовать. А для OpenGL есть http://sourceforge.net/projects/ftgl/

Но нужно биндить ессесна.

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #8 : Май 12, 2013, 03:02:34 pm »
Похоже таки придется пробовать Win32 API - мне на этом битмапе еще рисовать надо. И если окружности да линии я и сам могу, то вот текст...
хе .. ну как "выкусили"... вот так и со всеми  Оберонами - косяк на косяке... когда что- попытаешься  сделать выше уровня поделья... оказывается , что реально все "хваленные" преимущества либо отсутствуют, либо аннулируются косяками различной степени неприятности.. Конечно , всегда можно сказать что вы пытаетесь делать то , под что он не заточен.. но тогда возникает вопрос - под что он заточен? под программирование "ретро" платформ..  ;D.
Кстати, нафига понадобилось отображать текст в битмэпе?

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #9 : Май 12, 2013, 03:05:53 pm »
А для OpenGL есть http://sourceforge.net/projects/ftgl/

Но нужно биндить ессесна.
Нафига.. эта кака под винду.. и от кроссплатформенности остается пшик.. уж лучше  тогда используя винапи.. -тормозить хоть меньше будет.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #10 : Май 12, 2013, 03:15:42 pm »
А для OpenGL есть http://sourceforge.net/projects/ftgl/

Но нужно биндить ессесна.
Нафига.. эта кака под винду.. и от кроссплатформенности остается пшик.. уж лучше  тогда используя винапи.. -тормозить хоть меньше будет.
Угу. Поскольку Ogl подсистема из коллекции Гельмута Цинна один фиг рисует в конечно итоге через Win32 API BitBlt, то есть без хардварного ускорения, идея в том, чтобы убить лишнего - то есть OpenGl, и поиметь с этого немножечко ништяков.
Y = λf.(λx.f (x x)) (λx.f (x x))

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #11 : Май 12, 2013, 04:53:10 pm »
Дизер

Довольно странные притензии.

Что, в с или с++, работа с графикой происходит через библиотеки. Если взять free basic, вывод графики встроен в язык, это конечно хорошо, но если сравнивать с sdl, sdl намного гибче и универсальнее.

Алексей зачем привязываться к винапи. Возьми sdl, тайиер, рабрта с растровой графикой, легкое подключение opengl и dx, шрифты, звук и т.д всё есть.

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #12 : Май 12, 2013, 05:25:08 pm »
Дизер

Довольно странные притензии.

Что, в с или с++, работа с графикой происходит через библиотеки. Если взять free basic, вывод графики встроен в язык, это конечно хорошо, но если сравнивать с sdl, sdl намного гибче и универсальнее.

Алексей зачем привязываться к винапи. Возьми sdl, тайиер, рабрта с растровой графикой, легкое подключение opengl и dx, шрифты, звук и т.д всё есть.
какие к черту претензии - это ощущения от знакомства.. когда начинаешь осознавать что потратив время на проработку какого -нибудь вопроса и разобравшись с  сутью проблемы, гораздо выгоднее (менее трудозатратно) обратиться другому инструменту (в частности, работать с винапи напрямую  нежели с компонентами из коллекции Цинна).

DddIzer

  • Гость
Re: [BlackBox] Быстрое рисование.
« Ответ #13 : Май 12, 2013, 05:36:12 pm »
... когда тратишь определенный ресурс на то, что бы договорится с нормальными людьми.. о том, что бы поставить Обсерон на сервак, дабы детишки заценили его "рекламируемую" коровятами мощь в обучении на олимпиадных задачах (без п-жа в честном сравнении) ... где с точки зрения языка требуется стандартный джентельменский набор.. а оказывается.. что нормально нельзя ввести целое число.. и вывести отформатированный результат , согласно спецификации задачи (нехитрый).. и таких примеров у меня с десяток за 3 года..

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [BlackBox] Быстрое рисование.
« Ответ #14 : Май 12, 2013, 06:09:45 pm »
Дизер

Довольно странные притензии.

Что, в с или с++, работа с графикой происходит через библиотеки. Если взять free basic, вывод графики встроен в язык, это конечно хорошо, но если сравнивать с sdl, sdl намного гибче и универсальнее.
Не нужно сравнивать язык и фреймворк. В Компонентном Паскале в общем то даже вывода в консоль нет, не то что графики. Поэтому корректное сравнение будет либо C++/Qt VS CP/BB либо C++ VS CP.

Алексей зачем привязываться к винапи. Возьми sdl, тайиер, рабрта с растровой графикой, легкое подключение opengl и dx, шрифты, звук и т.д всё есть.
Мне нужно это все оформить в виде View, то есть оно должно встраиваться в составной документ.
Y = λf.(λx.f (x x)) (λx.f (x x))