Die Suche ergab 81 Treffer

von Goderion
13.04.2017, 14:26
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: C++ - Organisation/Verwaltung von millionen Objekten
Antworten: 20
Zugriffe: 6578

Re: C++ - Organisation/Verwaltung von millionen Objekten

Joa, aber wie gesagt: verzögertes Erstellen/Löschen musste ich selbst in meinen Single-Threaded-Spielen schon einbauen. Habe aber wie gesagt vergessen, warum ich das tun musste. Mmmh... ich glaube ich habe da eine grobe Idee. Ich könnte ein System entwickeln, dass das von dir erwähnte verzögerte lö...
von Goderion
13.04.2017, 13:18
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: C++ - Organisation/Verwaltung von millionen Objekten
Antworten: 20
Zugriffe: 6578

Re: C++ - Organisation/Verwaltung von millionen Objekten

Ah, mich schon immer gefragt, wozu man einen "extra" Heap per HeapCreate erzeugen sollte, aber nie genauer geguckt was man damit eigentlich alles machen kann. Wegen dem sinnlosen benutzen vom vtable, was tut der Compiler da nur? wenn ich AddRef und Release mit __forceinline versehe, dann w...
von Goderion
13.04.2017, 12:29
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: C++ - Organisation/Verwaltung von millionen Objekten
Antworten: 20
Zugriffe: 6578

Re: C++ - Organisation/Verwaltung von millionen Objekten

Vielen Dank für die Antworten! Das wird man so pauschal nicht beantworten können. Das hängt sehr stark davon ab, wie du deine Welt organsierst und was da wann simuliert/aktualisiert wird. In der Regel wirst du ja nicht bei jedem Update über alle Objekte drüber rennen und die volle Latte an Physik/AI...
von Goderion
12.04.2017, 21:30
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: C++ - Organisation/Verwaltung von millionen Objekten
Antworten: 20
Zugriffe: 6578

Re: C++ - Organisation/Verwaltung von millionen Objekten

Was willst du denn multithreaded machen? Rendering dürfte kein Problem sein, das manipuliert/löscht ja keine Objekte. Gameplay? Physik? Im Mainthread werden die Daten beim Verarbeiten der GUI-Nachrichten genutzt. 1. Situation - Rendering: Die Welt wird gesperrt und es werden die nötigen Daten gesam...
von Goderion
12.04.2017, 19:51
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: C++ - Organisation/Verwaltung von millionen Objekten
Antworten: 20
Zugriffe: 6578

C++ - Organisation/Verwaltung von millionen Objekten

Hallo. Mein Projekt verfügt über ein Hauptobjekt Welt . Diese Welt hat eine oder mehrere Karten . In den Karten gibt es Objekte . Objekte können weitere Objekte beinhalten, z.B. wenn das Objekt ein Behälter (Kiste, Beutel, Truhe, usw.) ist. Die "Haupthierarchie" ist daher sehr einfach, wie...
von Goderion
10.04.2017, 13:56
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: inline - wann, wie und warum?
Antworten: 8
Zugriffe: 2206

Re: inline - wann, wie und warum?

Vielen Dank für die Antworten! Wir reden von C++, vermute ich. Jo, hab das C++ Icon gewählt, aber das reicht wohl nicht, ist auch ziemlich klein, werde "C++" zukünftig mit in den/die Titel packen. Ich arbeite allgemein so, dass ich dem Compiler erstmal vertraue, was inline angeht. Sprich: ...
von Goderion
10.04.2017, 12:31
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: inline - wann, wie und warum?
Antworten: 8
Zugriffe: 2206

inline - wann, wie und warum?

Hallo. Wann sollte man inline nutzen? Wann sollte man __forceinline (MVSC) nutzen? Zu meinem Verständnis: Eine inline-Funktion wird direkt dort, wo sie aufgerufen wird, hinkopiert/hincompiliert, als hätte man die dort geschrieben/programmiert. Das spart dann mindestens einen Funktionsaufruf/Instrukt...
von Goderion
08.04.2017, 12:44
Forum: Programmiersprachen, Quelltext und Bibliotheken
Thema: Pascal: Zeiger
Antworten: 14
Zugriffe: 4938

Re: Pascal: Zeiger

Ich bin irritiert. RedGuy, auf der einen Seite arbeitest Du an für mich krass kompliziert klingenden Sachen wie z.B. https://zfx.info/viewtopic.php?t=4123, auf der anderen Seite "scheinst" Du nicht die Funktionsweise von Zeigern verstanden zu haben. Wie Schrompf schon sagt, ein Zeiger zeig...
von Goderion
07.04.2017, 16:04
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Re: Objekttyp in C++ zur Laufzeit ermitteln

Der shared_ptr ist zu meiner Überraschung langsamer, liegt vielleicht daran, dass der shared_ptr auch einen "Weak-Counter" hat. Ich tippe auf thread sicherheit.Der std::shared_ptr ist thread sicher, das heißt mehrere threads können "zeitgleich" kopien erstellen und der reference...
von Goderion
07.04.2017, 01:37
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Re: Objekttyp in C++ zur Laufzeit ermitteln

Hast du globale Optimierungen (LTCG) aktiviert, so dass das Konstruktorverhalten bekannt ist? Visual C++ kapituliert oft vor Zeigern; wenn du es als lokale Variable erzeugst, funktioniert es aber manchmal. Vielen Dank für den Tip, habe LTCG mal aktiviert. Es läuft jetzt etwas schneller, aber der vt...
von Goderion
06.04.2017, 23:03
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Re: Objekttyp in C++ zur Laufzeit ermitteln

Vielen Dank für die Antworten! Sorry, aber wenns sonst niemand tut: OOP geht anders. Wenn ich das richtig verstanden habe, mache ich das auch so. Ich habe nur sehr wenige Stellen, wo ich z.B. Mehrfachvererbung nutze/benötige, wodurch dann aber keine bestehenden Funktionen verändert/überschrieben wer...
von Goderion
06.04.2017, 15:09
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Re: Objekttyp in C++ zur Laufzeit ermitteln

Doch! Du vergleichst die Typen der Zeiger – du musst aber die Typen der Objekte dahinter vergleichen ;) if(typeid( * pTest) == typeid(ClassTest)) Funktioniert! Aber erst nachdem ich in ClassTest eine virtuelle Funktion hatte, davor verhielt es sich wie ohne *. DANKE SEHR! Der std::shared_ptr würde ...
von Goderion
06.04.2017, 13:10
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Re: Objekttyp in C++ zur Laufzeit ermitteln

Vielen Dank für die Antworten. typeid hilft leider nicht weiter, sobald Vererbung im Spiel ist. InterfaceTest* pTest = new ClassTest(); if (typeid(pTest) == typeid(InterfaceTest)) { // ja } if(typeid(pTest) == typeid(ClassTest)) { // nein } shared_ptr macht doch im Prinzip das Gleiche, nur wird dort...
von Goderion
06.04.2017, 11:59
Forum: Algorithmen und Datenstrukturen
Thema: Objekttyp in C++ zur Laufzeit ermitteln
Antworten: 21
Zugriffe: 14787

Objekttyp in C++ zur Laufzeit ermitteln

Hallo. Ich benutze in meinem Programm für fast alle Objekte folgendes Interface (sehr ähnlich wie IUnknown von OLE/COM): class InterfaceObjectBase { public: virtual Void AddRef(Void) const = 0; virtual Void Release(Void) const = 0; virtual UInt32 GetObjectTypeId(Void) const { return 0; } virtual con...
von Goderion
06.04.2017, 11:17
Forum: Grafikprogrammierung
Thema: C++-Screenshot
Antworten: 3
Zugriffe: 2607

Re: C++-Screenshot

Hallo. Hier vielleicht ein interessanter Artikel: https://www.codeproject.com/Articles/5051/Various-methods-for-capturing-the-screen Aus dem oben genannten Artikel: Void CaptureScreen() { int nScreenWidth = GetSystemMetrics(SM_CXSCREEN); int nScreenHeight = GetSystemMetrics(SM_CYSCREEN); HWND hDeskt...
von Goderion
22.01.2015, 15:00
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Re: Direct3D9 - fertige Scene mit hqx vergrößern

Vielen Dank für die Antwort. Ich arbeite an meiner 2D-Spiele-Engine. Wie man schon gesehen hat, nutze ich zum Rendern Direct3D9. Ich wollte eigentlich nur mal "schnell" mein gerendertes Level per hqx vergrößern und mich nicht so viel mit Shadern auseinandersetzen, aber ich sehe schon, das ...
von Goderion
22.01.2015, 03:15
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Re: Direct3D9 - fertige Scene mit hqx vergrößern

Danke für die Antwort. Hab es ein wenig getestet, StretchRect und DrawPrimitive nehmen sich nichts, klappt sehr gut. Ich habe einen PixelShader gefunden, der passen könnte, allerdings bekomme ich ihn nicht richtig geladen: https://github.com/Armada651/hqx-shader Beim Single-Pass bekomme ich diesen F...
von Goderion
21.01.2015, 02:45
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Re: Direct3D9 - fertige Scene mit hqx vergrößern

Hallo und Danke für die Antworten. Ich habe jetzt halbwegs PixelShader in meine Engine integriert. Ich gehe mal davon aus, daß StretchRect vom PixelShader nicht beeinflusst wird? Also muss ... m_Direct3DDevice9->CreateRenderTarget(m_RealWidth, m_RealHeight, Desc.Format, Desc.MultiSampleType, Desc.Mu...
von Goderion
20.01.2015, 15:26
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Re: Direct3D9 - fertige Scene mit hqx vergrößern

Vielen Dank für die Antwort und die kleine Erklärung. So etwas habe ich schon ungefähr vermutet. Meine Theorie: Das GetRenderTargetData hat mein TempSurface vermutlich nur markiert, daß dort jetzt Daten aus dem RenderTargetSurface hingehören, aber erst, wenn ich auf die Daten im TempSurface zugreife...
von Goderion
20.01.2015, 11:03
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Re: Direct3D9 - fertige Scene mit hqx vergrößern

Hallo und danke für die Antwort. Von FragmentShadern (Pixel-Shader?) hab ich so gut wie keine Ahnung, was ich, wenn es nicht zu aufwändig ist, ändern lasst. Ich weiß auch nicht, ob es überhaupt möglich ist, den hqx-Filter als FragmentShader zu nutzen. Ich nutze den hqx-Filter aktuell über die libhqx...
von Goderion
20.01.2015, 03:26
Forum: Grafikprogrammierung
Thema: Direct3D9 - fertige Scene mit hqx vergrößern
Antworten: 11
Zugriffe: 3102

Direct3D9 - fertige Scene mit hqx vergrößern

Hallo. Ich möchte eine gerenderte Scene mit dem hqx-Filter vergrößern. Der Filter wird oft auch von Emulatoren genutzt: http://en.wikipedia.org/wiki/Hqx In meiner aktuellen Version funktioniert das auch schon, aber nur irre langsam, da LockRect viel Zeit frisst, bis zu 10ms, und ich weiß nicht warum...