dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

man netaisaas fullscreens

 
dev.gamez.lv Forum Index -> Microsoft DirectX
View previous topic :: View next topic  
Author Message
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Fri Jul 08, 2005 11:44 am    Post subject: man netaisaas fullscreens

paraleeli 2speelju taisiisanai tikko pasaaku arii direct3d maaciities un savu "dzini" prieksdienaam rakstiit. bet piedziivojumi saakas jau pie d3d inicializaacijas, t.i. windowed veidaa man uztaisa aplikaaciju, bet fullscreenaa nee.
varbuut kaads var izbraukt cauri sources fragmentam kas atbild par d3d pielaissanu un pateikt kas pa lietu un kur ir kluuda??
Code:
void crate_device (char* title, int width, int height, int pos_x, int pos_y, bool fullscr)
   {

      wc.cbSize = sizeof(WNDCLASSEX);           // WNDCLASSEX struktuuras izmeers
      wc.style = CS_HREDRAW | CS_VREDRAW;       // loga stils
      wc.lpfnWndProc = MsgProc;                 // "procedulaaraas funkcijas" :D nosaukums
      wc.cbClsExtra = 0;                        // extra klases infa
      wc.cbWndExtra = 0;                        // extra loga infa
      wc.hInstance = GetModuleHandle(NULL);     // aplikaacijas vadiiba, vai kkas...
      wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);// loga ikona
      wc.hCursor = LoadCursor(NULL, IDC_ARROW); // peles kursors
      wc.hbrBackground = NULL;                  // fona kraasa
      wc.lpszMenuName = NULL;                   // izveelne(menu)
      wc.lpszClassName = "eee";            // loga klases nosaukums
      wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);// minimizeetaa loga ikona
             RegisterClassEx( &wc );

     // taisaam aplikaacijas logu
     hWnd = CreateWindow( "eee", title,
                               WS_OVERLAPPEDWINDOW, pos_x, pos_y, width, height,
                               GetDesktopWindow(), NULL, wc.hInstance, NULL );

    // initializeejam direct3d
     if(!(D3D_dev = Direct3DCreate9(D3D_SDK_VERSION))) MessageBox(NULL, "failed to init. d3d", "eeerr", MB_OK);
    // ieguust displeja modi (wtf?)
     if(FAILED(D3D_dev->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &display_mode))) MessageBox(NULL, "error setting the display mode", "eeerr", MB_OK);
    // paarbauda vai dzelzji ir iistie
     if(FAILED(D3D_dev->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &D3D_caps)))  MessageBox(NULL, "failed to init. d3d - problems with hardware capabilities", "eeerr", MB_OK);

       ZeroMemory( &p_parameters, sizeof(p_parameters) );

        p_parameters.SwapEffect = D3DSWAPEFFECT_DISCARD;
        p_parameters.BackBufferCount = 1;           
        p_parameters.BackBufferFormat = D3DFMT_UNKNOWN;
        p_parameters.EnableAutoDepthStencil = TRUE;
        p_parameters.AutoDepthStencilFormat = D3DFMT_D16;
      if(fullscr)
      {
        p_parameters.Windowed = FALSE;               // loga mode: fullscreens
        p_parameters.BackBufferWidth = width;        // ekraana platums (px)
        p_parameters.BackBufferHeight = height;      // ekraana augstums (px)
      }
       else p_parameters.Windowed = TRUE;                 // loga mode: nav fullscreens, jeb windoweec

     // paarbaudaam kaadu vetexu processingu var lietot
      DWORD v_processing = 0;
       if(D3D_caps.VertexProcessingCaps != 0) v_processing |= D3DCREATE_HARDWARE_VERTEXPROCESSING;   else v_processing |= D3DCREATE_SOFTWARE_VERTEXPROCESSING;

    // taisam d3d "deviici"
     if(FAILED( D3D_dev->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                      v_processing, &p_parameters, &D3D_rend_dev)))               MessageBox(NULL, "failed to create device - make sure you have directX 9", "eeerr", MB_OK);

    // iesleedzam "dziljumbufferi"
    D3D_rend_dev->SetRenderState(D3DRS_ZENABLE, true);
     // iestataam muusu "defaulto cullmodi"
    D3D_rend_dev->SetRenderState(D3DRS_CULLMODE, 3);

    // paraadam logu
        ShowWindow( hWnd, SW_SHOWDEFAULT );
        UpdateWindow( hWnd );

}


un peecaak izsaucam shito funkciju...
Code:
crate_device("mana aplikaacija", 800, 600, 100, 100, true);


ja grib "windoweetu" (bool fullscr=false), viss straadaa, bet fullscreena gadiijumaa uzlec messidzbox "failed to create device - make sure you have directX 9"(11aa rindinja no apakssas) un citeeju debbugeri:
Quote:
First-chance exception in engine_test.exe: 0xC0000005: Access Violation.

nekaadu sintakses kluudu nav:
Quote:
--------------------Configuration: engine_test - Win32 Debug--------------------
Compiling...
engine_test.cpp
Linking...

engine_test.exe - 0 error(s), 0 warning(s)


kas pa lietu?? :/
Back to top
View user's profile Send e-mail
Guest






PostPosted: Fri Jul 08, 2005 11:55 am    Post subject:

Cienītais, kā gan var tev rasties FullScreen, ja tev ir dotas loga atrašanās koordinātes? Laughing
Labi, joks!
Paskaties, vai tev ir jaunākā FX 5200 sākot videokarte un vai tev ir DirectX 9.0c un jaunākie nVidias driveri 77.89.
Joks, atkal!

Reku kļūda!

if(FAILED( D3D_dev->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
v_processing, &p_parameters, &D3D_rend_dev))) MessageBox(NULL, "failed to create device - make sure you have directX 9", "eeerr", MB_OK);
Back to top
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Fri Jul 08, 2005 12:14 pm    Post subject:

es taa labu laiciju peetiiju taas tevis rakstiitaas koda rindinjas, konam', liidz iebraucu ka tas i tiessi tas pats ko es pats uzrakstiiju Very Happy varbuutaas buutu bijis labaak ja es to messidzboxu nebuutu licis - tad iztiktu tikai ar "access violation"
aizmirsu piemineet, ka magiskaa dzeltenaa bulinja, kas paraadiijaas liidz ar programmas palaissanu, noraadiija tiessi uz naakoshajaam koda rindinjaam, tb uz...
Code:
    // iesleedzam "dziljumbufferi"
    D3D_rend_dev->SetRenderState(D3DRS_ZENABLE, true);

..un taa bija vieta pie kuras programma apstaajaas.
Back to top
View user's profile Send e-mail
Guest






PostPosted: Fri Jul 08, 2005 12:38 pm    Post subject:

Nē, cienītais, tu to nerakstiji!
Tad tev bija jāparāda tā problēma, ka tā ir tieši tur, nevis jādod vesels kods + debug + jautājums. Varēji aprakstīt to problēmu izejot no šitā, ko rādiju. Un beigās tu saprastu pats, kur problēma. Cool
Back to top
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Fri Jul 08, 2005 1:14 pm    Post subject:

oke. kur apstaajaas programma, mineeju. kur man paraadiijaas messidzbox ka nevar uztaisiit d3d "deviici" mineeju.
es ar ssito saaku tiiri vai izmist - kodu saliidzinaaju gan ar dx9 sdk dotaa tuta kodu, gan ar "drunken heyna" tutoriaaliem. jaa, probleema ir pie if(FAILED( D3D_dev->CreateDevic...pamparam, bet kur tiessi???
1. ar D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL nekaadu probleemu nevajadzeetu buut - tie ir "typedefi", tikpat noteikti kaa "true" un "false"
2. hWnd, v_processing, p_parameters, D3D_rend_dev man ir globaali mainiigie
...vieniigi man bij doma ka ar hWnd kkas nav kaartiibaa, taapee jautaajums: vai CreateDevice funkcija prasa kautko no hWnd, kas buutu shai HWND klasei(?) privaats vai kkaads taads, ne publisks??? deel kaa vispaar rodaas "access violation" - deel taa ka censaas piekluut klases privaatajiem mainiigajiem??
(bet sviestainaakais ir tas ka bez taa fullscreena viss straadaa)
Back to top
View user's profile Send e-mail
gazz



Joined: 03 Jan 2004
Posts: 355
Location: Teika

PostPosted: Fri Jul 08, 2005 1:15 pm    Post subject:

kljuuda ir shajaa rindinjaa
Code:
p_parameters.BackBufferFormat = D3DFMT_UNKNOWN;


kad tu izveido logu tad tu nevari pats noteikt kraasu formaatu/dziljumu, jo tev ir jaapaljaujaas uz desktop uzstaadiijumiem un tapeec tu direct3d pasaki ka tu nezini kaads ir kraasu formaats ar D3DFMT_UNKNOWN. savukaart veidojot fullscreen tev ir direct3d jaapasaka ko tu veelies un jaapaarbauda D3DCAPS kaadas kraasu formaatus videokarte uztur. piemeeram aizstaajot sho rindinju ar
Code:
p_parameters.BackBufferFormat = D3DFMT_A8R8G8B8;
viss straadaaas un tiks izmantotas 32 bit kraasaas. papeeti par shitiem formaatiem tuvaak.
Back to top
View user's profile Send e-mail
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Fri Jul 08, 2005 1:16 pm    Post subject:

oppaa...!!! liels plds, gazz Very Happy
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Microsoft DirectX All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group