sevko

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

100 Neutral

About sevko

  • Rank
    Newbie
  1. Hi. I'm making a minesweeper programme using directx with WinApi to draw the tiles. I've noticed that when i resize the window the sprites resize with it automaticly. So the problem I have is when the difficulty is changed the window size changes accordingly. And after I change the window size it looks like this: [url="http://shrani.najdi.si/?1j/J5/2CGYvzSA/directxhalfsize.jpg"]http://shrani.najdi....ctxhalfsize.jpg[/url] This makes sense because of the auto resize with the window resize so I decided I would just reinitialise DirectX so that the changed handle would be used to create the new D3D device. But when i reinitialise it it renders this: [url="http://shrani.najdi.si/?2m/t3/3eZqOnhn/diectxreinitialise.jpg"]http://shrani.najdi....einitialise.jpg[/url] Just a black screen. Nor the Render or Initialise directx function return any errors. How could I fix this? Render function [CODE] void Board::Render(){ RECT drawRect; HRESULT hr=gD3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,0),1.0f,0); if (FAILED(hr)){ return; } hr=gD3dDevice->BeginScene(); if (SUCCEEDED(hr)){ gSprite->Begin(D3DXSPRITE_ALPHABLEND); for (int i=0;i<Visina[NastavljenaTezavnost];i++) for (int j=0;j<Sirina[NastavljenaTezavnost];j++){ drawRect.left=Square[i][j].Open*30*Square[i][j].Type; drawRect.right=drawRect.left+29; drawRect.top=30*Square[i][j].Status; drawRect.bottom=drawRect.top+29; gSprite->Draw(gTexture,&drawRect,NULL,&Square[i][j].Pos,0xFFFFFFFF); } gSprite->End(); gD3dDevice->EndScene(); gD3dDevice->Present(NULL,NULL,NULL,NULL); } } [/CODE] Initialise Direct X function [CODE] bool InitialiseDirectX(HWND hWnd) { gD3dObject=Direct3DCreate9(D3D_SDK_VERSION); if (gD3dObject==NULL) return FALSE; D3DPRESENT_PARAMETERS presParams; ZeroMemory(&presParams,sizeof(presParams)); presParams.Windowed=TRUE; presParams.SwapEffect=D3DSWAPEFFECT_DISCARD; presParams.BackBufferFormat=D3DFMT_UNKNOWN; presParams.BackBufferCount=1; HRESULT hr=gD3dObject->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &presParams, &gD3dDevice); if (FAILED(hr)) { processing so fall back to software: hr=gD3dObject->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &presParams, &gD3dDevice); if (FAILED(hr)) return FALSE; } return TRUE; } [/CODE] Part of the function where I change the window size according to the difficulty [CODE] if(Square[WindowSizeY][WindowSizeX].Type == 10 && Square[WindowSizeY][WindowSizeX].Status!=1) if(MessageBox(g_hWnd, "Poraz", "LOOLOL", MB_OK)){ CreateBoard(); CreateInstances(); SetWindowPos(g_hWnd, HWND_TOP, 0, 0, (30*g_Board->Sirina[g_Board->NastavljenaTezavnost])+(2*SirinaRoba)+60, (30*g_Board->Visina[g_Board->NastavljenaTezavnost])+VisinaRoba+VisinaKapsna+120, SWP_NOMOVE | SWP_NOREPOSITION); SetWindowPos(g_hWnd_junior, HWND_TOP, 0, 0, (30*g_Board->Sirina[g_Board->NastavljenaTezavnost]), (30*g_Board->Visina[g_Board->NastavljenaTezavnost]), SWP_NOMOVE | SWP_NOREPOSITION); if (gD3dObject){ gD3dObject->Release(); gD3dObject = NULL; } if (gD3dDevice){ gD3dDevice->Release(); gD3dDevice = NULL; } InitialiseDirectX(g_hWnd_junior); }[/CODE]
  2. Hello everyone. I'm trying to make a minesweeper program using directx9 and to draw different squares i'm using sprites so i wouldn't need a different texture for different types of squares. I use the following code to render: [code] void Board::Render(){ RECT drawRect; drawRect.left=0; drawRect.right=29; drawRect.top=0; drawRect.bottom=29; HRESULT hr=gD3dDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,0),1.0f,0); if (FAILED(hr)) return; hr=gD3dDevice->BeginScene(); if (SUCCEEDED(hr)){ gSprite->Begin(D3DXSPRITE_ALPHABLEND); for (int i=0;i<Visina[NastavljenaTezavnost];i++) for (int j=0;j<Sirina[NastavljenaTezavnost];j++){ gSprite->Draw(gTexture,&drawRect,NULL,&Squares[i][j].Pos,0xFFFFFFFF); } gSprite->End(); gD3dDevice->EndScene(); gD3dDevice->Present(NULL,NULL,NULL,NULL); } } [/code] If I set the rects like in the example the unopened tiles render fine. But the problem steps in if I try to increment the left and right values(of the RECT) to draw the second one(increment them by 30). The texture that I'm using is tga format 390*30(30 pixels for each tile). Render from the code example: [img]http://www.shrani.si/f/3h/iI/yHht4jA/wtf.jpg[/img] If I try to render the second tile by setting drawRect.left to 30 and drawRect.right to 59 [img]http://www.shrani.si/f/3/lU/2SJHWez/wtf2.jpg[/img] What's the problem? Looking forward to your replies. I also attached the whole project but it's in the begining of development so it's not optimized and the code is horrible. [attachment=5951:Minolovec.zip]