AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassendesign für Multi-Render Engine

Ein Thema von Zacherl · begonnen am 18. Dez 2013 · letzter Beitrag vom 19. Dez 2013
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Klassendesign für Multi-Render Engine

  Alt 18. Dez 2013, 19:27
Hallo zusammen,

ich bin momentan dabei eine Engine zu schreiben, mit der man diverse visuelle Komponenten rendern kann. Hierbei würde ich gerne sowohl verschiedene DirectX Frameworks (9, 10, 11), als auch OpenGL und evtl. GDI(+) unterstützen.

Nun stehe ich allerdings etwas auf dem Schlauch, was die Konzeption meiner Klassen angeht. Zuerst einmal: Jede Komponente soll sich selbst rendern; es gibt also momentan eine Methode "Paint", die immer dann aufgerufen wird, wenn die Komponente neu gezeichnet werden muss.

Jetzt habe ich mir verschiedene Lösungswege überlegt:
  1. Abstrakte Render Klasse, die Funktionen wie z.b. DrawRect, FillRect, etc. zur Verfügung stellt.
    • Dies wäre eine universelle Lösung, die allerdings den Nachteil hat, dass ich in der Darstellung der Komponente sehr eingeschränkt werde. Ich könnte beispielsweise keine DirectX11 sepzifischen Effekte aufrufen, ohne zusätzlich die abstrakte Render Klasse um entsprechende Funktionen zu erweitern (die dann für alle anderen Frameworks sinnlos wären).
  2. Seperate Paint Methode für jedes unterstüzte Render Framework.
    • Hier kann ich mit maximaler Flexibilität (für das jeweilige Framework spezifisch) zeichnen, müsste aber die Zeichenroutinen doppelt und dreifach implementieren.

Hinzu kommen noch weitere Besonderheiten z.b. muss ich bei DX9 auf OnDeviceLost und OnDeviceReset reagieren.

Hat jemand vielleicht noch eine Idee, die mir bisher nicht gekommen ist. Oder welche der Lösungen würdet ihr implementieren?

Viele Grüße
Zacherl
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz