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!

Werbeanzeige

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

11

15.02.2013, 11:04

Meine Struktur sieht so aus: RenderWindow, D3DClass, Game
Alle drei werden nacheinander in der main funktion initialisiert.
Dann wird in einer Endlosschleife immer game.Update() und game.Render() aufgerufen.
Ist vielleicht nicht die beste Lösung aber zur Zeit funktionierts.
@Dot: Weil ich die SwapChain in der game.Render() funktion brauche
@LukasBanana: Wie meinst du das? Dass isch den DeviceContext von der D3DClass trenne?
Hat sonst vieleicht noch jemand eine Idee wie ich meinen Code besser strukturieren kann?
Anscheinend ist meine Lösung ja nicht gerade die Beste :S
Der Error sitzt meistens vor dem Bildschirm! :D

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

12

15.02.2013, 11:16

@Dot: Weil ich die SwapChain in der game.Render() funktion brauche

Wofür?
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

13

15.02.2013, 11:19

C-/C++-Quelltext

1
d3d.getSwapChain()->Present(0, 0);
Der Error sitzt meistens vor dem Bildschirm! :D

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

14

15.02.2013, 11:21

Du gibst unwichtige Interna preis für einen einzigen Aufruf?
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

15.02.2013, 11:22

Und warum lässt Du das nicht die D3DClass erledigen und führst dafür eine Methode "Swap" oder "Present" ein? Eine ohne Parameter z.B. gleich?

Edit: Pah! NinjaCat.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

16

15.02.2013, 11:35

*facepalm*
Danke! Danke! Warum komm ich nicht selber auf sowas? :D
Der Error sitzt meistens vor dem Bildschirm! :D

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

17

15.02.2013, 11:41

@LukasBanana: Wie meinst du das? Dass isch den DeviceContext von der D3DClass trenne?

Ja, eine Klasse für den Grafik-Kontext und eine für das RenderSystem.
Aber wenn du bisher nur drei Klassen hast und dein Spiel offenbar nicht so groß ist, dann kannst du's auch so lassen.

Aber spätestens ab 10.000 Zeilen Code würde ich das in mehr als drei Klassen aufteilen ^^

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

18

15.02.2013, 11:47

Ok danke LukasBanana.
Werd ich mir merken aber zurzeit lass ichs mal so: If it ain't broke don't fix it :D
Der Error sitzt meistens vor dem Bildschirm! :D

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

19

15.02.2013, 11:50

Warum komm ich nicht selber auf sowas? :D

Ganz einfache Grundregel für Get-Methoden: Brauche ich konkrete Funktionalität (-> kein Getter!) oder brauche ich universellen Zugriff auf ein bestimmtes Objekt / alle Funktionalität eines bestimmten Objekts (-> Getter).

Hast du tatsächlich einen Getter-Fall identifiziert, so kann das weiterhin bedeuten, dass das über den Getter verfügbar gemachte Objekt in der umschließenden Klasse eigentlich fehl am Platz ist. Deshalb lohnt sich als abschließende Überlegung vor der Einführung eines Getters stets noch die Abwägung, ob das dort zurückgegebene Objekt nicht besser auf anderem Wege in den Zielkontext gelangen sollte: Grundsätzlich macht die direkte Übergabe als eigenes Objekt bestehende Abhängigkeiten in deinem Code immer wesentlich klarer als das Abfragen dieses Objekts aus einem anderen Objekt mittels Getter. Und werden Abhängigkeiten in deinem Code erst sichtbar, so werden sie in der Regel auch automatisch weniger, das heißt dein Code wird flexibler und weniger fehleranfällig.
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

Werbeanzeige