Hi!
Can somebody help me?
I want to add text, but I can't. I saw some examples, but when I wrote them in my code, it returns error. Here's the code (Win32, directX, c++):
#include <Windows.h>
#include <WindowsX.h>
#include <d3d9.h>
#include "D:\\Program Files\\Microsoft DirectX SDK (June 2010)\\Include\\d3dx9.h"
//I don't know why, but when I put #include <d3dx9.h> it doesn't work
#pragma comment(lib,"d3d9.lib")
LPDIRECT3D9 d3d;
LPDIRECT3DDEVICE9 d3ddev;
void initD3D(HWND hWnd);
void render_frame(void);
void cleanD3D(void);
int screenW,screenH;
//////////////////?????????
///////////////////////////
///////////////////////////
//I tried to add this, but something doesn't work
//Everything works fine, except this
RECT lineRect;
ID3DXFont *pDefaultFont;
D3DCOLOR defaultFontColor;
lineRect.left=0; //Error: this declaration has no storage class or type specifier
////////////////?????????
/////////////////////////
/////////////////////////
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
HWND hWnd;
WNDCLASSEX wc;
ZeroMemory(&wc,sizeof(WNDCLASSEX));
wc.cbSize=sizeof(WNDCLASSEX);
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=WindowProc;
wc.hInstance=hInstance;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;
wc.lpszClassName=L"WindowClass";
RegisterClassEx(&wc);
screenW=GetSystemMetrics(SM_CXSCREEN);
screenH=GetSystemMetrics(SM_CYSCREEN);
hWnd=CreateWindowEx(NULL,
L"WindowClass",
L"Out first dirext3D program",
WS_OVERLAPPEDWINDOW,
screenW/4,screenH/4,
screenW/2,screenH/2,
NULL,NULL,
hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
initD3D(hWnd);
MSG msg;
while(TRUE){
while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if(msg.message==WM_QUIT)
break;
render_frame();
}
cleanD3D();
return msg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam){
switch(message){
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
break;
}
return DefWindowProc(hWnd,message,wParam,lParam);
}
void initD3D(HWND hWnd){
d3d=Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed=TRUE;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow=hWnd;
d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&d3ddev);
}
void render_frame(void){
d3ddev->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,40,100),1.0f,0);
d3ddev->BeginScene();
d3ddev->EndScene();
d3ddev->Present(NULL,NULL,NULL,NULL);
}
void cleanD3D(void){
d3ddev->Release();
d3d->Release();
}
Thanks a lot!