Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Как можно рисовать быстрее GDI?   Найти похожие ветки 

 
kingdom   (2004-07-21 18:08) [0]

Я думал использовать DirectX, а точнее DirectDraw, но там все заточено под 3D, т.е. чтобы нарисовать квадрат, нужно испльзовать Direct3D, а мне нужно делать простые вещи
- рисовать линии/окружности и т.д.
- закрашивать
но очень быстро, быстрее чем это делает GDI.

Можно ли использовать для этих целей DirectDraw?
А что вообще можно использовать для этих целей?


 
Palladin ©   (2004-07-21 18:20) [1]

Можно конечно, можно и http://www.delphikingdom.com/asp/viewitem.asp?catalogid=772


 
NOX   (2004-07-21 18:31) [2]

Естественно! С использованием DirectDraw можно сделать 2D графику любой сложности. В сети об этом море инфы.


 
Красный молоток   (2004-07-21 18:34) [3]

//а точнее DirectDraw, но там все заточено под 3D
DirectDraw заточен под 3D?!!!


 
kingdom   (2004-07-21 18:45) [4]

>Palladin
Спасибо за ссылку. Как я понял, GDI+ это более современный и удобный вариант чем просто GDI. Однако производительность его под впросом.

>NOX
Может я не так ищу, но что-то мне пока ничего не попалось =))
практически всегда под 2D графикой понимаются 2D игрушки, а они пишутся с использованием спрайтов, т.е. рисование линий, окружностей там просто нет. А мне надо именно это. Если вы подскажите мне источник, буду вам очень признателен.

>Красный молоток
Пожалуй не точно выразился, DirectX заточен под 3D, мне так кажется.


 
kingdom   (2004-07-21 18:46) [5]

>NOX
а что я напишу между
DirectDrawSurface7.Lock
и
DirectDrawSurface7.Unlock
??
с помощью чего рисовать-то


 
Palladin ©   (2004-07-21 18:52) [6]


> [4] kingdom   (21.07.04 18:45)

Статью то читал? почитай внимательней первые абзацы? Прямой доступ к памяти, практически тоже, что и DirectDraw ранее 7 версии.


> а что я напишу между
> DirectDrawSurface7.Lock
> и
> DirectDrawSurface7.Unlock
> ??
> с помощью чего рисовать-то

С помощью примитивов.


 
kingdom   (2004-07-21 19:08) [7]

>Palladin
Статью смотрел, однако упоминание о "прямом доступе к памяти" которое есть в тексте не относится к GDI+

"Как вы все знаете в DELPHI до сих пор используется библиотека GDI предоставляющая разработчику скудный (по сегодняшним меркам) набор функций для рисования, поэтому программистам приходится идти на всякие ухищрения при работе с графикой, используя DirectX, OpenGL или библиотеки доступа непосредственно к видеопамяти. Данная библиотека существенно упростить..."

Как мне кажется, это упоминание относится к слову "ухищрения", а не к "данной библиотеке". Вы согласны?

"С помощью примитивов."
Вы имеете ввиду использовать DDraw и GDI+ совместно?


 
Огромное Кулясищще ©   (2004-07-21 20:29) [8]

> Как можно рисовать быстрее GDI?

www.g32.org  см. Graphic32

> с помощью чего рисовать-то

Вывод пикселя через прямоугольник 1х1. Попиксельно рисуй примитивы.


 
kingdom   (2004-07-23 15:53) [9]

>Огромное Кулясищще
Я посмотрел g32, крутая штучка!!
На сколько я понял она работает на прямую с памятью?
На их сайте нету описалова как она работает =(


 
pavia   (2004-07-23 17:05) [10]

То kingdom Что работает быстрее не знаю.Но 3 вареанта. OpenGL - много всего,DirectDrow-чучуть 2d приметивов.Написать сваи примитивы.

> Вывод пикселя через прямоугольник 1х1.

Думаю что это будет еще более тормознута.


 
kingdom   (2004-07-23 17:52) [11]

>pavia
В DirectDraw нет примитивов для рисования.

Как мне кажется, OpenGL и DirectX заточены для 3D, поэтому использовать их для 2D (line, circle, rect и т.д.) смысла нет. Может использовать, например DirectDraw для прямогодоступа как памяти, а рисовать, например через GDI или написать что-то свое.

Как вы думаете?


 
Огромное Кулясищще ©   (2004-07-23 18:03) [12]

>Я посмотрел 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 18:34) [13]

>Огромное Кулясищще
Ну да, я в сорцы и полез =)
И идея не моя =)

А где-нить есть теоритический материал на эту тему?
А то книжек таких в магазине нету =( и в инете что-то ничего не попадалось пока


 
pavia   (2004-07-23 19:00) [14]

OpenGL является на данный момент одним из самых популярных программных интерфейсов (API) для разработки приложений в области двумерной и трехмерной графики. Стандарт OpenGL был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения, а его основой стала библиотека IRIS GL, разработанная Silicon Graphics.

DirectX - заточен под 3D я спорить не буду.Но в его комплекте есть возможность использовать 2D приметивы.Линия точка триугольник.Я невижу ничего пред осудительного в использование 3D для создания плоских фигур.Так как ресование 3D занимаються 3D ускорители .Вот личии от 2D ресование которых занимается ЦП.


 
kingdom   (2004-07-23 19:15) [15]

>pavia
OpenGL и DirectX это одного поля ягоды =)
Я здесь уже писал, но повторюсь
...практически всегда под 2D графикой понимаются 2D игрушки, а они пишутся с использованием спрайтов! Это значит быстрое копирование и обработка изображений, а нужно РИСОВАНИЕ линий, окружностей и заливка фигур.


 
pavia   (2004-07-23 19:30) [16]

>kingdom
В OpenGl есть рисование линей триугольников многоугольников их заливак и многое др.Если ты незнаеш как. Читай М.Краснова.



Страницы: 1 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
1-1096495482
Miron
2004-09-30 02:04
2004.10.17
Странно работает FindFirst


1-1096560712
Cosinus
2004-09-30 20:11
2004.10.17
Переопределение DrawCell в StringGrid... Запутался совсем...


3-1095404198
gonzales
2004-09-17 10:56
2004.10.17
Too many open tables


1-1096487499
Justas
2004-09-29 23:51
2004.10.17
Bitmap из нескольких файлов


3-1095318686
Мирон
2004-09-16 11:11
2004.10.17
TClientDataSet не обновляет базу при добавлении новой записи