Вопрос про DirectX

Тема в разделе "WASM.SOFTWARE", создана пользователем CyberManiac, 18 сен 2009.

  1. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Стоит у меня DirectX. Да и хрен бы с ним, но угораздило меня поставить игрушку, не будем говорить, какую, но... Эта игрушка попыталась при установке воткнуть свой собственный DX, причём скачав его из инета. Попытка соединения с инетом была успешло фаером обнаружена и послана мной на..., потому что трафик не халявный. В результате игрушка типа поставилась, но при запуске выдаёт, что библиотека d3dx9_34 не найдена, так что обломись. Вопрос такой: это чё, щас так модно, чтобы к каждой игрушке прилагался свой особый, неповторимый и нихрена не стандартный DirectX?!
     
  2. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    CyberManiac
    эм, а может ей просто нужен directx поновей?
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    CyberManiac
    Вот волну погнал. В этой библиотеке вспомогательный функционал(например загрузка текстур), без него можно, но грустно. Всё там стандартно, поставь свежий редист.
     
  4. BLiTZ

    BLiTZ Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    54
    Эм, дык это нормально. Игра написана под более высокую версию DirectX, а расширения функционала МС как раз и делает в дополнительных библиотеках со странными с именами типа d3dx9_xx.dll . Если забить на все, то можно слить библиотеку отдельно, в 90% случаев работает.
     
  5. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    BLiTZ
    Фишка в том, что у меня в системе уже была библиотека d3dx9_40.dll. Которая как бы более высокой версии, но если её переименовать в ..._34.dll, вместо графики - чёрный экран. Отрыл старую винду - просто ахренел, там из этих нумерованных dll вообще целый зоопарк на 70 мегабайт, и все - разные. Ну не уроды ли?
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    CyberManiac
    А как ты предлагаешь развивать функционал, с сохранением совместимости?
     
  7. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    CyberManiac
    +100

    Booster
    дык это и отличает грамотную разработку - совместимость. умные люди тщательно планируют интерфейс/протокол, чтоб не заменять все каждый раз. а когда дерешь с миру по нитке по-быстрому, какое может быть серьезное продумывание? тут спешить надо, как бы хозяин не проснулся и пендалей не надавал.

    с другой стороны, неужели настолько разный функционал у всех этих msvcrt, msvcrt7, msvcrt8, ..., что все это нельзя было впихнуть в одну либу?

    одно слово - халтура. по богачу, но халтура. как весь язык васик - тежелопохмельный бред недоучившего фортран. причем чем дальше тем хуже. последовательно поставил и висту и 7рку нескольких сортов. глюк и у оси тяжелая паранойя - полузагрузка, месажбох с визгом "за мной следят! ах, это ты!!" и завал в перегрузку. вот, вернул назад хп и вроде как комп проапгрэйдил раза в 4.. эх, если б не железо, еще бы назад вернулся.. нт4 - 20мб озу..
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _basmp_
    В какую одну либу? Покажи у кого, на какой платформе сделано иначе/лучше.
     
  9. Mankubus

    Mankubus New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2009
    Сообщения:
    76
    CyberManiac, да, у меня этих d3dx9 с 24 по 41-ю, 34 тоже есть. Такой подход к библиотекам правда.. Легче назвать d3dx9.dll, например, а в программе проверять версию, если важно что-то новое. И делать поддержку старых функций в обновленных либах, совместимость так сказать...
     
  10. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    дык, вообще там не обязан быть полностью реализован интерфейс 34, там может быть только дополнительные возможност.
     
  11. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Называют по разному, потому что в ней из версии к версии могут быть убраны/добавлены некоторые методы из интерфейсов. Посмотрите сравните include файлы разных сдк. А прога скомпилена с вызовом нужного метода с требуемым смещением в таблице адресов, отсюда и нестыковка. Поэтому от зоопарка не получится отказаться. Скопирую библиотеку с другого компа и не парься.
     
  12. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    keYMax
    а) только если изменен сам вызов с удалением старого варианта, а не простой перегрузкой
    б) если добавлены виртуальные методы перед теми, что уже есть.
    в) если добавлены или серьезно перекроены данные класса.
    если такое происходит при каждом релизе 5 раз в год и все внутри одной версии, то ничем кроме поспешного планирования (или вообще без него) это объяснить нельзя. и называется это халтура. даже совковые запоры делали лучше

    Booster
    ?? може я ошибаюсь, но 97% методов там одинаковые (хотя, может реализованы и по разному. сомнительно, конечно, но все же). так зачем лепить разные либы? + либС еще с чстично пересекающимся функционалом. я уж молчу, что все эти либс, и куча мсвсрт дублирует выньапи которое все равно есть. вопрос - зачем это? или в мс не знают, что они делают?

    а на какой платформе - есть такие, но я просто скажу, что сам ДХ мс купило (или выдавило? ситуация ведь критическая была) и основные интерфейсы не менялись, а только мало-мало дополнялись версии до 8мой (или даже до 10той?). во всяком случае 3д проги писаные с 3тьим сдк работают прекрасно и безо всяких вопросов и под вистой (дх10). и интерфейсы перекраивать не приходилось и длли счас искать-добавлять тоже не.
    это называется грамотное планирование. с умом работала та контора.

    есть и лучше примеры, но достаточность лучше лучшести
     
  13. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Например, как в OpenGL :)
     
  14. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    _DEN_
    +1
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    OpenGL это аналог d3d9, d3d10. Их меняют редко, при переходе на новую версию. Концептуально d3dx (extension) был задуман, для широкого изменения, чтобы можно было легко вносить новый функционал и убирать устаревший. Кто не хочет, тот для этих целей юзает сторонние библиотеки.

    Формат, функционал. Иначе развитие компиляторов встанет.

    А как же кроссплатформенность?
     
  16. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    _basmp_
    именно так и есть в большинстве случаев.

    это раньше были релизы раз в два месяца четко, поэтому время на обдумывание у них было мало, да и изменения были смешными, два-три метода во всем СДК, да пара флагов. В этом году вышло всего два релиза за март и август, что явно лучше. Пусть не часто зато более весомо.

    OpenGL отдельная песня. Зоопарк из расширений.
     
  17. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    keYMax, а ради чего вообще Мелкософт клепает все эти высеры? Не хотят делать DX10 под XP - ну пускай замораживают девятку как есть и не фачат моск. Или делают нормальные DX 9.1, 9.2, 9.3 и т.д., которые можно написать в системных требованиях и которые будут обратно совместимы без кучи кривых костылей. А то, что сейчас имеется - "мы его слепили из того, что было", а было только то, из чего пожарники не получаются.
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Он их клепает для разработчиков, кто не хочет может не пользоваться. Лично для меня это удобно.
     
  19. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Booster
    не совсем так, например интерфейс огл основан не на С++ классах и потому не имеет проблем с их модификацией. кроме того, отличие в том, что гл существовал задолго до вынь/дх и, не смотря на суету вокруг дх, видимо, просуществует дольше. например, изза переносимости. в том числе и в пределах разных выней.

    не знаю как развитие компиляторов к куче мсвсрт с дубликатами контента и в чем само развитие компиляторов основанных на С рантайме от мс.
    ну а формат и функционал, думаю, вы просто к слову написали

    а кросплатформенность каким боком к мсвсрт?

    keYMax
    ну так и я говорю - халтура. если каждые пару месяцев-полгода несовместимо меняются интерфейсы, то это даже не бета, а натуральная альфа или даже ресерч, но точно не релиз. халтура одним словом

    Booster
    скорее для маркетологов и пускающих слюни крутоподростков. и не пользоваться не получается. чем дальше в лес, тем больше мс вопрос ставит именно так.
    а все она, нвидия. если б не эта победительница 3дфх-а мс уже б серьезно задумался, что рс когдато назывались "ибм"
     
  20. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _basmp_
    Ты похоже не в курсе, что творилось и продолжает твориться с желе. Оно переизбытилось устаревшим, фиг знает как работающим функционалом и расплывчатыми требованиями. Какой-то просвет забрезжил с выходом OpenGL 3, но оно всё время идёт позади DirectX. Классы или функции это всего лишь внешний фасад. Расширения OpenGL это и благо и проклятие одновременно. Не даром в OpenGL 3 сделали жёсткие профили. Что касаемо экстеншена DirectX, то его никто не заставляет использовать, всё это вполне реализуемо сторонними библиотеками. Он именно и задумывался, как легко модифицируемый и постоянно расширяемый. Причём здесь халтура?

    У нас вроде речь была о том, зачем он нужен если есть winapi? Если не в курсе, там реализованы стандартные функции С/С++ и впомогательный функционал поддерживающий эти языки на бинарном уровне. ^)