Exemple #1
0
//--------------------------------------------------------------------------------------
// Entry point to the program. Initializes everything and goes into a message processing 
// loop. Idle time is used to render the scene.
//--------------------------------------------------------------------------------------
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

    if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
        return 0;

    if( FAILED( InitDevice() ) )
    {
        CleanupDevice();
        return 0;
    }

    // Main message loop
    MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
            Render();
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}
//--------------------------------------------------------------------------------------
// WinMain
//--------------------------------------------------------------------------------------
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
	// デバッグ ヒープ マネージャによるメモリ割り当ての追跡方法を設定
	_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

	//Oculus Riftの初期化
	if (InitOculusRift() == 1)
	{
		CleanupDevice();
		return 1;
	}

	//ウィンドウの作成
	if(!InitWindow( hInstance, nCmdShow ) )
	{
		CleanupDevice();
		return 1;
	}

	//DirectXの初期化
	if(FAILED(InitDevice()))
	{
		CleanupDevice();
		return 1;
	}

	// Oculusで使用するDirectXのオブジェクトを作成する
	if (FAILED(InitOculusRiftObjects(3U, HMD)))
	{
		CleanupDevice();
		return 1;
	}

	//メッセージループのメイン
	MSG msg = {0};
	while( WM_QUIT != msg.message )
	{
		if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
		{
			TranslateMessage( &msg );
			DispatchMessage( &msg );
		}
		else
		{
			//ここにメインループを書く
			Render();
		}
	}

	//終了処理
	CleanupDevice();

	return (int) msg.wParam;
}
Exemple #3
0
//--------------------------------------------------------------------------------------
// Called every time the application receives a message
//--------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    PAINTSTRUCT ps;
    HDC hdc;

    switch( message )
    {
		case WM_SYSCOMMAND: 
			if (wParam==SC_SCREENSAVE || wParam==SC_MONITORPOWER) {
				return 0;
			}
			break;
        case WM_PAINT:
            hdc = BeginPaint( hWnd, &ps );
            EndPaint( hWnd, &ps );
            return 0;

        case WM_DESTROY:
            PostQuitMessage( 0 );
			CleanupDevice();
            return 0;
    }


	return DefWindowProc( hWnd, message, wParam, lParam );
}
Exemple #4
0
void Quit(LPCTSTR lpText) 
{

	MessageBox(g_hWnd, lpText, NULL, MB_OK | MB_ICONERROR);
	CleanupDevice();

	exit(EXIT_FAILURE);
}
Exemple #5
0
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

#ifdef _WIN64
#   define MSBUILD_OPTION "/m /p:Configuration=Release;Platform=x64"
#   define BUILD_TARGET "x64\\Release"
#else // _WIN64
#   define MSBUILD_OPTION "/m /p:Configuration=Release;Platform=Win32"
#   define BUILD_TARGET "Release"
#endif // _WIN64

    tbb::task_scheduler_init::automatic;
    //tbb::task_scheduler_init init(1); // for debug

    if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
        return 0;

    if( FAILED( InitDevice() ) )
    {
        CleanupDevice();
        return 0;
    }
    InitializeCollisions();

    // Main message loop
    MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
            Render();
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}
Exemple #6
0
bool KCore::GameRelease()
{
	KDxState::Release();
	Release();
	m_Timer.Release();
	I_Input.Release();
	m_Font.Release();
	CleanupDevice();
	return true;
}
Exemple #7
0
//--------------------------------------------------------------------------------------
// Точка входа в программу. Инициализация всех объектов и вход в цикл сообщений.
// Свободное время используется для отрисовки сцены.
//--------------------------------------------------------------------------------------
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

	// Создание окна приложения
    if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
        return 0;

	// Создание объектов DirectX
    if( FAILED( InitDevice() ) )
    {
        CleanupDevice();
        return 0;
    }

	// Создание шейдеров и буфера вершин
    if( FAILED( InitGeometry() ) )
    {
        CleanupDevice();
        return 0;
    }

    // Главный цикл сообщений
    MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else	// Если сообщений нет
        {
            Render();	// Рисуем
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}
Exemple #8
0
//ponto de entrada do programa usando para renderizar
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

    if( FAILED( InitWindow( hInstance, nCmdShow ) ) )
        return 0;

	if (FAILED(EngineStartup()))
	{
		CleanupDevice();
		return 0;
	}

//#if DEBUG
	ACConfigurations::Instance()->ENABLE_LOG = true;
//#else
//	ACConfigurations::Instance()->ENABLE_LOG = false;
//#endif
                                
    // Main message loop
    MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, nullptr, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
			pGame->Update();
			pGame->Draw();
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}
Exemple #9
0
HRESULT InitDevice(int aDevice)
{
	if (gDevice[aDevice])
	{
		CleanupDevice(aDevice);
	}
	gDevice[aDevice] = new CaptureClass;
	HRESULT hr = gDevice[aDevice]->initCapture(aDevice);
	if (FAILED(hr))
	{
		delete gDevice[aDevice];
		gDevice[aDevice] = 0;
	}
	return hr;
}
void GraphicsManager::destroy() {
    CleanupDevice();
    
    // Clean up the DX objects
    if (pDevice) {
        pDevice->Release();
        pDevice = NULL;
    }
    if (pContext) {
        pContext->Release();
        pContext = NULL;
    }
    if (pSwapChain) {
        pSwapChain->Release();
        pSwapChain = NULL;
    }

    delete pCurrentRenderer;
    delete pTestShader;
    delete pTestMesh;
}
Exemple #11
0
bool KCore::GameInit()
{
	HRESULT hr;
	if (FAILED(CreateGIFactory()))
	{
		return 0;
	}
	if (FAILED(InitDevice()))
	{
		CleanupDevice();
		return 0;
	}
	if (FAILED(InitSwapChain()))
	{
		return 0;
	}
	if (FAILED(SetRenderTarget()))
	{
		return 0;
	}
	if (FAILED(SetViewPort()))
	{
		return 0;
	}
	KDxState::SetState(g_pd3dDevice);

	m_Timer.Init();
	I_Input.Init();

	// font 
	IDXGISurface1*  pSurface;
	hr = g_pSwapChain->GetBuffer(0,
		__uuidof(IDXGISurface1),
		(LPVOID*)&pSurface);
	m_Font.Set(pSurface);
	pSurface->Release();

	Init();
	return true;
}
Exemple #12
0
/*************************************************************************
* Main entrypoint for debug build
*************************************************************************/
int WINAPI WinMain(HINSTANCE instance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MSG msg;

	g_hInstance = GetModuleHandle(0);
	OutputDebugString("Starting...\n");

    if (!WindowOpen()) {
		OutputDebugString("Failed to open window\n");
		WindowClose();
		return 0;
	}

	if (FAILED(InitDevice())) {
		CleanupDevice();
		return 0;
	}

	IntroInit();
	InitSound();
   
    while (!g_done) {
		g_currentFrame++;
		g_lastTime = g_currentTime;		
		g_currentPos = BASS_ChannelGetPosition(g_stream, BASS_POS_BYTE);
		g_currentTime = BASS_ChannelBytes2Seconds(g_stream, g_currentPos);
		
		if (g_pause) {
			Sleep(100);
		}

	    while (PeekMessage(&msg,0,0,0,PM_REMOVE)) {
            if (msg.message == WM_QUIT) {
				g_done = true;
			}

		    TranslateMessage(&msg);
            DispatchMessage(&msg);

			if (WM_KEYDOWN == msg.message && VK_SPACE == LOWORD(msg.wParam)) {
				if (!g_pause) {
					BASS_ChannelPause(g_stream);
					g_pause = true;
				} else {
					BASS_ChannelPlay(g_stream, false);
					g_pause = false;
				}
			}
			
			if (WM_KEYDOWN == msg.message && VK_LEFT == LOWORD(msg.wParam)) {
				if (g_pause) {
					BASS_ChannelSetPosition(g_stream, g_currentPos-44100, BASS_POS_BYTE);
				} else {
					BASS_ChannelSetPosition(g_stream, g_currentPos-44100*4, BASS_POS_BYTE);
				}
			}

			if (WM_KEYDOWN == msg.message && VK_RIGHT == LOWORD(msg.wParam)) {
				if (g_pause) {
					BASS_ChannelSetPosition(g_stream, g_currentPos+44100, BASS_POS_BYTE);
				} else {
					BASS_ChannelSetPosition(g_stream, g_currentPos+44100*4, BASS_POS_BYTE);
				}
			}

			if (WM_KEYDOWN == msg.message && VK_DOWN == LOWORD(msg.wParam)) {
				BASS_ChannelSetPosition(g_stream, g_currentPos-44100*20, BASS_POS_BYTE);
			}

			if (WM_KEYDOWN == msg.message && VK_UP == LOWORD(msg.wParam)) {
				BASS_ChannelSetPosition(g_stream, g_currentPos+44100*20, BASS_POS_BYTE);
			}

			if (WM_KEYDOWN == msg.message && VK_F1 == LOWORD(msg.wParam)) {
				g_repeatStart = g_currentPos;
				g_repeatEnd = LONG_MAX;
			}

			if (WM_KEYDOWN == msg.message && VK_F2 == LOWORD(msg.wParam)) {
				g_repeatEnd = g_currentPos;
			}

			if (WM_KEYDOWN == msg.message && VK_RETURN == LOWORD(msg.wParam)) {
				g_repeatStart = 0;
				g_repeatEnd = LONG_MAX;
			}
        }

		IntroLoop((long)(g_currentTime*44100.0));
		UpdateTitle();

		if (g_currentPos > g_repeatEnd) {
			BASS_ChannelSetPosition(g_stream, g_repeatStart, BASS_POS_BYTE);
		}
		BASS_Update(0);
    }

	BASS_StreamFree(g_stream);
	BASS_Free();
	
	WindowClose();

    return 0;
}
Exemple #13
0
//--------------------------------------------------------------------------------------
// Entry point to the program. Initializes everything and goes into a message processing 
// loop. Idle time is used to render the scene.
//--------------------------------------------------------------------------------------
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

	g_options.bpp = 32;
	g_options.dWidth = 1280;
	g_options.dHeight = 1280/16*9;
	g_options.iWidth = 1280/4*2;
	g_options.iHeight = 720/4*2;
	g_options.offsetX = 0;
	g_options.offsetY = 0;
	g_options.sWidth = 0;
	g_options.sHeight = 0;
	g_options.aspectRatio = 4/3;
#ifdef SYNC_PLAYER
	g_options.fullscreen = true;
#else
	g_options.fullscreen = false;
#endif
	g_options.saveImages = false;
	g_options.saveFrameRate = 60.0;
		
    if( FAILED( InitWindow( hInstance, nCmdShow ) ) ) {
		Quit("Failed to initialize window");
	}

#ifdef SYNC_PLAYER
	InitOptions();
#endif

	CalculateScreenSize();

	SetWindowPos(g_hWnd, NULL, 0, 0, g_options.dWidth, g_options.dHeight, NULL);
	ShowWindow( g_hWnd, nCmdShow );

    if( FAILED( InitDevice() ) )
    {
		Quit("Failed to initialize device");
    }
	
	BOOL *fullscreen = new BOOL;

	g_pSwapChain->GetFullscreenState(fullscreen,NULL);
	while(*fullscreen != g_options.fullscreen) {
		g_pSwapChain->GetFullscreenState(fullscreen,NULL);
		Sleep(1000);
	}

#ifdef SYNC_PLAYER
	ShowCursor(FALSE);
#endif

	InitAudio();
	LoadShaders();
	DemoInit();

	PlayMusic();
    // Main message loop
    MSG msg = {0};
#ifndef SYNC_PLAYER
	double lastRow = -1;
#endif
    while( true)
    {
		if(WM_QUIT == msg.message) break;
#ifdef SYNC_PLAYER
		if(GetAsyncKeyState(VK_ESCAPE)) break;
#endif
		
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
			double row = GetAudioRow();
			double delta = row - lastRow;
			if(row > 3504) break;
#ifndef SYNC_PLAYER
			
			if(row == lastRow) {
				// Turha syödä kaikki resursseja, jos pause päällä.
				Sleep(100);
			}
#endif
			
			lastRow = row;
            Render(row, delta);
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}
	DirectX9Renderer::~DirectX9Renderer(void)
	{
		CleanupDevice();
	}
Exemple #15
0
//--------------------------------------------------------------------------------------
// Точка входа в программу. Инициализация всех объектов и вход в цикл сообщений.
// Свободное время используется для отрисовки сцены.
//--------------------------------------------------------------------------------------
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
  UNREFERENCED_PARAMETER(hPrevInstance);
  UNREFERENCED_PARAMETER(lpCmdLine);
  
  // Инициализация игры
  ConwayGame.Init(GAME_WIDTH, GAME_HEIGHT);
  ConwayGame.SetTestValues();

  // Создание окна приложения
  if(FAILED(InitWindow(hInstance, nCmdShow)))
    return 0;

  // Создание объектов DirectX
  if(FAILED(InitDevice()))
  {
    CleanupDevice();
    return 0;
  }

  // Создание шейдеров и буфера вершин
  if(FAILED(LoadShaders()))
  {
    CleanupDevice();
    return 0;
  }

  if(FAILED(InitGeometry()))
  {
    CleanupDevice();
    return 0;
  }

  // Инициализация матриц
  if(FAILED(InitMatrixes()))
  {
    CleanupDevice();
    return 0;
  }

  // Главный цикл сообщений
  MSG msg = {0};
  while(WM_QUIT != msg.message)
  {
    if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }
    else
    {
      if (!(GetTickCount() % 10))
      {
        if(FAILED(InitGeometry()))
        {
          CleanupDevice();
          return 0;
        }
        ConwayGame.Step();
      }
      Render();
    }
  }

  CleanupDevice();
  return (int)msg.wParam;
}
Exemple #16
0
void CDX10Core::ResetDevice()
{
	CleanupDevice();
	Init( m_hWnd, m_initDesc );	
}
Exemple #17
0
CDX10Core::~CDX10Core( void )
{
	CleanupDevice();
}
Exemple #18
0
DeviceDx11::~DeviceDx11()
{
	CleanupDevice();
}
Exemple #19
0
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);

 	// TODO: Place code here.
	//MSG msg;
	HACCEL hAccelTable;

	// Initialize global strings
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_ITERATION12, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance);

	// Perform application initialization:
	if (FAILED(InitWindow(hInstance, nCmdShow)))
	{
		return FALSE;
	}
	if( FAILED( InitDevice() ) )
    {
        CleanupDevice();
        return 0;
    }

	hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_ITERATION12));

	// Start render thread
	RenderThreadWork worker(pRenderSystem);
	boost::thread renderThread(worker);

	// Main message loop
	MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
            DoFrame();
        }
    }/*
	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0))
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
		else
		{
			DoFrame();
		}
	}*/

	return (int) msg.wParam;
}
Exemple #20
0
DxWidget::~DxWidget()
{
	CleanupDevice();
}