오류 수십개 뱉어내고 파업해버림


//소스코드

#pragma once
enum WindowMode
{
    FULL,
    WINDOW
};

class App : public Singleton
{
private:
    int m_Width;
    int m_Height;
    bool m_WindowMode;

    HWND m_Hwnd;

public:
    App();
    ~App();

private:
    bool _CreateWindow();
    bool _CreateRenderer();

public:
    int Mode;
    bool Init(int width, int height, bool windowMode);
    void Run();
    void Release();
   
public:
    double
        Time
        , CurrentTime
        , dt
        , NewTime
        , FrameTime
        , DeltaTime;

public:

    HWND GetHwnd() {
        return m_Hwnd;
    }
private:
    static LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);

};

//

#include "stdafx.h"
#include "App.h"


App::App() :
    CurrentTime(0)
    ,DeltaTime(0)
    ,FrameTime(0)
    ,Mode(WINDOW)
    ,NewTime(0)
    ,Time(0)
    ,dt(0)
    ,m_Height(0)
    ,m_Hwnd(nullptr)
    ,m_Width(0)
    ,m_WindowMode(true)
{
}


App::~App()
{
}
bool App::Init(int width, int height, bool windowMode)
{
    m_Width = width;
    m_Height = height;
    m_WindowMode = windowMode;

    if (!_CreateWindow())
        return false;

    if (!_CreateRenderer())
        return false;

    Time = 0.0;
    dt = 1.0 / 60.0;
    CurrentTime = GetTickCount64();
    return true;
}

void App::Run()
{
    MSG msg;
    ZeroMemory(&msg, sizeof(MSG));

    while (msg.message != WM_QUIT)
    {
       

        if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            NewTime = GetTickCount64();
            FrameTime = NewTime - CurrentTime;
            CurrentTime = NewTime;

            DeltaTime = FrameTime / 1000.0;
            Renderer::GetInst()->Begin();
            SceneDirector::GetInst()->Update(DeltaTime,Time);
            printf("Time : %0.6f\nFrameTime : %0.6f\n", FrameTime, DeltaTime);
            Time += dt;
            SceneDirector::GetInst()->Render();
            Renderer::GetInst()->End();
           
               
           
            if (GetAsyncKeyState(VK_ESCAPE))
            {
                ObjectMgr::GetInst()->Release();
                App::GetInst()->Release();
            }
        }
    }

}

void App::Release()
{
    FreeConsole();
    Renderer::GetInst()->Release();
    TextFont::GetInst()->Release();
}

LRESULT App::WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    switch (Msg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    case WM_LBUTTONDOWN:
        INPUT->ButtonDown(true);
        break;

    case WM_LBUTTONUP:
        INPUT->ButtonDown(false);
        break;
    }

    return DefWindowProc(hWnd, Msg, wParam, lParam);
}

bool App::_CreateWindow()
{
    WNDCLASS wc = {};
    wc.lpszClassName = L"Space";
    wc.hCursor = LoadCursor(0, IDC_ARROW);
    wc.lpfnWndProc = WndProc;

    RegisterClass(&wc);

    DWORD Style = 0;

    if (m_WindowMode)
        Style = WS_OVERLAPPEDWINDOW;
    else
        Style = WS_POPUP | WS_EX_TOPMOST;

    HWND hWnd = CreateWindow(wc.lpszClassName, wc.lpszClassName, Style, 0, 0, m_Width, m_Height, 0, 0, 0, 0);
    if (hWnd)
        m_Hwnd = hWnd;
    else
        return false;

    ShowWindow(m_Hwnd, SW_SHOWDEFAULT);


    return true;
}

bool App::_CreateRenderer()
{
    if (!(Renderer::GetInst()->Init(m_Width, m_Height, m_WindowMode)))
        return false;

    return true;
}