Screen Resolution Problems

Posts 1–2 of 2 · Page 1 of 1
Screen Resolution Problems
Ok, I have two problems.
1. I place a sprite that is 1024*768 and it actually doesnt cover the entire screen. There is an excess and it gets cropped out. The image is 1024*768 as well.

2. How would I exactly change from the main menu to another sprite. Do I have to clear it before I change or something?


This is my code:
Code:
LPDIRECT3D9 d3d;
LPDIRECT3DDEVICE9 d3ddev;
D3DPRESENT_PARAMETERS d3dpp;
//Main Menu
LPD3DXSPRITE sprite;
LPDIRECT3DTEXTURE9 mainmenutex;
LPDIRECT3DTEXTURE9 battletex;

RECT rct;


void StartD3D(HWND hWnd)
{
    d3d = Direct3DCreate9(D3D_SDK_VERSION);

    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed =  FALSE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.hDeviceWindow = hWnd;
	d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
    d3dpp.BackBufferWidth = 1024; 
    d3dpp.BackBufferHeight = 768;
    d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&d3ddev);
	//MainMenu Stuff
	D3DXCreateSprite(d3ddev, &sprite);
	D3DXCreateTextureFromFile(d3ddev, L"Menu.jpg", &mainmenutex);
	D3DXCreateTextureFromFile(d3ddev, L"Battle.png", &battletex);

}

void BeginRender(void)
{
    d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255,255,255,255), 1.0f, 0);
    d3ddev->BeginScene();
	sprite->Begin(NULL);
}

void EndRender(void)
{
	sprite->End();
    d3ddev->EndScene();
    d3ddev->Present(NULL, NULL, NULL, NULL);
}

void StopD3D(void)
{
    d3ddev->Release();
    d3d->Release();
	sprite->Release();
}

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);
}

int MainMenu(void)
{
	rct.left=0;
rct.right=1024;
rct.top=0;
rct.bottom=768;
    sprite->Draw(mainmenutex, &rct, NULL,NULL, D3DCOLOR_XRGB(255, 255, 255));
	if(GetAsyncKeyState(VK_ESCAPE)&1)
	{return 0;}
	if(GetAsyncKeyState(VK_RETURN)&1)
	{return 1;}
	
}

void Game(void)
{
}


void GameLoop(void)
{
	BeginRender();
	/////////////
	if(MainMenu() == 0)
	{
		return;
	}
	else if(MainMenu() == 1)
	{
		d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255,255,255,255), 1.0f, 0);
		sprite->Draw(battletex, &rct, NULL,NULL, D3DCOLOR_XRGB(255, 255, 255));
	}

	////////////
	EndRender();
}
Basically, if MainMenu returns 0, that means they wanted to close the game, if it returns 1, then it means they want to play. Its not exactly working though.
for #2 dont you need to resprite? Theres a function to reset sprites in C++ section or the combat arms hack source code section.
Posts 1–2 of 2 · Page 1 of 1

Post a Reply

Tags for this Thread

None

Talk with us