Exemplo n.º 1
0
// Initialize the engine
void Demo::Initialize(HINSTANCE hInstance, int nCmdShow)
{
	// Grab instance
	Demo* pDemo = Demo::privGetInstance();

	// Create window
	pDemo->window = pDemo->privCreateGraphicsWindow(hInstance, nCmdShow, "Bricks Demo", GAME_WIDTH, GAME_HEIGHT);

	// Initialize Direct3D
	pDemo->privInitDevice();
	pDemo->privCreateShader();
	pDemo->privCreateBuffers();

	// initialize motion blur
	pDemo->motionBlur.initialize(200);
	pDemo->motionBlur.setBlurTime(0.5f);

	// Set up camera
	pDemo->cam.setViewport(0, 0, GAME_WIDTH, GAME_HEIGHT);
	pDemo->cam.setPerspective(35.0f, float(GAME_WIDTH) / float(GAME_HEIGHT), 1.0f, 4500.0f);
	pDemo->cam.setOrientAndPosition(Vect(0.0f, 1.0f, 0.0f), Vect(0.0f, 50.0f, -10.0f), Vect(0.0f, 50.0f, 0.0f));
	pDemo->cam.updateCamera();
	pDemo->projection = pDemo->cam.getProjMatrix();
	pDemo->projection.T();
	pDemo->deviceCon->UpdateSubresource(pDemo->projectionBuffer, 0, nullptr, &pDemo->projection, 0, 0);

	// Set up Lighting
	Vect lightDir(20.0f, 100.0f, 100.0f);
	lightDir.norm();
	Vect lightColor(1.0f, 1.0f, 1.0f, 1.0f);
	pDemo->lightInfo.color = lightColor;
	pDemo->lightInfo.direction = lightDir;
	pDemo->globalLightDir = lightDir;
	pDemo->deviceCon->UpdateSubresource(pDemo->lightBuffer, 0, nullptr, &pDemo->lightInfo, 0, 0);
};