Direct3D/DirectDraw хук

Тема в разделе "WASM.DirectX", создана пользователем float, 20 окт 2011.

  1. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    В общем имеется старая игра с 3d графикой, в таблице импорта только ddraw.dll - DirectDrawCreateEx. Версия directdraw - 7. Перехватил создание интерфейса IDirectDraw7, но его методами не идет отрисовка графики, хотя CreatePalette и CreateSurface периодически вызываются.

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

    Ну и конкретные вопросы:
    Где мне искать отрисовку текстур? Как получить устройство d3d (если оно вообще присутствует)?
     
  2. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    float
    какие текстуры в директ драв? там просто получаются плоскости, заполняются (цифрами) как охота и блитятся на первичную. все. можете перехватить момент блитинга и перерисовать. или получить первичную и перерисовывать прямо на ней.

    получить д3д из дд можно. если вам это надо - смотрите примеры сами. наверно, в первом же эпохи дх7 и увидите.
     
  3. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    float
    Вы назовите игруху ... а то может уже есть читы по неё )))
     
  4. Calibrations

    Calibrations New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2012
    Сообщения:
    1
    А враппер из dx7 в dx9 возможен, если такая большая разница между работой dx7 и следующих версий?
     
  5. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    В 7 директе 3D работало насколько помню например так:
    1. Создавалась примари поверхность с капсом 3ddevice (вы ее перехватили)
    2. Затем back
    2. Из нее получали через queryinterface указатель на d3d (надо перехватить еще вот это)
    3. На его основе чекали какие есть форматы Z буфера
    4. Создавали Z и атачили его в back поверхность
    5. На основе ранее полученного указателя на d3d создавали устройство
    6. Далее уже вся работа, загрузка текстур отрисовка все дела с помошью этого устройства.

    рисуется все в back, а на экран (primary поверхность) делается Blt

    как то так.