GMAA

    • Dll

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen


    • GMAA ist ein kleines Projekt, von dem ich schon seit längerem geträumt habe und auch öfters versucht habe zu realisieren.
      Dank Soul Reavers nicht als zu kleiner und zu unterschätzender Unterstützung ist dies jetzt auch gelungen.
      GMAA gibt einem die Möglichkeit, Einstellungen bezüglich Antialiasing vorzunehmen. Dies gilt für sowohl 2D als auch für 3D.


      Folgende Funktionen sind enthalten:
      • gmaa_init( string path ) - Initialisiert GMAA
      • gmaa_getbest( ) - Gibt den bestmöglichen Grad an Antialiasing zurück, die Anzahl an möglichen Samples.
      • gmaa_set( real samples ) - Setzt Anzahl der Samples. Dieser Wert kann zwischen 0 und 16 liegen, sollte aber nicht gmaa_getbest( ) überschreiten.
      • gmaa_get( ) - Gibt den aktuell eingestellten grad an Antialiasing wieder.
      • gmaa_free( ) - Beendet die Party. AA bleibt dennoch an.



      Folgende Probleme und Begrenzungen gibt es:
      • Alle Surfaces werden gelöscht.
      • Alle Lichter werden gelöscht.
      • Die Funktion gmaa_set( ) sollte sparsam genutzt werden
      • Unter GM7 funktioniert es nicht im Fullscreen
      • Funktioniert nicht mit GM8.1


      Man sollte aus dem Grund sparsam mit gmaa_set() sein, weil diese Funktion das Gesamte D3D Device resettet. Also, der Teil vom GM, der für das Drawen verantwortlich ist, wird ein mal auseinander genommen, und neu Initialisiert. Daher ist es nicht möglich, nur teile des Spieles mit AA zu drawen. Es ist möglich, dass das zukünftig kommen wird, ich kann es allerdings nicht versprechen.

      Ich stelle es jetzt erstmalig hier vor um es auf eventuelle, weitere und unbekannte Fehler zu testen.

      Es liegt ein sehr einfaches Beispiel bei, einfach Enter drücken und Texte lesen.
      Wer lust hat, ein besseres zu machen, ist herzlichst eingeladen. Falls sich jemand auch dazu im Stande hält, den Fullscreenbug zu fixen, darf dies auch herzlichst versuchen, die Source liegt bei.

      gmaa.rar - 42kb


      MfG SDX

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SDX ()

    • Hört sich nicht schlecht an, aber folgende Fehlermeldung bekomme ich direkt beim Starten des Examples:

      ERROR in
      action number 1
      of Create Event
      for object obj_gmaa:

      Error defining an external function.
      Liegt das an mir, oder is da was im Example kaputt? Werds vllt. für mein Projekt benutzen.

      MfG

      Albert Einstein schrieb:

      Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
    • Ich sehe, das ist wohl nicht so stabil wie gedacht. Lasst mich das mal genauer angucken. Falls jmd Idee zum Grund hat, gerne Posten, nur nicht weitere Feststellungen, dass es nicht geht.

      @2xD
      Das sind 2 total verschiedene Welten. Der unterschied in der Performance ist sehr groß, außerdem funktioniert das hier auch in 3D!

      EDIT: ok, das hat kein Sinn. Machen wir es umgekehrt: Gibt es wen, bei dem es Funktioniert, außer bei mir?

      MfG SDX

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SDX ()

    • Ohauha.. scheint ja ein verbreitetes Problemchen zu sein.

      Wenn ich den einfach nur auf "multithreaded", also ohne "DLL" compile, die "LIBCMT" und die "MSVCRTD" raus nehme, bekomme ich den fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.

      als GMAPI lib nutze ich gmapi-mt-d-dll.lib.

      Es besteht auch die theoretische Möglichkeit, dass es ohne die GMAPI geht. Es wird ja nur der Pointer aufs D3DDevice benötigt.

      MfG SDX
    • Bei mir geht es auch nicht.
      Aber da das Problem ja anscheinend bekannt ist, zumindestens das es nicht funktioniert bei den meisten, muss doch irgendjemand wissen woran das liegt!?
      Kann ja nicht sein, dass das willkürlich bei irgendwelchen Funktioniert, und bei anderen wiederum nicht.

      Mfg.,
      Mokuyobi
      木曜日 (Mokuyōbi)
    • Also. Bei mir funktioniert die DLL einwandfrei.
      Allerdings hat Bl@ckSp@rk das mit der Codegenerierung schon gut beschrieben.
      Ich hatte vor kurzer Zeit auch hier eine DLL vorgestellt. Bl@ckSp@rk hat sie schon erwähnt.
      Ich bekam dann genau die gleichen Fehler beim kompilieren. Allerdings ging es dann plötzlich am
      nächsten Tag.
      Folgendes habe ich eingestellt:
      C/C++ > Codegenerierung > Laufzeitbibliothek auf Multithreaded.
      Linker > Eingabe > Zusätzliche Abhängigkeiten: gmapi-mt.lib

      Dann hat bei mir alles wunderbar geklappt.
    • Ich habe die GMAPI jetzt selber compiled und auf peinis Einstellungen eingestellt, also ohne "DLL". Funktioniert auch. Allerdings bleibt immernoch der selbe Fehler im Endresultat: Error defining external Function. Merkartig, oder?

      Btw, ich unterstreiche es nochmal: die Source liegt bei, es darf die also jeder angucken ^^

      MfG SDX

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SDX ()

    • Neinein, nur auf Rechnern anderer.

      Das, was mich ja verwundert ist ja, dass alle diesen Schritt machen, also, korrekt Einstellen und so, und dann neue Fehler auftauchen. Das tat es bei mir ja nicht.

      Ich habe die Source mal wieder hochgeladen, diesmal hier [5kb] zu finden. Ich habe noch die Hoffnung, dass es vllt auf einem anderen Computer compiled besser läuft.
      Nur Release compilen, Debug mag er nicht, ist mir aber auch gerade egal, da ich ja weiß, dass am Code zumindest nichts falsch ist.

      EDIT: DX8.1 SDK[166mb]


      MfG SDX

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SDX ()

    • Langsam ist das zum verrückt werden.

      Da ich das Projekt mit allen seinen Einstellungen von Soul Reaver übernommen habe, und das Projekt mit der Zeit sicherlich total misskonfiguriert wurde, habe ich ein neues Projekt angelegt. So, wie ich es schon dutzende male vorher gemacht habe, und nie Probleme hatte. Dann den Code rüber kopiert und noch die gmapi lib hinzugefügt.

      Compilen geht super, ich musste nicht mal auf Mutithreaded statt Multithreaded-DLL umschalten. Da die entstandene DLL aber immer noch nicht ging, zumindest bei einigen Computern, habe ich es doch mit "-dll" compiled, welches allerdings nichts brachte.

      Ich bin mittlerweile total ratlos. Irgendwo muss da doch was sein. Oder scheitert es am selbigen Code? Kann ich mir eigentlich nicht vorstellen.

      Was ich mittlerweile herausgefunden habe: alle DLLs, die ich gemacht habe, auch mit GMAPI, haben folgendes Problem nicht: Ich kann die DLL nicht mit eDLL auslesen, andere DLLs, die ich auf gleiche weise aufgesetzt sind, GMAPI nutzten, schon. Liegt es etwa an der DX8 SDK?

      MfG SDX