· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› как дебагить D3D full-screen приложение?

Посл.отвђт Сообщенiе


Дата: Окт 15, 2004 20:37:25

с библиотеками разобрался все уже пофиксил успешно.. теперь сложнее задача.

что делать если при любом переключении экрана приложение резко выходит. А пока оно работает оно всегда сверху. Поверх него впринципе ничего не появляется.Мне надо найти место в программе когда нажимаешь на ентер. и от этой точки внимательно протрейсить.. до момента вывода текста на экран. Есть какой дебаггер способный вылезти поверх D3D экрана.. и при этом не снимать с той проги фокус.


Дата: Окт 15, 2004 21:28:08

Soft ICE


Дата: Окт 15, 2004 21:39:09

„Мне надо найти место в программе когда нажимаешь на ентер“
Где-то в сторону этих степей:
3D 00010000        CMP     EAX, 100 	          ; WM_KEYDOWN
74                 JE                             ; WM_KEYDOWN_PROC

817D 0C 00010000   CMP     DWORD PTR [EBP+C], 100 ; WM_KEYDOWN
74                 JE                             ; WM_KEYDOWN_PROC

837D 10 1B         CMP     DWORD PTR [EBP+10], 0D ; VK_RETURN
75                 JNZ                            ; VK_RETURN_PROC


Дата: Окт 15, 2004 22:19:12

bogrus

А прикинь, если ентером стрелять надо :) Сколько таких мест будет? :)


Дата: Окт 15, 2004 22:44:30

„Сколько таких мест будет? :)“

По одному на каждого убитого %)


Дата: Окт 15, 2004 23:16:04

Вообще-то дебажить можно любым отладчиком поддерживающим удалённую отладку, т.е. нужно два компа..


Дата: Окт 15, 2004 23:44:38 · Поправил: S_T_A_S_

Поскольку там DX, то наверняка будет использован DirectInput, т.е. WM_KEYDOWN и близко не будет.

PS
Кнопочки-то и перезадаваться могут - enter так просто не найдёшь.


Дата: Окт 16, 2004 00:20:27

Я посмотрел DirectX туториалы keYMax-а и Fasm\Examples\DDraw , там везде WM_KEYDOWN. По-этому пришел к выводу, что такое возможно и в проге Atomic


Дата: Окт 16, 2004 10:25:19

В одном старом DirectX тетрисе видел чтение клавиатуры через GetAsyncKeyState


Дата: Окт 16, 2004 12:48:39

Для туториалов оконных сообщений вполне достаточно. Но в реальной игрухе приходится нажимать сразу на несколько кнопок, поэтому логика опроса клавы меняется - не ждём пока клавишу нажмут, а проверяем не нажата ли она.

В старых DX не было ничего для этого, поэтому GetAsyncKeyState вполне логична.
Но сейчас есть всякие IDirectInputDevice8::GetDeviceState - они лучше подходят для игрух, да и отлаживать / искать это сложнее, поэтому IMHO лучше трейсить назад - от вывода текста.

Косвенно провернить используемый API можно так: нажать какие-нибудь кнопке на клаве, а потом enter.
Если сработает - сообщений точно нет :).


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.090