![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно рисовать быстрее GDI?
kingdom © (2004-07-21 18:08:00)Я думал использовать DirectX, а точнее DirectDraw, но там все заточено под 3D, т.е. чтобы нарисовать квадрат, нужно испльзовать Direct3D, а мне нужно делать простые вещи
- рисовать линии/окружности и т.д.
- закрашивать
но очень быстро, быстрее чем это делает GDI.
Можно ли использовать для этих целей DirectDraw?
А что вообще можно использовать для этих целей?
pavia (2004-07-23 19:30:00) [1]>kingdom
В OpenGl есть рисование линей триугольников многоугольников их заливак и многое др.Если ты незнаеш как. Читай М.Краснова.
kingdom (2004-07-23 19:15:00) [2]>pavia
OpenGL и DirectX это одного поля ягоды =)
Я здесь уже писал, но повторюсь
...практически всегда под 2D графикой понимаются 2D игрушки, а они пишутся с использованием спрайтов! Это значит быстрое копирование и обработка изображений, а нужно РИСОВАНИЕ линий, окружностей и заливка фигур.
pavia (2004-07-23 19:00:00) [3]OpenGL является на данный момент одним из самых популярных программных интерфейсов (API) для разработки приложений в области двумернойи трехмерной графики. Стандарт OpenGL был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения, а его основой стала библиотека IRIS GL, разработанная Silicon Graphics.
DirectX - заточен под 3D я спорить не буду.Но в его комплекте есть возможность использовать 2D приметивы.Линия точка триугольник.Я невижу ничего пред осудительного в использование 3D для создания плоских фигур.Так как ресование 3D занимаються 3D ускорители .Вот личии от 2D ресование которых занимается ЦП.
kingdom (2004-07-23 18:34:00) [4]>Огромное Кулясищще
Ну да, я в сорцы и полез =)
И идея не моя =)
А где-нить есть теоритический материал на эту тему?
А то книжек таких в магазине нету =( и в инете что-то ничего не попадалось пока
Огромное Кулясищще (2004-07-23 18:03:00) [5]> Я посмотрел g32, крутая штучка!!
На сколько я понял она работает на прямую с памятью?
На их сайте нету описалова как она работает =(
Примерно так. На сайте описнаия нет, но код то открыт. :)
> Как мне кажется, OpenGL и DirectX заточены для 3D, поэтому использовать их для 2D (line, circle, rect и т.д.) смысла нет. Может использовать, например DirectDraw для прямогодоступа как памяти, а рисовать, например через GDI или написать что-то свое.
Скажем, смысл есть, потому что это очень быстро. Например, есть программа 3DPaint - как PhotoShop, но только с hardware ускорением.
DirectDraw устарел, он больше не обновляется.
Далее, твоя идея совместить DirectDraw и GDI не нова. Например, miek уже написал подобную библиотеку (SpriteUtils 2), ты можешь скачать её: miek.narod.ru
kingdom (2004-07-23 17:52:00) [6]>pavia
В DirectDraw нет примитивов для рисования.
Как мне кажется, OpenGL и DirectX заточены для 3D, поэтому использовать их для 2D (line, circle, rect и т.д.) смысла нет. Может использовать, например DirectDraw для прямогодоступа как памяти, а рисовать, например через GDI или написать что-то свое.
Как вы думаете?
pavia (2004-07-23 17:05:00) [7]То kingdom Что работает быстрее не знаю.Но 3 вареанта. OpenGL - много всего,DirectDrow-чучуть 2d приметивов.Написать сваи примитивы.
> Вывод пикселя через прямоугольник 1х1.
Думаю что это будет еще более тормознута.
kingdom (2004-07-23 15:53:00) [8]>Огромное Кулясищще
Я посмотрел g32, крутая штучка!!
На сколько я понял она работает на прямую с памятью?
На их сайте нету описалова как она работает =(
Огромное Кулясищще (2004-07-21 20:29:00) [9]> Как можно рисовать быстрее GDI?
www.g32.org см. Graphic32
> с помощью чего рисовать-то
Вывод пикселя через прямоугольник 1х1. Попиксельно рисуй примитивы.
kingdom (2004-07-21 19:08:00) [10]>Palladin
Статью смотрел, однако упоминание о "прямом доступе к памяти" которое есть в тексте не относится к GDI+
"Как вы все знаете в DELPHI до сих пор используется библиотека GDI предоставляющая разработчику скудный (по сегодняшним меркам) набор функций для рисования, поэтому программистам приходитсяидти на всякие ухищрения при работе с графикой, используяDirectX, OpenGL или библиотеки доступа непосредственно к видеопамяти. Данная библиотека существенно упростить..."
Как мне кажется, это упоминание относится к слову "ухищрения", а не к "данной библиотеке". Вы согласны?
"С помощью примитивов."
Вы имеете ввиду использовать DDraw и GDI+ совместно?
Palladin (2004-07-21 18:52:00) [11]
> [4] kingdom (21.07.04 18:45)
Статью то читал? почитай внимательней первые абзацы? Прямой доступ к памяти, практически тоже, что и DirectDraw ранее 7 версии.
> а что я напишу между
> DirectDrawSurface7.Lock
> и
> DirectDrawSurface7.Unlock
> ??
> с помощью чего рисовать-то
С помощью примитивов.
kingdom (2004-07-21 18:46:00) [12]>NOX
а что я напишу между
DirectDrawSurface7.Lock
и
DirectDrawSurface7.Unlock
??
с помощью чего рисовать-то
kingdom (2004-07-21 18:45:00) [13]>Palladin
Спасибо за ссылку. Как я понял, GDI+ это более современный и удобный вариант чем просто GDI. Однако производительность его под впросом.
>NOX
Может я не так ищу, но что-то мне пока ничего не попалось =))
практически всегда под 2D графикой понимаются 2D игрушки, а они пишутся с использованием спрайтов, т.е. рисование линий, окружностей там просто нет. А мне надо именно это. Если вы подскажите мне источник, буду вам очень признателен.
>Красный молоток
Пожалуй не точно выразился, DirectX заточен под 3D, мне так кажется.
Красный молоток (2004-07-21 18:34:00) [14]//а точнее DirectDraw, но там все заточено под 3D
DirectDraw заточен под 3D?!!!
NOX (2004-07-21 18:31:00) [15]Естественно! С использованием DirectDraw можно сделать 2D графику любой сложности. В сети об этом море инфы.
Palladin (2004-07-21 18:20:00) [16]Можно конечно, можно и http://www.delphikingdom.com/asp/viewitem.asp?catalogid=772