Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[DirectX3D] Brak odpowiedzi po skompilowaniu i uruchomieniu aplikacji

Ostatnio zmodyfikowano 2014-05-23 21:03
Autor Wiadomość
TheReclif
Temat założony przez niniejszego użytkownika
[DirectX3D] Brak odpowiedzi po skompilowaniu i uruchomieniu aplikacji
» 2014-04-27 14:28:03
Witam...
Ostatnio piszę program w wykorzystujący DirectX 11. Wszystko pięknie, ładnie, aż do momentu stworzenia i wykorzystania funkcji DrawScene:
C/C++
void DrawScene( ID3D11DeviceContext * d3d11DevCon, ID3D11RenderTargetView * renderTargetView, IDXGISwapChain * SwapChain )
{
    float bgColor[] = { 0.0, 0.7, 0.0, 1.0 };
    d3d11DevCon->ClearRenderTargetView( renderTargetView, bgColor );
    SwapChain->Present( 0, 0 );
}
Wykorzystałem ją w głównej pętli programu(która jest funkcją MessageLoop):
C/C++
int MessageLoop( MSG msg, InterfaceHierarchy Interface ) { //The message loop
    ZeroMemory( & msg, sizeof( MSG ) ); //czyscimy ja, zerujemy
    while( true ) //petla wykonuje sie dopoki nie nacisniemy [X] lub [Esc]
    {
        if( PeekMessage( & msg, NULL, 0, 0, PM_REMOVE ) )
        {
            if( msg.message == WM_QUIT ) break; //jezli wiadomosc jest by zamkniecie aplikacje, petla jest przerywana
           
            TranslateMessage( & msg );
            DispatchMessage( & msg );
        }
        else
        {
            UpdateScene();
            DrawScene( Interface.d3d11DevCon,
            Interface.renderTargetView,
            Interface.SwapChain );
        }
    }
    return( int ) msg.wParam;
}

Kiedy wstawię funkcję DrawScene w blok komentarza, program działa normalnie-odpala się konsola, potem okno i czeka na zakończenie przez wciśnięcie klawisza "Esc"(okno jest puste, bez oznak wykorzystania DirectX3D). Po usunięciu komentarza, program po udanej kompilacji odpala się razem z konsolą, ale od razu po włączeniu pojawia się informacja o braku odpowiedzi i trzeba program zamknąć. Konsola deweloperska zwraca kod błędu 0xFF, czyli 255. Nie wiem, co może powodować taki stan rzeczy, ale jak tak dalej pójdzie, to nie będę mógł spełnić swoich marzeń o grze na własnym, autorskim silniku. Dodam, że korzystam z Code::Blocksa i kompilatora Microsoft Visual C++ 2005/2008. Będę wdzięczny za pomoc.
P-108797
Parapet
» 2014-04-27 14:49:00
Może masz sprzęt za słaby.
P-108799
TheReclif
Temat założony przez niniejszego użytkownika
» 2014-04-27 15:22:47
To trochę nierealna możliwość, wysłałem koledze program i jemu też powielił się ten błąd. Dodatkowo kod z tej strony(na którym się wzorowałem):http:/​/directx113d.blogspot.com/2012​/12​/lekcja-5-inicjalizacja-directx.html działa u mnie prawidłowo.
P-108800
TheReclif
Temat założony przez niniejszego użytkownika
» 2014-04-27 22:14:03
Ponawiam pytanie ze względu na brak konkretnej odpowiedzi.
P-108823
RazzorFlame
» 2014-04-28 15:09:34
Podaj kod jak wywołujesz funkcję MessageLoop czy jakoś tak ;)
P-108850
TheReclif
Temat założony przez niniejszego użytkownika
» 2014-04-28 16:15:32
C/C++
#include "default.hpp" //dołącza wszystkie potrzebne biblioteki i liby

struct InterfaceHierarchy
{
    D11SwapChain * SwapChain;
    D11Device * d3d11Device;
    D11DevContext * d3d11DevCon;
    D11RenTarView * renderTargetView;
};

InterfaceHierarchy Interface;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    const int Width = 800;
    const int Height = 700;
    LPSTR EndName;
    EndName = "Program testowy";
    if( Start( hInstance ) == false )
    {
        return 1;
    }
   
    HWND hWnd = CreateNewWindow( "MainGameWindow",
    EndName,
    hInstance,
    Width, Height );
   
    ShowWindow( hWnd, SW_SHOWDEFAULT );
    UpdateWindow( hWnd );
    //Inicjalizacja DX11
    InitializeDirectx11App( hInstance,
    Width,
    Height,
    hWnd,
    Interface.SwapChain,
    Interface.d3d11Device,
    Interface.d3d11DevCon,
    Interface.renderTargetView );
    InitScene();
    //Koniec inicjalizacji
    MSG msg;
    MessageLoop( msg, Interface );
    ReleaseObjects( Interface.d3d11DevCon,
    Interface.d3d11Device,
    Interface.SwapChain );
}

To właśnie ten kod
P-108854
TheReclif
Temat założony przez niniejszego użytkownika
» 2014-05-04 10:35:57
Niestety, ale z powodu braku odpowiedzi przez dłuższy czas, muszę ponowić pytanie. Sam próbowałem rozwiązać problem, ale nie udało mi się to.
P-109248
RazzorFlame
» 2014-05-04 14:30:41
Sprawdź na której dokładnie linijce występuje błąd. Przed i po każdej linijce wyświetl jakiś informacyjny tekst do konsoli i sprawdź która linijka powoduje kłopoty.
P-109273
« 1 » 2
  Strona 1 z 2 Następna strona