Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ScreenBuffer - Wo & Wie ? (https://www.delphipraxis.net/131281-screenbuffer-wo-wie.html)

mr_emre_d 22. Mär 2009 02:33


ScreenBuffer - Wo & Wie ?
 
Hiho liebe Freunde;

Ich möchte gerne wissen, wo genau sich der ScreenBuffer befindet und wie ich sie direkt benütze.

Ich habe hier und da ein wenig recherchiert und überall kam ich auf die Adresse $A000.
Aber die Artikeln zu diesem Thema sind uralt (DOS Zeiten)
Scrolle runter zu der Procedure InitGraph
ScreenBuffer

Ich würde nun gerne wissen, wo es sich befindet und ob ich sie in Vista auslesen & verändern kann

PS: Bitte kommt nicht mit GetDC oder sonstigem.

Danke schonmal im voraus.

MfG

Satty67 22. Mär 2009 06:54

Re: ScreenBuffer - Wo & Wie ?
 
Ich denke meine Antwort wird nicht viel helfen, schreibe es aber trotzdem mal...

Die Grafikkarte blendet Ihren Speicher (einen Teil) ja bei $A000 in den Adressraum ein. Früher wurde der Speicher direkt zum Abbilden von Text/Grafik (via DAC) auf dem Monitor verwendet. Besonders Textausgaben konnte man unter DOS so schön beschleunigen, weil man das Bios umgangen hat (z.B. FastWrite von OPCrt)

Ich glaube unter Windows läuft das ganz anders. Den Adressraum, den die Grafikkarte zur Darstellung des Monitorbildes verwendet, kann nicht mehr so einfach direkt adressiert werden. Mit DirectX oder OpenGL gibt es wohl Techniken, den Grafikkarten-Speicher direkt zu nutzen, das ist aber wohl auch nur Textur-Speicher oder gepufferter Bildaufbau.

Kommt jetzt darauf an, was Du vor hast. Wenn Du Ausgaben via Canvas beschleunigen willst, ist vielleicht Scanlines ein gutes Stichwort?

mr_emre_d 22. Mär 2009 07:02

Re: ScreenBuffer - Wo & Wie ?
 
Danke für die Infos.

Ich arbeite generell nicht mit Canvas und falls ich es einmal tue, dann verwende ich kein Pixels[] :)
Da bevorzuge ich doch OpenGL :)

Ich wollte eig. nur wissen, wie ein direkter Zugriff funktioniert.

MfG

sniper_w 22. Mär 2009 07:12

Re: ScreenBuffer - Wo & Wie ?
 
In Win XP / Vista musst du einen Grafikkartentreiber schreiben um direkt auf Grafikspeicher zugriff zu haben.

mr_emre_d 22. Mär 2009 07:19

Re: ScreenBuffer - Wo & Wie ?
 
OK. Dann versuche ich das mal zu lernen :coder:
Ich hatte eh schon länger mal vor, in Treiberprogrammierung reinzuschnuppern.

Ich wäre aber trotzdem erfreut zu erfahren, dass es auch anders möglich ist :)

EDIT:
Das erste, was ich bei einem kleinen Tutorial lese, ist folgendes:
"...Der Schritt von der Applikationsprogrammierung zur Treiberprogrammierung, die den Zugriff auf die Hardware ermöglichen würde, ist recht groß und anfangs meist auch mit hohen Kosten verbunden...."

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz