Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

API vs DelphiX   Найти похожие ветки 

 
Somebody   (2004-07-14 07:19) [0]

Обращаюсь к людям, которые пишут только на "чистом API".
Приведите конкретные преимущества API, перед тем же самым DelphiX, не считая размера исполняемого файла.


 
Xerx ©   (2004-07-14 07:31) [1]

DelphiX "немножко" тормозит и не охватывает всех возможностей DirectX. Для начала конечно лучше использовать DelphiX, но очень скоро его придется забросить (почти). Это если драть DirectDraw (2D).
А если рассматривать Direct3D, то DelphiX вообще отдыхает.

Может в чем-то я и не прав, т.к. пользовался DelphiX всего около пары дней. Это мое субъективное мнение.


 
Думкин ©   (2004-07-14 07:40) [2]

А я им(DelphiX) вообще никогда не пользовался. И как сравнивать? :(


 
Somebody   (2004-07-14 07:48) [3]

Ну тогда пусть не DelphiX, а PowerDraw, по скорости он намного обходит DelphiX. Тогда потребность использовать API отпадает? Если только все упирается в скорость...


 
Ландграф Павел ©   (2004-07-14 08:08) [4]

глупость какая-то... api и delphix, да и причем здесь PowerDraw... ты сравниваешь по скорости что-ли? ну разумеертся directdraw побыстрее будет виндового api, ну размер будет на апи меньше, но можно писать не с помощью компанента delphix, а через библиотеку directdraw, само сабой и размер будет примерно такой же как на api


 
ПсихЪ_просто   (2004-07-14 09:29) [5]

Конкретные преимущества:
1. Скорость работы программы.
2. Размер исполняемого файла.
3. Полный прямой контроль над объектами DirectX.

Собственно, отталкиваясь от пункта 3 можно привести ОЧЕНЬ МНОГО всяких полезных мелочей, перечисление которых займёт очень много времени.

А те, кто говорит, что писать на API сложно, просто бояться его первоначально кажущейся громоздкости и непонятности. У любого пишущего на API некоторое время всегдя имеются шаблоны и прочие наработки, которые облегчают им жизнь. Тут главное начать, разобраться, "напрограммировать всякого". А дальше само пойдёт.

Просто кому-то влом разбираться, вот и лепят тетрисы на DelphiX.


 
Думкин ©   (2004-07-14 09:55) [6]

> [3] Somebody   (14.07.04 07:48)

PowerDraw - тоже не пользовался. :-(

> [5] ПсихЪ_просто   (14.07.04 09:29)
> Просто кому-то влом разбираться, вот и лепят тетрисы на DelphiX.

Про DelphiX не скажу, но каждому фрукту, как говориться. Я тетрис вполне на GDI наваял, скорость нормальная.


 
Колбасьев ©   (2004-07-14 11:57) [7]

По моему API здесь значит DirectX. И вообще пишите понятнее, пожалуйста, GDI, DirectX и т.д. - что конкретно с чем сравнивать.

Я DelphiX и др. не пользуюсь, может по причине того, что когда решил попрограммировать 3D(2D) графику, имел только книжку по DirectX. Хотя сами компоненты у меня где-то были...


 
NailMan ©   (2004-07-14 12:34) [8]

Плюсы АПИ(DirectX):
1. Полный контроль над процессами(волен сделачь что хочешь и как хочешь).
2. Доступны ВСЕ аппаратные фичи(2Д сделать как 2D-over-3D очень просто), начиная от альфы, заканчивая хоть шейдерами(при некотором изврате с технологией совмещения lit-треугольников с nonlit-треугольниками) в одном кадре с наибольшей гармонией.
3. Баги в программе зависят только от тебя, а не от писателя оболочки+твои.
4. Более высокая скорость(порой на порядок) рендера(следствие аппаратности фич).
5. Еще не придумал, чего еще...

Минусы АПИ:
1. При использовании вспомогательной библиотеки D3DX8(9) добавится внешняя DLL-ка, которая будет частью ядра. DLL-ка порядка 2Мб.
(в ней содержатся очень многие полезные функции, например безгеморной загрузки текстуры из некоторых форматов файлов)
2. Разработка приложения сложней чем на оболочке. Многим сначало непонятно что и как делать(для обучения есть это форум и книжки, главное задать правильный вопрос  ;-) )
3. Пожалуй на мой взгляд все минусы кончились...

---
WBR, NailMan aka 2:5020/3337.13


 
ПсихЪ_просто   (2004-07-14 13:24) [9]


> NailMan ©   (14.07.04 12:34) [8]

По поводу DLL"ки: Если мне не изменяет память, я как-то читал, что сея библиотека просто аналог такой же стандартной. Отличаются буквально одной-двумя буковками в названии и содержанием. Что-то там сказано было, мол если вы не хотите юзать нестандартную билиотечку, то в юните измените константу, содержащую имя библиотеки. То же нужно сделать, когда компилишь финальную версию программы.

Точно помню, что читал, но не помню где. Если интересно, то поищи и поделись с остальными, если найдёшь...


 
NailMan ©   (2004-07-14 15:06) [10]

Ну не знаю, не знаю, что там и как с названиями, но слышал что там в D3DX8(9).DLL что-то не по стандартному сделано, поэтому нужна портированная библиотека.

Собсно я с ней особо не мучаюсь, фигли 2 мега, не 200 же.

---
WBR, NailMan aka 2:5020/3337.13


 
Колбасьев ©   (2004-07-14 15:19) [11]

Да кстати... Я вот использую d3dx8ab.dll. И тоже слышал (и видел :-) ), что вместо нее можно использовать "нормальную" DirectX-овскую библиотеку, чтоб не таскать с собой 485 Кб. Какую и как?


 
Колбасьев ©   (2004-07-14 15:35) [12]


> Плюсы АПИ(DirectX):
> 5. Еще не придумал, чего еще...

Я не противник разных там оболочек и не ярый API поклонник (делаю ведь классы для быстрого построения приложения, но именно классы - не компоненты), но могу сказать, что полезно говорить с разными людьми "на одном языке", и для понимания с тем "как есть на самом деле" неплохо бы просто ознакомиться с API.

Это как разрабатывая программы на Delphi полезно бывает знать хотябы как это примерно работает (в Windows или Linux) :-)


 
NailMan ©   (2004-07-14 18:03) [13]

Колбасьев ©
Да думаю никак по красивому. Можно спросить у автора сайта Clootie.Narod.Ru - это он ведь портирует.


> Я не противник разных там оболочек и не ярый API поклонник
> (делаю ведь классы для быстрого построения приложения, но
> именно классы - не компоненты), но могу сказать, что полезно
> говорить с разными людьми "на одном языке", и для понимания
> с тем "как есть на самом деле" неплохо бы просто ознакомиться
> с API.

Ну дык все мы классы надстраиваем, типа TRameRenderer...

---
WBR, NailMan aka 2:5020/3337.13


 
Sapersky   (2004-07-14 20:58) [14]

И тоже слышал (и видел :-) ), что вместо нее можно использовать "нормальную" DirectX-овскую библиотеку, чтоб не таскать с собой 485 Кб
AFAIK, нет такой "нормальной". Для Си D3DX поставляется в виде скомпилированных модулей (сишный аналог .dcu - .lib вроде) и линкуется непосредственно к exe-шнику. А DLL"ку сделали уже при портировании на Дельфи. Теоретически, если знать Си и иметь DX SDK, можно распилить D3DX на несколько dll"ек, и использовать для каждого случая только те, которые нужны. Хотя, возможно, за счёт всяких накладных расходов общий размер получится в несколько раз больше, или там используются какие-то глобальные переменные и распиливание в принципе невозможно...
Так что проще, возможно, написать самому или наковырять из разных источников. Всякие там VectorAdd валяются в Интернете на каждом углу. Загрузка X-файлов есть в framework"е к DX7, или можно грузить их через абстрактный режим D3D (D3DRM); извращение, конечно, но просто и DLL не нужны (точнее, нужны, но они входят в DX). Текстуры - у Краснова или FastDIB.SetInterface/Convert. Хотя скелетную анимацию, например (skinned mesh - оно?), я так вот с ходу не реализую :)


 
Sapersky   (2004-07-14 21:22) [15]

Хотя... посмотрел dxdiag - действительно есть некая d3dx8d.dll. Попробовал (заменил в D3DX8.pas название dll) - работает :) Хотя подожду пока рабоваться - может быть, её DX SDK установил. Надо попробовать на "чистой" машине.
К тому же, это DX8; неизвестно, что с 8.1 и 9.


 
Sapersky   (2004-07-14 21:44) [16]

Похоже, праздник отменяется :(
Из readme к DX SDK:

The D3DX library is a static library. However, to help debugging, we also  have a debug only dynamic library of D3DX in DirectX 8.0. To use this, link  with the d3dx8d.lib which is an import lib corresponding to the D3DX8D.DLL.

The dynamic debug d3dx8 library is for debugging only and is not intended  for use of shipping applications. D3DX8D.DLL is installed as part of the  DirectX 8.0 SDK setup, not as part of the redistributable runtime setup. This will not be available as part of future operating systems.


 
Колбасьев ©   (2004-07-16 17:35) [17]


> Теоретически, если знать Си и иметь DX SDK, можно распилить
> D3DX на несколько dll"ек, и использовать для каждого случая
> только те, которые нужны. Хотя, возможно, за счёт всяких
> накладных расходов общий размер получится в несколько раз
> больше, или там используются какие-то глобальные переменные и
> распиливание в принципе невозможно...



> AFAIK, нет такой "нормальной". Для Си D3DX поставляется в виде
> скомпилированных модулей (сишный аналог .dcu - .lib вроде) и
> линкуется непосредственно к exe-шнику.

lib - это откомпилированная библиотека (знакомые с ассемблером поймут). То есть ее можно использовать и в дельфи программах. А еще лучше найти ее исходники (хоть на Ассемблере) или в таком виде (lib) конвертировать в dcu (Только как. Вроде программы есть такие). Этим сам занятся не могу (пока) по причине отсутствия времни и SDK (да!!! я без него программирую (он был удален мною вместе с VC после небольшого "инцедента"), хотя может все же поставлю...)


 
ПсихЪ_просто   (2004-07-16 17:42) [18]


> Колбасьев ©   (16.07.04 17:35) [17]

В настройках 7 Дельфи есть опция - использовать вместо DCU LIB"ы. Я никогда не пользовался этим, но сильно подозреваю, что либы прекрасно цепляются к Дельфе.


 
Sapersky   (2004-07-16 18:17) [19]

В настройках 7 Дельфи есть опция - использовать вместо DCU LIB"ы
Не вижу... ткните носом.
Сильно подозреваю, что это была опция C-Builder"а :)


 
Колбасьев ©   (2004-07-16 19:31) [20]

У меня Дельфи 6 ;-)
Надо более общее решение.
Кто, кроме меня, хочет поковырятся в проблеме (или все любят лишние DLL?).


 
NailMan ©   (2004-07-18 23:30) [21]

Меня они(лишние DLL) не напрягают, так как:
- игра будет выпускаться на полном DVD-диске(4.7Гб), а это размер на котором какие-то жалкие 2 Мб(в общей сложности) как капля в море.
- чтобы на глазах не маячили эти ДЛЛ, я могу их запихать в папку System моей игры путем некоторого изменения заголовочника.
- зачем лишний изврат если все и так без проблем работает?

---
WBR, NailMan aka 2:5020/3337.13


 
ПсихЪ_копия   (2004-07-18 23:45) [22]


> Sapersky   (16.07.04 18:17) [19]

Project\Options\Linker, группа "Linker output" имеет следующие чекбоксы:
1. Generate DCUs
2. Generate C object files
3. Generate C++ object files

Это Delphi 7. И вроде в 6"ой версии тоже это было... Не знаю, поможет ли это как-то и зачем это нужно, я не пользовался никогда...



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

Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.035 c
1-1098904664
mishapost
2004-10-27 23:17
2004.11.14
Вывод длинной строки


1-1098453965
kalishenko
2004-10-22 18:06
2004.11.14
QReport


1-1098965360
FenixGold
2004-10-28 16:09
2004.11.14
Работа с таблицами


1-1098645916
CoolMan
2004-10-24 23:25
2004.11.14
Копирование n-ое кол-во файлов в один


3-1097758099
star
2004-10-14 16:48
2004.11.14
сортировка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский