MFC-Dialoge

Ist deine Frage von technischer Natur, dann poste sie bitte in diesen Bereich
trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Samstag 12. April 2014, 17:22

Das ist natürlich ein triftiger Grund! Dann werde ich mir VS2008 installieren. Hat jemand eine Meinung zum Thema Views neu machen mit SFML?

Benutzeravatar
rainer
Vizeadmiral
Vizeadmiral
Beiträge: 2897
Registriert: Mittwoch 12. September 2007, 10:57

Re: MFC-Dialoge

Beitrag von rainer » Samstag 12. April 2014, 19:51

SFML...verstehe ja von dem anderen auch nichts :lol:

Wenn's funktioniert :) und wenn Puste nichts dagegen hat (falls Malle oder sonst wer zu ihm durchkam....ansonsten entscheiden wir das halt selbst :roll: )

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Samstag 12. April 2014, 22:17

Was den Aufbau unsres Gui-Frameworks betrifft hab ich leider auch keine Ahnung.
Ich könnte dir höchstens mal nen Branch machen zum rumwerken. Das muss dann Puste entscheiden.
Und wenn was mit VS ohne Warnungen kompiliert dann hat das, naja, nicht unbedingt allzuviel zu bedeuten, da es ein schlechter Kompiler ist.

trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Sonntag 13. April 2014, 13:36

Mit dem Branch wäre ich sehr zufrieden. Ansonsten arbeite ich erstmal nur lokal.
Und wenn was mit VS ohne Warnungen kompiliert dann hat das, naja, nicht unbedingt allzuviel zu bedeuten, da es ein schlechter Kompiler ist.
Na, das war jetzt aber nicht gerade eine qualifizierende Aussage :-). Ich habe den Code kompiliert und startbar bekommen, das hat soweit geklappt. Nur beim Beenden hatte ich ein paar Debug-Asserts wegen fehlerhafter Speicherverwaltung.

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Sonntag 13. April 2014, 15:29

trommlbomml2 hat geschrieben:fehlerhafter Speicherverwaltung.
Sowas ist leider inakzeptabel. Da haben wir schon genug Probleme mit. (Das mein ich u.A. damit dass es nicht viel zu bedeuten hat wenn was kompilierbar ist...)

trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Sonntag 13. April 2014, 17:17

Ich glaube nicht dass das an der compilerversion liegt sondern am selbstgeschriebenen code. Das könnte ich mir auch mal anschauen. Aber wie gesagt 2008 ist schon OK.

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: MFC-Dialoge

Beitrag von Malle » Dienstag 15. April 2014, 20:22

puste hat zurückgemailt:
Sir Pustekuchen hat geschrieben:1: Für jede GUI gibt es eine eigene Klasse, welche von CView abgeleitet ist. Diese Klassen sind alle bei der CMainFrame (komplettes Fenster) registriert. Es wird abhängig von einer bestimmten View immer eine Klasse sichtbar geschaltet. Darum kümmert sich die CMultiSplitterView Klasse, welcher verschiedene Views zugeordnet werden. Wenn ich die Frage also richtig verstehe, handelt es sich immer noch um das gleiche Hauptfenster, die einzelnen Views sind aber unterschiedlich. Man kann sich das am besten mit Tabs im Browser vorstellen. Es gibt ein Browserfenster (MainFrame) und viele einzelne Seiten (CViews), welche man einzeln in den Vordergrund holt.

2: Die Positionen sind immer gleich. Wir haben keine Animationen drin, so dass ein Planet oder ein Schiff z.B. von links nach rechts wandert. Von daher sollte es sich immer um feste Postionen handeln.

trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Mittwoch 16. April 2014, 06:59

Sehr gut, dann habe ich das ja richtig verstanden. Genau das, was ich wissen wollte.

Dann sollte ich mal schleunigst zusehen, eine Lösung vorschlagen zu können.

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Mittwoch 16. April 2014, 21:01

Ich hab einen neuen branch planet_animation für dich gepusht. Um ihn zu verwenden dürfte das hier funktionieren
http://stackoverflow.com/questions/1783 ... ote-branch

Du könntest aber auch ein pull request verwenden.

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Donnerstag 17. April 2014, 21:48

trommlbomml2:
Warte mal noch, bevor du VS2008 installierst usw. Es könnte sein, dass wir bald auch mit 2010+ erstellen können (siehe http://www.forum.birth-of-the-empires.d ... 820#p33820)
Falls ich danach ne Bestätigung von dir kriege, dass es tatsächlich auch mit 2012 oder so geht, wär das besonders toll.

trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Freitag 18. April 2014, 16:31

Das kann ich dann ja einfach ausprobieren ;).

Ansonsten habe ich mir mal etwas genauer angeschaut, wie man diese Technik in BotE einbauen kann und muss sagen es ist gar nicht so einfach wie gedacht:

Es werden am Anfang des Spiels alle Views instanziiert und in einer std::map nach Id gespeichert und entsprechend nach Spielzustand ausgetauscht. Auf jeden Fall eine gute Idee, soweit ich MFC verstanden habe. Problem dabei ist, dass das Rendering mit SFML so angedacht war, dass für alle aktiven Views das Custom-Rendering mit SFML angestoßen wird, falls sie dieses implementieren. Dazu müsste der View aber wissen, ob er gerade aktiv ist. Soweit ich das sehe, ist das so direkt nicht herauszufinden, weil ein View einfach ab und zu neu gezeichnet wird. Idealerweise stelle ich mir das so vor, vielleicht könnt ihr mir ein bisschen helfen:

1) Jeder View, der mit SFML rendern soll (wäre jetzt erstmal nur der PlanetBottomView) implementiert OnCustomRender(), welches man in einer Basisklasse aller Views unterbringt.
2) Der HauptDialog startet einen Timer, der 30 mal pro Sekunde einen Handler aufruft, bei dem bei allen aktiven Views OnCustomRender() aufgerufen.

Soweit denke ich kein Problem zu implementieren, nur baue ich da ziemlich an den Eingeweiden von BotE rum und soweit ich das verstanden habe, kennt sich hier auch keiner weiter doll aus. Trotzdem wäre eure Meinung hilfreich.

Frohe Ostern übrigens :D

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Freitag 18. April 2014, 20:04

Hört sich so an, als könnte man jedem view einen boolmember geben, der true/false geschaltet wird and der Stelle wo die views umgeschaltet werden ? Dann weiß ein view ob er aktiv ist.

trommlbomml2
Kadett
Kadett
Beiträge: 13
Registriert: Montag 31. März 2014, 06:32

Re: MFC-Dialoge

Beitrag von trommlbomml2 » Samstag 19. April 2014, 15:45

Genau. Aber um das Konzept nicht zu brechen, sollte jeder View einfach wissen, wenn er Zeichnen soll, in dem er eine extra Methode aufruft. MFC entscheidet ja auch, wann OnDraw() aufgerufen wird. Ich versuche mich mal daran, da ich einen Branch habe, ist das ganze kein Problem. an den Branch müsste ich doch auch mit clone und dann checkout branchname hinkommen...

Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: MFC-Dialoge

Beitrag von Anonymissimus » Samstag 19. April 2014, 20:59

Ja.
Allerdings weise ich mal auf commit dfae1b4c63931ae4b993bf2202cb40d3836e377a hin, welches BotE kompilierbar machen sollte mit VS2010+. Besser ein eigenes pull request erstellen.

Benutzeravatar
CBot
Supporting Programmer
Supporting Programmer
Beiträge: 54
Registriert: Dienstag 29. August 2006, 14:01

Re: MFC-Dialoge

Beitrag von CBot » Dienstag 22. April 2014, 05:16

Ich hab vor recht langer Zeit in einem anderen Projekt mal OpenGL in MFC-Views erfolgreich eingebettet. Falls das irgendwie weiterhilft, koennte ich das mal herauskramen. Meine sehr dunkle Erinnerung sagt mir, dass es da eine Schwierigkeit mit BotE gab, sonst haetten wir das wahrscheinlich schon integriert (Animationen und 3D waren damals schon erwuenscht), ich weiss allerdings nicht mehr, was genau das war. Aber vielleicht taeusche ich mich da auch.

Ich hatte auch mal einen DirectX-basierten Prototypen begonnen. Allerdings haette der umfangreichere Rewrites erfordert; damit war das Projekt eigentlich von vornherein doomed.
Zuletzt geändert von CBot am Dienstag 22. April 2014, 08:34, insgesamt 1-mal geändert.
I wish I could read my mind.

Antworten

Zurück zu „technical questions“