Jump to content
  • Advertisement

sevko

Member
  • 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: http://shrani.najdi....ctxhalfsize.jpg 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: http://shrani.najdi....einitialise.jpg Just a black screen. Nor the Render or Initialise directx function return any errors. How could I fix this? Render function 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[j].Open*30*Square[j].Type; drawRect.right=drawRect.left+29; drawRect.top=30*Square[j].Status; drawRect.bottom=drawRect.top+29; gSprite->Draw(gTexture,&drawRect,NULL,&Square[j].Pos,0xFFFFFFFF); } gSprite->End(); gD3dDevice->EndScene(); gD3dDevice->Present(NULL,NULL,NULL,NULL); } } Initialise Direct X function 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; } Part of the function where I change the window size according to the difficulty 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); }
  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: 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[j].Pos,0xFFFFFFFF); } gSprite->End(); gD3dDevice->EndScene(); gD3dDevice->Present(NULL,NULL,NULL,NULL); } } 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: If I try to render the second tile by setting drawRect.left to 30 and drawRect.right to 59 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]
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!