Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 60.

Werbeanzeige

28.02.2010, 23:10

Forenbeitrag von: »revan«

Vollbildmodus

Oh nein, ich bin so eine Niete! Ich hatte in meinem Code stehen: CDS_FULLSCREEN = 0x00000001 aber dieser Wert entspricht CDS_UPDATEREGISTRY.. Ich fasse es nicht! Danke fürs Aufmerksam machen!! Jetzt mache ich den Vollbildmodus natürlich mit der Funktion ChangeDisplaySettings!

28.02.2010, 22:53

Forenbeitrag von: »revan«

Vollbildmodus

WTF? Ich glaube ich mache echt was falsch.. Könntest du vl. den Code, mit dem du die Auflösung änderst, posten?

28.02.2010, 21:30

Forenbeitrag von: »revan«

Vollbildmodus

Also ich glaube nicht, dass irgendein Spiel ChangeDisplaySettings verwendet.. Aber probier es selber mal aus: Schiebe Icons auf deinem Desktop ganz nach rechts, ändere die Auflösung auf einen kleineren Wert und wieder zurück: Die Icons sind total verschoben.. Die meisten Spiele benutzen zum Ändern der Auflösung DirectX oder OpenGL vermute ich..

28.02.2010, 20:44

Forenbeitrag von: »revan«

Vollbildmodus

Ich habe es mal ausporbiert: Meine Auflösung ist 1920x1200. In einem C# Programm ändere ich per ChangeDisplaySettings die Auflösung auf 1024x768. Beim Beenden dieses Programmes stelle ich wieder per ChangeDisplaySettings die Auflösung zurück auf 1920x1200. Ergebnis: Alle Icons auf dem Desktop sind verschoben. Ich benutze übrigens Windows 7, aber ich glaube das ist unerheblich.. Und ja, ich habe mit meinem geposteten Code Probleme mit der Interoperabilität.. Weisst du vielleicht eine Lösung?

28.02.2010, 17:17

Forenbeitrag von: »revan«

Vollbildmodus

Das wäre leider ein unglaublicher Aufwand.. Mir würde es besser gefallen, Direct3D für diesen Zweck zu missbrauchen.. Zumal ich DirectX sowieso schon verwende (DirectSound) Meine Umsetzung aus dem 1.Post funktioniert aber nicht. Hat jemand eine Idee woran das liegen könnte?

28.02.2010, 16:12

Forenbeitrag von: »revan«

Vollbildmodus

Aber wenn per DirectX die Auflösung geändert wird, und das Programm abstürzt wird die normale Auflösung wiederhergestellt. Das mit dem Abstürzen ist ja noch abzusichern. Aber wenn man einfach so die Auflösung auf 1024x768 stellt und danach wieder auf einen höheren Wert, sind die Symbole auf dem Desktop völlig anders angeordnet.. Das möchte ich keinem User antun..

28.02.2010, 16:05

Forenbeitrag von: »revan«

Vollbildmodus

Zerhaut es einem nicht den ganzen Desktop (Icons an anderen Positionen etc), wenn man mit ChangeDisplaySettings die Auflösung ändert? Und sie wird nicht automatisch zurückgeändert, wenn das Programm abstürzt oder?

28.02.2010, 15:37

Forenbeitrag von: »revan«

Vollbildmodus

Danke für die Antwort. Das Fenster ist bereits randlos und fix auf die Größe 1024x768 eingestellt. Daher muss man für einen Vollbildmodus auf jeden Fall die Auflösung ändern.. Damit entspricht das wieder dem "gängigen Vorschlag" von dem ich gesprochen habe.. Was gäbe es sonst noch für Möglichkeiten?

28.02.2010, 15:11

Forenbeitrag von: »revan«

Vollbildmodus

Hallo, mein Spiel ist in C# programmiert. Es ist 2D und benutzt zur Grafikausgabe Funktionen aus System.Drawing (GDI+). Wie kann ich am besten einen Vollbildmodus hinbekommen? Der gängige Vorschlag ist: Auflösung ändern, Taskleiste ausblenden, Programm in den Vordergrund Aber das kommt mir nicht ideal vor.. Gibts da andere Möglichkeiten? Ich habe schon probiert ein Direct3D Device zu erstellen, welches nur die Auflösung ändert und somit den Vollbildmodus ermöglicht.. Aber dann werden sachen, die...

25.10.2008, 16:40

Forenbeitrag von: »revan«

IsWindowActive im Spiel

Ok, das war mir neu, dass es Lost Device auch im Fenstermodus gibt. So oder so ist das aber nicht die Lösung, denn selbst wenn mein Fenster im Hintergrund ist (z.b. hinter Taskmanager / Word) gibt TestCooperativeLevel D3D_OK zurück. Das ist ja auch gut so, denn es funktioniert ja alles. Ich möchte aber, dass das Spiel pausiert wird, wenn das Fenster nicht im Hintergrund ist. Nur wie ermittle ich am besten, ob mein Fenster das ist, welches vom Benutzer gerade benutzt wird? Mit der WM_ACTIVATE geh...

24.10.2008, 15:29

Forenbeitrag von: »revan«

IsWindowActive im Spiel

Nein, denn TestCooperativeLevel() == D3DERR_DEVICELOST kommt nur im Vollbildmodus vor. Im Fenstermodus gibts dat nicht...

24.10.2008, 15:06

Forenbeitrag von: »revan«

IsWindowActive im Spiel

Ja, es ist eine. Den Code, den du geposted hast, habe ich bisher auch verwendet. Leider stimmt der Status auf diese Weise manchmal nicht..

24.10.2008, 14:23

Forenbeitrag von: »revan«

IsWindowActive im Spiel

Hallo, um zu prüfen, ob mein Spiel (bzw. dessen Fenster) gerade aktiv ist, verwende ich folgende Funktion: C-/C++-Quelltext 1 bool IsActive() { return (GetForegroundWindow() == m_hWnd); } Aber dieser Status wird jeden Frame abgefragt. Die Alternative wäre, eine Variable zu haben, die bei jeder WM_ACTIVATE neu gesetzt wird. Manchmal wird aber die WM_ACTIVATE nicht richtig empfangen: z.b. wenn man das Fenster per doppel-mausklick in der Taskleiste minimiert, maximiert und wieder minimiert wird.. I...

17.10.2008, 13:52

Forenbeitrag von: »revan«

D3DX Funktionen

Hallo, in vielen Foren wird abgeraten, zuviele D3DX Funktionen zu verwenden und stattdessen eigene Routinen zu programmieren. Warum sollte man diese Funktionen nicht benutzen? Ich habe bisher keinen Nachteil feststellen können... MfG, Max

14.10.2008, 18:34

Forenbeitrag von: »revan«

Mauszeiger anzeigen

Wenn ich DISCL_NONEXCLUSIVE angebe, wird der Cursor angezeigt. Aber kann man einen Cursor auch mit DISCL_EXCLUSIVE benutzen, oder ist das grundsätzlich nicht möglich? Welche Vor- bzw. Nachteile haben eigentlich DISCL_EXCLUSIVE / DISCL_NONEXCLUSIVE für die Maus? In der Doku von MS steht dazu nichts genaueres.. Kann es sein, dass DISCL_EXCLUSIVE die einzige Auswirkung hat, dass absolut kein Mauszeiger angezeigt wird??

14.10.2008, 17:19

Forenbeitrag von: »revan«

Mauszeiger anzeigen

Die Funktionen geben alle D3D_OK zurück ...

14.10.2008, 17:04

Forenbeitrag von: »revan«

Mauszeiger anzeigen

Hallo, ich versuche einen eigenen Mauszeiger anzuzeigen: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 // Initialisieren: if (dev->CreateOffscreenPlainSurface(32, 32, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &m_pSurface, NULL) != D3D_OK) return false; if (D3DXLoadSurfaceFromFile(m_pSurface, NULL, NULL, m_pszFile, NULL, D3DX_FILTER_NONE, 0, NULL) != D3D_OK) return false; if (dev->SetCursorProperties(m_xHotSpot, m_yHotSpot, m_pSurface) != D3D_OK) return false; dev->ShowCursor(true); // Beim Rendern: dev->SetCursorP...

11.10.2008, 15:26

Forenbeitrag von: »revan«

Screenshots machen

Ok, das Problem ist gelöst Man muss die Surface erst nach XRGB mit D3DXLoadSurfaceFromSurface konvertieren, dann kann sie mit D3DXSaveSurfaceToFile in ein png gespeichert werden. Das ganze ist ein Bug im DX SDK, der seit April 06 besteht und noch nicht behoben worden ist.

11.10.2008, 14:34

Forenbeitrag von: »revan«

Screenshots machen

Wenn man die PNG Datei mit dem DX Texture Tool öffnet und mit "Format" / "Change Surface format" das Format von ARGB auf XRGB ändert, ist der Screenshot sichtbar. Es scheint also, als ob D3DXSaveSurfaceToFile den Alpha-Channel nicht richtig speichert. Ich habe per google herausgefunden, dass dieses Problem seit dem DX SDK April 2006 besteht und wie es scheint immer noch nicht behoben wurde: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=389823&SiteID=1 Aber wie kann ich das Problem nun um...

11.10.2008, 14:05

Forenbeitrag von: »revan«

Screenshots machen

Ich habe jetzt mal durchgetestet: Es funktionieren folgende Formate: BMP, DDS, DIB, HDR, JPG, PFM und TGA. Bei PPM wird mir ausgegeben, dass es nicht funktioniert hat - Das ist OK, denn laut der Beschrreibung der Funktion D3DXSaveSurfaceToFile geht dieses Format sowieso nicht. Somit funktionieren also alle Formate bis auf png... Woran könnte das nur liegen?

Werbeanzeige