Hardwarezugriff auf Grafikkarte



  • D.h. dann ist ja SDL langsamer als DirectX.



  • Jep, wie fast alles was Funktionalität irgendwie abstrahiert. Dafür läufts dann aber auch auf mehreren Plattformen.

    cya
    liquid



  • Ovaron123 schrieb:

    D.h. dann ist ja SDL langsamer als DirectX.

    Nicht merklich, nein.



  • Rechner aufschrauben und zupacken? Definiere "auf die Grafikarte zugreifen".

    Bye, TGGC \-/



  • Ovaron123 schrieb:

    Sowas wie in Dos den "Mode 13h" glaube über Interrupt 10.

    Naja z.b. ohne libs dien Hersteller der Grafikkarte rauszufinden. Oder die Unterstüzten Modis.



  • Ovaron123 schrieb:

    D.h. dann ist ja SDL langsamer als DirectX.

    Ja sicher, um mindestens 0,1 % !
    Was glaubst Du, wie langsam es jetzt ist, dann noch von einer teilweise interpretierten Sprache wie Java darauf zuzugreifen?!? Trotzdem gibt's Spinner die genau das umsetzen... 😮

    Ovaron123 schrieb:

    Ovaron123 schrieb:

    Sowas wie in Dos den "Mode 13h" glaube über Interrupt 10.

    Naja z.b. ohne libs dien Hersteller der Grafikkarte rauszufinden. Oder die Unterstüzten Modis.

    Mhhhh... diese "Modi" definieren sich aber meistens über den Treiber. So kann die gleiche GraKa beim gleichen Treiber unter OpenGL z.B. andere Modi unterstützen als unter DirectX.

    Du kannst ggf. über den vorhandenen GraKa-Speicher auf die Maximalauflösung schließen, aber das wäre sicherlich ziemlicher Quatsch... 😉



  • Ich hab mir mal das Demo von TGGC angekuckt. "CMath" eine 4kb .COM Datei.
    Sowas meine ich. Ich glaube kaum das das mit DirectX oder einer anderen Lib gemacht wurde.
    Oder doch?



  • 4kb und COM hört sich nach HardCore-Assembler an



  • Ich hab zwar von OS' nicht die Ahnung, aber dafür brauchst du Privilegien wie ein Treiber (Ring0 ?). Die musst du also nachprogrammieren, was soll das bringen? Ausserdem will _niemand_ sowas haben...

    Warum soll etwas Kleines nicht mit einer Lib gemacht sein? Denk mal drüber nach...

    Bye, TGGC \-/



  • Na wenn du schon 4kB Demos machst, sollte man nicht auf fremde LIB's und deren Funktionen zugreifen. Da es dann keine "echten" 4kB sind.
    Mathematisch mag es zwar Top sein, aber technisch Schrott.



  • Ovaron123 schrieb:

    Ich hab mir mal das Demo von TGGC angekuckt. "CMath" eine 4kb .COM Datei.
    Sowas meine ich. Ich glaube kaum das das mit DirectX oder einer anderen Lib gemacht wurde.
    Oder doch?

    Natürlich. Er nutzt DirectX. Was Du auch rausgefunden hättest, wenn Du RTFM beherzigt hättest... 🙄

    TGGC schrieb:

    Ich hab zwar von OS' nicht die Ahnung, aber dafür brauchst du Privilegien wie ein Treiber (Ring0 ?). Die musst du also nachprogrammieren, was soll das bringen?

    Kommt halt auf das OS an. Unter MS-DOS mußt Du das nicht.
    Für Win NT - Basis solltest Du Dir das "Microsoft Driver Development Kit" saugen und einen Ring-0-Kernel-Treiber proggen...
    Wie TGGC schon sagte totaler Schwachsinn.
    nVidia und ATI werden ihre Karten wohl besser kennen als Du... 🙄

    TGGC schrieb:

    Warum soll etwas Kleines nicht mit einer Lib gemacht sein? Denk mal drüber nach...

    DAS möchte ich nochmal unterstützen...! 👍

    Ovaron123 schrieb:

    Na wenn du schon 4kB Demos machst, sollte man nicht auf fremde LIB's und deren Funktionen zugreifen. Da es dann keine "echten" 4kB sind.
    Mathematisch mag es zwar Top sein, aber technisch Schrott.

    Hahaha, was bis' Du'n für einer?!?
    Du willst doch nicht etwa behaupten, daß die 96-KB-".kkrieger"-Demo technisch Schrott ist?!?!? 😕
    Ich hoffe für Dich Du proggst nichtmal in Assembler, sondern direkt in Maschinencode. Ansonsten bist Du inkonsequent und hast einfach nichts auf'm Kasten...



  • Was ich damit sagen will, ist das die Leute frueher ihre eigene Funktionen geschrieben haben um eine Demo zu machen. Sei es nun in dem alten SVGA oder sogar VGA. Jede einzelne Funktion waren alle selber geschrieben, und nicht von Microsoft oder anderen.

    Aber ich sehe schon das es heutzutage schwieriger ist unter NT/2000/XP Hardware nahe zu programieren. Und wohl auch sehr Aufwendig.

    Wenn ich noch daran denke, das frueher die Spiele immer ein Setup brauchten, in dem man die Soundkarte und die Grafikarte einstellen mußte, kann man heutzutage schon froh sein, das das alles DirectX erledigt.



  • Ovaron123 schrieb:

    Was ich damit sagen will, ist das die Leute frueher ihre eigene Funktionen geschrieben haben um eine Demo zu machen. Sei es nun in dem alten SVGA oder sogar VGA. Jede einzelne Funktion waren alle selber geschrieben, und nicht von Microsoft oder anderen.

    Yo, aber dabei scheinst Du zu mißachten, daß Hard- (und Soft-) ware immer komplexer und komplexer wird und zu immer mehr fähig ist.
    Früher hatte man popelige 80286 / 80386er Prozessoren mit 'ner Handvoll Befehlen, die GraKa wurde direkt über das GraKa RAM als MemoryMapping beschrieben. Und es gab nur Pseudo-3D...

    Mittlerweile ist selbst der Prozessor auf der Soundkarte leistungsfähiger als damals der Hauptprozessor, und kann Sound auf drölfzig verschiedene Weisen ausgeben, Doppler-Effekt in Hardware berechnen etc. pp

    💡

    Früher wurden Top-Games von EINZELPERSONEN (!) geproggt (Turrican von Manfred Trenz z.B.), heute ist es undenkbar. Ein Ego-Shooter von Grund auf mit neuesten Features ist für eine Einzelperson schon fast ein Lebenswerk.

    Ovaron123 schrieb:

    Aber ich sehe schon das es heutzutage schwieriger ist unter NT/2000/XP Hardware nahe zu programieren. Und wohl auch sehr Aufwendig.

    Das "aufwendige" daran ist vor allem, daß Du echt diszipliniert programmieren mußt (wie generell in Assembler). Wenn Du da rumsaust, kachelt Dir später im Betrieb irgendwann mal das System ab (und das böse Windows ist natürlich Schuld 🙄 )...

    Ovaron123 schrieb:

    Wenn ich noch daran denke, das frueher die Spiele immer ein Setup brauchten, in dem man die Soundkarte und die Grafikarte einstellen mußte, kann man heutzutage schon froh sein, das das alles DirectX erledigt.

    Jo, Abstraktion hat auch ein gutes... 🤡 👍



  • Moin,

    um auf deine ursprüngliche Frage zurückzukommen:
    Wenn du z.B. mit einen RealMode-Assembler im CMD-Fenster kleine Programme schreibst, die auf die Videohardware zugreifen über Interrupts, dann lässt WindowsXP das zu.Das ist z.B. gut, wenn du VESA-basierende Funktionen testen möchtest, aber keine Lust hast, nach jedem Fehler neu booten zu müssen.
    In dem Moment, wo ein Video-Interrupt aufgerufen wird, schaltet sich die Konsole in Vollbild. Trozdem behält der Taskmanager von NT stehts die Oberhand, denn es bleibt ja eine Real-Modeanwendung.
    Eventuell werden diese Interrupts auch nur emuliert.
    Ansonsten ist die Videohardware hier genauso leicht oder schwer zu programmieren wie unter Dos.

    Aber um jetzt mal auf DX zurükzukommen:
    Was du machen kannst,und fuer Windowsanwendungen auch solltest, ist unter DX bis Version 7 in DirectDraw einen Mode13h zu setzen, der dann in gewohnter Weise angesprochen werden kann mit folgenden Ausnahmen:
    - Der Speicher muss gelockt werden,du erhältst also einen Fehler, wenn du unangemeldet auf das VRam zugreifen willst.
    - Speicher liegt in gewohnter Weise linear vor, aber der Pitch muss nicht immer 320 sein.
    - Der Speicher liegt nicht unbedingt an einer festen Stelle.

    Unter Win98 wurde sogar noch der ModeX von DDraw unterstützt, aber seit NT wohl nicht mehr.



  • Danke, da werd ich mich nun mal schlau machen.



  • SeppSchrot schrieb:

    Unter Win98 wurde sogar noch der ModeX von DDraw unterstützt, aber seit NT wohl nicht mehr.

    Konnte man das nicht ggf. in den Settings in der Systemsteuerung einstellen?!



  • Sgt. Nukem schrieb:

    SeppSchrot schrieb:

    Unter Win98 wurde sogar noch der ModeX von DDraw unterstützt, aber seit NT wohl nicht mehr.

    Konnte man das nicht ggf. in den Settings in der Systemsteuerung einstellen?!

    Naja, hab das nie ausprobiert aber das steht bei mir in der DX7-Docu:

    Windows 95 and Windows NT/Windows 2000 do not natively support Mode X modes; ...

    Man kann dort anscheinend nur auf die Backbuffersurfaces zugreifen,und dann flippen, also so, wie seit DX8.



  • K 👍



  • Ovaron123 schrieb:

    Was ich damit sagen will, ist das die Leute frueher ihre eigene Funktionen geschrieben haben um eine Demo zu machen. Sei es nun in dem alten SVGA oder sogar VGA. Jede einzelne Funktion waren alle selber geschrieben, und nicht von Microsoft oder anderen.

    Ach und ein Interrupt ist ja auch garnicht sowas wie ein Funktionaufruf. Den "darf" man dann wohl benutzen...

    Bye, TGGC \-/


Anmelden zum Antworten