| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| peterbub JLI'ler
 
 
 
 Anmeldedatum: 24.07.2005
 Beiträge: 109
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 15:09    Titel: ALT+TAB problem |   |  
				| 
 |  
				| Hallo , ich habe das gut ALT+ TAB Problem.
 ich hab folgenden code geschrieben,was fehlt mir denn noch:
 
  	  | Code: |  	  | while(msg.message != WM_QUIT)
 {
 //Windows message
 if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 else
 {
 if(pDevice.TestCooperativeLevel())
 {
 while(pDevice.TestCooperativeLevel() != 1)
 {  //hWnd
 while(PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 
 Sleep(100);
 }
 bWinActive = false;
 
 
 pDevice.Reset();
 m_lpGraphic->OnLostDevice();
 m_lpGraphic->OnResetDevice();
 pDevice.Restore(); // alle texturen laden
 }
 
 Render();
 
 }
 }
 
 
 | 
 
 kann mir jemand helfen ??
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Fallen JLI MVP
 
  
  
 Alter: 41
 Anmeldedatum: 08.03.2003
 Beiträge: 2860
 Wohnort: Münster
 Medaillen: 1 (mehr...)
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 15:18    Titel: |   |  
				| 
 |  
				| Was passiert denn wenn du alt+tab betätigst? 
 Helfen können wir dir schon wenn genügend Infos vorliegen
  _________________
 "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 15:32    Titel: |   |  
				| 
 |  
				| Die Schelife ist voll komisch, erklär mir die mal bitte.Eignetlihc brauchste doch nur eine ganz normale Mainloop und in die eine Abfrage OnReset oder was weiß ich was, wo du alles wiederherstellst. _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| abc_d JLI Master Trainee
 
  
 Alter: 35
 Anmeldedatum: 27.01.2003
 Beiträge: 615
 
 Medaillen: Keine
 
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| peterbub JLI'ler
 
 
 
 Anmeldedatum: 24.07.2005
 Beiträge: 109
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 16:12    Titel: |   |  
				| 
 |  
				| -stimmt den die reihen folge bei mir ? 
 - an welcher stelle soll ich die Objekt reseten oder loschen?
 
 - was meinst du mit DX-Beispiele wo finde ich sie ?
 
 
   
 danke
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| GreveN JLI Master
 
  
 Alter: 38
 Anmeldedatum: 08.01.2004
 Beiträge: 901
 Wohnort: Sachsen - Dresden
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 16:20    Titel: |   |  
				| 
 |  
				| Ein Reset funktioniert wohl nicht immer bzw. mit allen Ressourcen, weshalb Löschen und Neuinitialisieren wohl die bessere Möglichkeit ist. Ich teste immer direkt am Anfang der Mainloop, ob meine Ressourcen nocht gültig sind und führe dann gegebenenfalls den Reset durch. 
 BLOD meinte sicher die Samples im DX-SDK.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| peterbub JLI'ler
 
 
 
 Anmeldedatum: 24.07.2005
 Beiträge: 109
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 17:02    Titel: |   |  
				| 
 |  
				| ich muss zugeben ich habe nur ein paar wenige aus dx-sdk gesehen ,die fullscreen benutzen und diese benutzen DXUT. 
 das kann ich für mich nicht einbauen.
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| peterbub JLI'ler
 
 
 
 Anmeldedatum: 24.07.2005
 Beiträge: 109
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.09.2006, 19:13    Titel: |   |  
				| 
 |  
				| hier nochmal der gesamte code,allerdings vereinfacht. 
 ich weiss nicht was ich da falsch mache aber  ALT+TAB geht einfach nicht
 
 kann mir das jemand richtig stellen wäre echt toll
 
 
  	  | Code: |  	  | 
 while(msg.message != WM_QUIT)
 {
 if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 else
 {
 
 if(Direct3D.TestCooperativeLevel())
 {
 //while(pDXWin.CheckDevice())
 while(Direct3D.TestCooperativeLevel() != 1)
 {  //hWnd
 while(PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
 {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 
 Sleep(100);
 }
 
 
 lpSprite->OnLostDevice();
 
 Direct3D.Reset();// einfach nur in der Dx Classe m_lpD3DDevice->Reset(&PParams);
 
 lpSprite->OnResetDevice();
 
 
 
 }
 Direct3D.BeginScene();
 
 // Zeichnen des Sprites
 
 lpSprite->Begin(D3DXSPRITE_ALPHABLEND);
 
 // Mittelpunkt des Sprite
 D3DXVECTOR3 vCenter(32.0f, 32.0f, 0.0f);
 
 // Sprite an Position 100, 100 zeichnen
 D3DXVECTOR3 vPosition(100.0f, 100.0f, 0.0f);
 
 // Farben der Textur sollen nicht veraendert werden
 D3DCOLOR ModulateColor = 0xFFFFFFFF;
 
 // Sprite zeichnen
 lpSprite->Draw(lpSpriteTexture,
 NULL,
 &vCenter,
 &vPosition,
 ModulateColor);
 
 lpSprite->End();
 
 Direct3D.EndScene();
 }
 }
 
 
 | 
 
 wie wäre es denn richtig
 danke
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| peterbub JLI'ler
 
 
 
 Anmeldedatum: 24.07.2005
 Beiträge: 109
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 07.09.2006, 17:05    Titel: |   |  
				| 
 |  
				| ich habe festgestellt, das mein Reset nicht geht. 
 
  	  | Code: |  	  | ZeroMemory(&PParams,sizeof(PParams));
 
 PParams.BackBufferCount = 1;
 PParams.MultiSampleType = D3DMULTISAMPLE_NONE;
 PParams.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
 PParams.EnableAutoDepthStencil = TRUE;
 PParams.AutoDepthStencilFormat = D3DFMT_D16;
 
 
 PParams.SwapEffect       = D3DSWAPEFFECT_DISCARD;
 PParams.hDeviceWindow    = hWnd;
 PParams.Windowed         = bWindowed;
 
 PParams.BackBufferWidth  = SCR_WIDTH;
 PParams.BackBufferHeight = SCR_HEIGHT;
 PParams.BackBufferFormat = D3DFMT_X8R8G8B8;
 
 
 PParams.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
 
 HRESULT hr;
 
 // Direct3D-Gerät anlegen
 if(FAILED(hr = m_lpD3D->CreateDevice(
 D3DADAPTER_DEFAULT,
 D3DDEVTYPE_HAL,
 hWnd,
 D3DCREATE_SOFTWARE_VERTEXPROCESSING,
 &PParams,
 &m_lpD3DDevice)))
 {
 // Fehler, Gerät kann nicht angelegt werden
 const char* Err = DXGetErrorDescription9(hr);
 
 DXTRACE_MSG(Err);
 
 return FALSE;
 }
 
 | 
 
 und wenn ich das resette mit
 
 
  	  | Code: |  	  | if(FAILED(m_lpD3DDevice->Reset(&PParams)))
 return FALSE;
 
 return true;
 
 | 
 
 bekomme ich false zurück ?
 
 was mach ich denn falsch
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |