All pastes #908535 Raw Edit

Something

public text v1 · immutable
·published 2008-02-18 15:43 UTC
rendered paste body
#include <d3d9.h>

#pragma comment(lib, "d3d9.lib")

static TCHAR lpszAppName[] = TEXT("DirectX");
LPDIRECT3D9 			g_pD3D		 = NULL;	// Used to create the D3DDevice
LPDIRECT3DDEVICE9		g_pd3dDevice = NULL;	// Our rendering device

// initialize 3D enviroment
HRESULT InitD3D( HWND hWnd )
{
	// Create the D3D object, which is needed to create the D3DDevice.
	if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
	{
		return E_FAIL;
	}

	// Get the current desktop display mode
	D3DDISPLAYMODE	d3ddm;
	if( FAILED( g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ) ) )
	{
		return E_FAIL;
	}

	
	D3DPRESENT_PARAMETERS	d3dpp; 
	ZeroMemory( &d3dpp, sizeof(d3dpp) );
	d3dpp.Windowed			= TRUE;
	d3dpp.SwapEffect		= D3DSWAPEFFECT_DISCARD;
	d3dpp.BackBufferFormat	= d3ddm.Format;

	
	if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
										D3DCREATE_SOFTWARE_VERTEXPROCESSING,
										&d3dpp, &g_pd3dDevice ) ) )
	{
		return E_FAIL;
	}

	return S_OK;
}




//-----------------------------------------------------------------------------
// Name: Cleanup()
// Desc: Releases all previously initialized objects
//-----------------------------------------------------------------------------
VOID Cleanup()
{
	if( g_pd3dDevice != NULL) 
		g_pd3dDevice->Release();
	
	if( g_pD3D != NULL)
		g_pD3D->Release();
}

// Draws the scene
VOID Render()
{
	if( NULL == g_pd3dDevice )
		return;
	
	// Clear the backbuffer to a blue color
	g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 255 ), 1.0f, 0 );
	
	// Begin the scene
	g_pd3dDevice->BeginScene();
	{
		
		//TU SE INO WSZYSTKO BEDE RENDEROWAL
		
	}
	// End the scene
	g_pd3dDevice->EndScene();
	
	// Present the backbuffer contents to the display
	g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}

// The window's message handler
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
	switch( msg )
	{
	case WM_DESTROY:
		PostQuitMessage( 0 );
		return 0;
		
	case WM_PAINT:
		Render();
		ValidateRect( hWnd, NULL  );
		return 0;
	}
	
	return DefWindowProc( hWnd, msg, wParam, lParam );
}

// Desc: The application's entry point
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
	// Register the window class
	WNDCLASSEX	wc = 
	{
		sizeof( WNDCLASSEX ),
		CS_CLASSDC,
		MsgProc,
		0L, 0L, 
		GetModuleHandle( NULL ),
		NULL, NULL, NULL, NULL,
		lpszAppName, NULL
	};

	RegisterClassEx( &wc );
	
	// Create the application's window
	HWND hWnd = CreateWindow( lpszAppName, lpszAppName, 
								WS_OVERLAPPEDWINDOW, 100, 100, 350, 350,
								GetDesktopWindow(), NULL, wc.hInstance, NULL );
	
	// Initialize Direct3D
	if( SUCCEEDED( InitD3D( hWnd ) ) )
	{ 
		// Show the window
		ShowWindow( hWnd, SW_SHOWDEFAULT );
		UpdateWindow( hWnd );
		
		// Enter the message loop
		MSG msg; 
		while( GetMessage( &msg, NULL, 0, 0 ) )
		{
			TranslateMessage( &msg );
			DispatchMessage( &msg );
		}
	}
	
	// Clean up everything and exit the app
	Cleanup();
	UnregisterClass( lpszAppName, wc.hInstance );
	return 0;
}