All pastes #968522 Raw Edit

Jon's Skybox

public cpp v1 · immutable
·published 2008-04-03 02:29 UTC
rendered paste body
#include "SkyBox.h"#include <windows.h>#include <mmsystem.h>#include <d3d9.h>#include <d3dx9tex.h>LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;SkyBox::SkyBox(LPDIRECT3DTEXTURE9 Left, LPDIRECT3DTEXTURE9 Front, LPDIRECT3DTEXTURE9 Right,LPDIRECT3DTEXTURE9 Back, LPDIRECT3DTEXTURE9 Top, LPDIRECT3DTEXTURE9 Bottom){	tSide1 = Left;	tSide2 = Front;	tSide3 = Right;	tSide4 = Back;	tSide5 = Top;	tSide6 = Bottom;}void SkyBox::SetupBox(float Size, LPDIRECT3DDEVICE9 pd3dDevice){	VERTEX g_Vertices[] =	{		//TopFront		{-Size, Size,-Size,  0.0f,0.0f },		{ Size, Size,-Size,  1.0f,0.0f },		{-Size,-Size,-Size,  0.0f,1.0f },		{ Size,-Size,-Size,  1.0f,1.0f },			{-Size, Size, Size,  1.0f,0.0f },		{-Size,-Size, Size,  1.0f,1.0f },		{ Size, Size, Size,  0.0f,0.0f },		{ Size,-Size, Size,  0.0f,1.0f },			{-Size, Size, Size,  0.0f,0.0f },		{ Size, Size, Size,  1.0f,0.0f },		{-Size, Size,-Size,  0.0f,1.0f },		{ Size, Size,-Size,  1.0f,1.0f },			{-Size,-Size, Size,  0.0f,0.0f },		{-Size,-Size,-Size,  0.0f,1.0f },		{ Size,-Size, Size,  1.0f,0.0f },		{ Size,-Size,-Size,  1.0f,1.0f },		{ Size, Size,-Size,  0.0f,0.0f },		{ Size, Size, Size,  1.0f,0.0f },		{ Size,-Size,-Size,  0.0f,1.0f },		{ Size,-Size, Size,  1.0f,1.0f },				{-Size, Size,-Size,  1.0f,0.0f },		{-Size,-Size,-Size,  1.0f,1.0f },		{-Size, Size, Size,  0.0f,0.0f },		{-Size,-Size, Size,  0.0f,1.0f }	};	g_pVB = createVertexBuffer(sizeof(g_Vertices) * sizeof(VERTEX), D3DFVF_VERTEX, pd3dDevice);		    VOID* pVertices;		g_pVB->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 );	// copy the vertices into the buffer    memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );	// unlock the vertex buffer    g_pVB->Unlock();}void SkyBox::Render(LPDIRECT3DDEVICE9 pd3dDevice){	pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(VERTEX) );    pd3dDevice->SetFVF( D3DFVF_VERTEX );	pd3dDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);	// Draw the trianglestrips that make up the cube	pd3dDevice->SetTexture(0, tSide1);    pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP,  0, 2 );	pd3dDevice->SetTexture(0, tSide3);	pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP,  4, 2 );	pd3dDevice->SetTexture(0, tSide5);	pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP,  8, 2 );	pd3dDevice->SetTexture(0, tSide6);	pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 12, 2 );	pd3dDevice->SetTexture(0, tSide2);	pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 16, 2 );	pd3dDevice->SetTexture(0, tSide4);	pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 20, 2 );}LPDIRECT3DVERTEXBUFFER9 SkyBox::createVertexBuffer(int size, DWORD usage, LPDIRECT3DDEVICE9 pd3dDevice){	LPDIRECT3DVERTEXBUFFER9 buffer;    // Create the vertex buffer.    pd3dDevice->CreateVertexBuffer( size,                                         0, 										 usage,                                         D3DPOOL_DEFAULT, 										 &buffer, 										 NULL );    	return buffer;}