Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a
// - copy the two files from the lib directory of your compiler
// - open project options >> parameters and add both using "Add Library or Object"
#include <windows.h>
#include <windowsx.h>
#include <d3d9.h>
#include <d3dx9.h>
// Defines
struct CUSTOMVERTEX {
float X;
float Y;
float Z;
DWORD COLOR;
};
#define CUSTOMFVF (D3DFVF_XYZ | D3DFVF_DIFFUSE)
// global declarations
LPDIRECT3D9 d3d; // the pointer to our
Direct3D interface
LPDIRECT3DDEVICE9 d3ddev; // the pointer to the
device class
LPDIRECT3DVERTEXBUFFER9 vertexbuffer = NULL; // the pointer to the vertex buffer
// this is the function that puts the 3D models into video RAM
void init_graphics() {
VOID* pVoid;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = true;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = hwnd;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
d3dpp.BackBufferWidth = 800;
d3dpp.BackBufferHeight = 600;
d3dpp.EnableAutoDepthStencil = true; // Manage SetDepthStencil for us
d3dpp.AutoDepthStencilFormat = D3DFMT_D16; // 16-bit pixel format for
the z-buffer
// create a device class using this information and the info from the d3dpp
stuct
d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddev);
// Create resources
init_graphics();
d3ddev->BeginScene();
D3DXMatrixLookAtLH(&matView,
&camPos, // the camera position
&lookAt, // the look-at position
&up); // the up direction
d3ddev->SetTransform(D3DTS_VIEW, &matView);
// tell Direct3D about each world transform, and then draw another triangle
D3DMATRIX matTemp(matTranslateA * matRotateY);
d3ddev->SetTransform(D3DTS_WORLD, &matTemp);
d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
d3ddev->EndScene();
memset(&wc,0,sizeof(wc));
wc.cbSize = sizeof(WNDCLASSEX);
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);
wc.lpszClassName = "WindowClass";
wc.hIcon = NULL;
wc.hIconSm = NULL;
RegisterClassEx(&wc);
ShowWindow(hwnd, SW_SHOW);
return msg.wParam;
}