Du bist nicht angemeldet.

Werbeanzeige

11

02.01.2015, 22:22

Das ist richtig, aber bisher habe ich das so organisiert, dass alle Ressourcen erst deklariert werden, aber noch nicht geladen sind. Wird eine Ressource geladen, holt man sich vom Manager die Referenz, und lädt sie dann via einer Methode load(). Dadurch wird auch der Ressource-Manager benachrichtigt. D.h. aber, dass das Material diese Referenz von dem Manager braucht, wofür es den Resource-Manager braucht.

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

02.01.2015, 22:28

Vergiss, dass es "friend" gibt. Wann immer Du meinst, dass Du's brauchst, liegst Du falsch. Du erzeugst da nur eine unnötige Abhängigkeit, die am Ende sogar im Kreis verläuft. Viele Design-Fehler lassen sich schon vermeiden, indem man Zyklen vermeidet.
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]

13

02.01.2015, 22:33

Das heißt, ich sollte entweder öffentliche Getter machen, oder die Manager weitergeben. Da stimme ich für die Getter.

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

02.01.2015, 22:46

Wie genau löst das die zyklische Abhängigkeit? Sorry, aber ich blicke gerade nicht, was Du da jetzt genau bauen willst.
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]

15

02.01.2015, 22:49

Ich wollte eigentlich nur wissen, ob ich die ShaderManager und TextureManager - Zeiger jetzt auch an die Materialien weiterleiten soll, oder ob ich sie via Getter beim Material Manager exponieren sollte. Wo jetzt Zyklen sind, weiß ich gerade auch nicht. ?(

dot

Supermoderator

Beiträge: 9 850

Wohnort: Graz

  • Private Nachricht senden

16

02.01.2015, 22:53

Mir ist nicht ganz klar, wieso das Material nicht einfach Referenzen auf die fertig geladenen Ressourcen bekommen kann...

BlueCobold

Community-Fossil

Beiträge: 10 890

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

02.01.2015, 23:06

Mir auch nicht. Materials sollten überhaupt nicht wissen, dass es einen Manager für sie gibt. Genau da wäre dann auch der Zyklus: MaterialManager kennt Materialen und Materialen wissen, dass es einen MaterialManager gibt. Das ist Unsinn. Ein Material braucht auch keine anderen Manager zu kennen, denn es bekommt im Konstruktor genau die Dinge übergeben, die es braucht. Es braucht keine Manager, es braucht offenbar Texturen und Shader.
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]

18

02.01.2015, 23:11

Du wendest hier ein Konzept(lazy initialization) an, dass du gar nicht brauchst und das wäre dann ein schönes Beispiel für Overengineering.
Außer du hast uns den Grund bisher Vorenthalten.

Zitat von »Chad Fowlder«

Leider hat die Software-Branche viele flache Spezialisten hervorgebracht, die die Bezeichnung Spezialist nur als Entschuldigung dafür verwenden, nur eine Sache zu kennen.

19

02.01.2015, 23:12

Das mit den fertig geladenen Referenzen wäre an sich möglich, aber jede Ressource, auch Materialien können geladen und gelöscht werden, ohne dass ihre eigentlich Instanz gelöscht wird via load() oder unload(). Ein Material lädt sich dann selbst aus einer Datei und setzt seinen internen Status auf "Geladen". Während es sich also lädt, muss es Zugriff auf die beiden anderen Manager bekommen, um die entsprechenden Sahder / Texturen zu laden.

20

02.01.2015, 23:15

aber jede Ressource, auch Materialien können geladen und gelöscht werden, ohne dass ihre eigentlich Instanz gelöscht wird

Das klingt erstmal ziemlich komisch. Lädst du die Ressourcen asynchron?

Zitat von »Chad Fowlder«

Leider hat die Software-Branche viele flache Spezialisten hervorgebracht, die die Bezeichnung Spezialist nur als Entschuldigung dafür verwenden, nur eine Sache zu kennen.

Werbeanzeige