schnelle svga-fill routine



  • hi!

    ich brauche unbedingt den quellcode (sprache im prinzip egal, aber am besten asm) einer schnellen routine zum zeichnen einer gefüllten box in den svga-modi 101h und 103h. hab zwar eine, aber die is net soooo schnell....

    cu todo



  • Habe was in der Richtung geschrieben.
    Funktioniert aber leider noch nicht so richtig.
    Schau mal unter "Bildschirm mit Farben füllen - wie geht das?" in diesem Forum.



  • Die in diesem Thread beschriebene Methode ist aber weder schnell, noch fuer SVGA geeignet. 😮
    BTW: Welche Auflösung/Farbtiefe haben die SVGA-Modi 101h/103h?



  • der modus 0x101 hat eine auflösung von 640x480x256 Farben und 0x103 800x600x256 Farben. Eine eigene Routine hab ich auch, aber sie ist noch nicht schnell genug (auf einem 386er sieht man zumindest noch den Bildschirmaufbau... 🙂 Oder denkt ihr, dass das reicht???

    cu todo



  • Wenn Du bei einem 386 nur knapp sehen kannst, wie die Box aufgebaut wird, ist das denke ich ok. (Solange Du nicht zeile fuer Zeile den Aufbau genau mitverfolgen kannst...)



  • neee, so schlimm isses nich, aber um den ganzen bildschirm aufzubauen dauert es eine knappe sekunde und unter windows gehts halt noch schneller... aber ich bin auch zu der meinung gekommen, dass das reicht *ggg*

    cu todo



  • wie ist das eigentlich bei betriebssystemen wie windows oder linux? wird da nur das neugezeichnet was sich auch geändert hat oder jedesmal der ganze screen 😮



  • da wird nur das nötigste neugezeichnet. das ist bei meiner GUI, an der ich gerade arbeite auch so. es geht/ging aber darum, den ganzen bildschirm/große gefüllte boxen zu füllen/zeichen. aber wie schon gesagt, hat sich das geklärt...

    cu todo



  • was mich aber wunder ist: wenn man unter windows z.B. eine fullscreen anwendung schreibt oder ein spiel wo sich das bilder wirklich bei jeder bewegung komplett ändert, hab ich noch nie gesehen wie die einzelnen punkte auf den bildschirm kommen, also das das bild nur stückchenweise aufgebaut wird. auch wenn der prozessor voll ausgelastet ist. dann ruckelts höchstens, aber das bild kommt immer sofort komplett an. wie machen die das?



  • virtual-screens... nix andres - is im prinzip keine kunst, bloß sinnlose speicherverschwendung...

    cu todo



  • Hi Leute.

    @todo: Dieser Vorgang wird aber auch Double-Buffering genannt.
    Bei Spielen ist das extrem wichtig. Andernfalls würde das
    Spielen kein Spass machen, da es an allen Ecken und Enden flackert.
    Und meiner Meinung nach ist der Speicherverbrauch bei diesem
    Verfahren noch im normalen Bereich.

    Normal : ( Bildschirmauflösung H * B ) * Farbtiefe
    Double-Buffering : 2 * ( ( Bildschirmauflösung H * B ) * Farbtiefe )
    Tripple-Buffering : 3 * ( ( Bildschirmauflösung H * B ) * Farbtiefe )

    Bye Peter.



  • hi,
    und wie kann ich 103h und 101h benutzen?!

    mov ah, 00h         
    mov al, 103h        
    int 10h
    

    das geht ja nicht....wie gehts denn? 😕



  • ok habs gefunden 🙂



  • hi, inzwischen (oder besser gesagt schon lange) klappt es alles ziemlich perfekt. das einzige problem ist, dass es auf einigen grakas zu fehlern beim pixel-lesen kommt. da funzt das bank-switching irgendwie net... das gleiche problem habe ich, wenn ich das programm unter windows, wo ich einen speziellen treiber für meine graka habe, ausführe. unter DOS klappts

    cu todo



  • Schon unterschiedliche Zugriffsrechte/Segmente von Window A/B bedacht?
    Vielleicht gibts auf einem Window nur leserechte o.ae.? 😕



  • neee, damit hats nichts zu tun. mit einer anderen graka bzw. auf einem anderen rechner gehts ja auch. außerdem arbeitet mein program im RM und unter Win somit in einer V86M, wo innerhalb des ersten MBs keine schutzrechte gelten

    cu todo



  • Das hat wohl weniger was mit PM Schutzrechten zu tun, sondern vielmehr etwas damit, wie die Grafikkarte in den Speicher gemapt wird.
    An bestimmten Addressen kann dann uU. nur geschrieben, aber keine aktuellen Daten ausgelesen werden/es koennen Daten aus dem Videospeicher gelesen, aber keine hineingeschrieben werden. (Graka uebernimmt in den Speicher geschriebene Daten einfach nicht)

    Wenn Du meinst, dass dein Problem nichts mit der Auswahl dieser Speicherfenster zu tun haben kann, faellt mir auch nichts weiter ein. 😕



  • werd wohl spezielle treiber für die sieben (?) verschiedenen chip-sätze schreiben müssen, obwohl mir VESA natürlich lieber wäre. oder ich scheiß auf die paar rechner, wo es nicht geht... 🙂

    cu todo


Anmelden zum Antworten