Die Suche ergab 81 Treffer
- 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ö...
- 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...
- 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...
- 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...
- 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...
- 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: ...
- 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...
- 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...
- 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...
- 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...
- 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...
- 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 ...
- 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...
- 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...
- 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...
- 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 ...
- 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...
- 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...
- 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...
- 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...
- 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...