Syntax
INT is_SetDisplayMode (HIDS hf, INT Mode)
Beschreibung:
is_SetDisplayMode() bestimmt auf welche Art die Bilder auf dem Bildschirm dargestellt werden. Für echtes Live-Video plus Overlay wurde der DirectDraw Overlay-Surface-Modus eingeführt. Die Verfügbarkeit dieses Modus ist abhängig von der verwendeten VGA-Karte. Nur bestimmte VGA Controller unterstützen diesen Modus. Bekannt sind z.Zt.: S3 Virge VX (eingeschränkt), S3 Virge DX/GX/GX2 und der 3D RagePro Chip. Verwendet werden kann dieser Overlay-Modus mit diesen VGA-Chips im 8-,15- und 16-Bit VGA Modus. True Color (24Bit) wird nicht unterstützt. Im 8-Bit VGA-Modus muss der Farbmodus auf RGB15 eingestellt werden!
Der Speicherausbau der VGA-Karte sollte 4MB betragen, da der Overlay-Modus einen Speicherplatz bis zur Größe der aktuellen VGA-Auflösung für sich benötigt.
Beispiel: VGA mit 1024x768x16 = 1,5 MB -> Overlay-Buffer bis zu 1,5 MB (erfordert VGA-Karte mit 4MB)
Bei einer VGA-Auflösung 640x480 muss vor dem Einschalten eines DirectDraw-Modus die Bildgröße auf 640x480 Pixel beschränkt werden. Hierzu dient die Funktion is_SetImageSize().
Beispiel
is_SetDisplayMode (hf, Mode);
•Bitmap-Modus (in Systemspeicher digitalisieren):
Mode = IS_SET_DM_DIB
•DirectDraw Back-Buffer-Modus (Overlay möglich, siehe is_EnableDDOverlay()):
Mode = IS_SET_DM_DIRECTDRAW
•Direct3D-Modus (Overlay möglich, siehe is_DirecRenderer()):
Mode = IS_SET_DM_DIRECT3D
•Um Speicherauslagerung in den Systemspeicher zu erlauben:
Mode = IS_SET_DM_DIRECTDRAW | IS_SET_DM_ALLOW_SYSMEM
•DirectDraw Primary-Surface-Modus (kein Overlay möglich):
Mode = IS_SET_DM_DIRECTDRAW | IS_SET_DM_ALLOW_PRIMARY
•DirectDraw Overlay-Surface-Modus (bestes Live-Overlay):
Mode = IS_SET_DM_DIRECTDRAW | IS_SET_DM_ALLOW_OVERLAY
•Um ein automatisches Skalieren auf die Fenstergröße zu erlauben:
Mode = IS_SET_DM_DIRECTDRAW | IS_SET_DM_ALLOW_OVERLAY | IS_SET_DM_ALLOW_SCALING
•bzw. um den Interlaced Effekt bei y<288 zu verhindern:
Mode = IS_SET_DM_DIRECTDRAW | IS_SET_DM_ALLOW_OVERLAY | IS_SET_DM_ALLOW_SCALING | IS_SET_DM_ALLOW_FIELDSKIP
Andere Kombinationen für Mode sind ungültig!
Übergabeparameter
hf |
Handle auf Frame Grabber |
Mode |
|
1 |
Bild in Systemspeicher erfassen (keine automatische Darstellung!) |
2 |
DirectDraw Modus (Back-Buffer Modus) |
IS_SET_DM_DIRECT3D |
Direct3D Modus |
DirectDraw Back-Buffer-Erweiterung |
|
0x40 |
DirectDraw-Buffer kann im PC angelegt werden, wenn VGA-Speicher nicht ausreicht |
DirectDraw Primary-Surface-Erweiterung |
|
0x80 |
Primary-Surface-Modus (kein Overlay möglich) |
DirectDraw Overlay-Surface-Erweiterung |
|
0x100 |
Overlay-Surface-Modus |
0x200 |
Echtzeit-Skalierung im Overlay-Surface-Modus |
0x400 |
Field-Darstellung bei ysize ≤ PAL/2 (288) |
Rücklesemodus |
|
0x8000 |
Rücklesen der aktuellen Einstellung |
Rückgabewert
In Verbindung mit IS_GET_DISPLAY_MODE |
Aktuelle Einstellung |
IS_SUCCESS |
Allgemeine Erfolgsmeldung |
IS_NO_SUCCESS |
Allgemeine Fehlermeldung |
IS_DR_LIBRARY_NOT_FOUND |
Die DirectRenderer-Bibliothek konnte nicht gefunden werden. |
IS_DR_DEVICE_OUT_OF_MEMORY |
Nicht genügend Grafikspeicher verfügbar. |
IS_DR_CANNOT_CREATE_SURFACE |
Bild- oder Overlay-Surface konnten nicht angelegt werden. |
IS_DR_CANNOT_CREATE_VERTEX_BUFFER |
Der Vertex-Puffer konnte nicht angelegt werden. |
IS_DR_CANNOT_CREATE_TEXTURE |
Die Textur konnte nicht angelegt werden. |
IS_DR_CANNOT_LOCK_OVERLAY_SURFACE |
Das Overlay-Surface konnte nicht gesperrt werden. |
IS_DR_CANNOT_UNLOCK_OVERLAY_SURFACE |
Das Overlay-Surface konnte nicht entsperrt werden. |
IS_DR_CANNOT_GET_OVERLAY_DC |
Das Device-Context-Handle für das Overlay konnte nicht freigegeben werden. |
IS_DR_CANNOT_RELEASE_OVERLAY_DC |
Das Overlay-Surface konnte nicht freigegeben werden. |
IS_DR_DEVICE_CAPS_INSUFFICIENT |
Die Funktion wird von der Grafikhardware nicht unterstützt. |
IS_DR_SURFACE_LOST |
Das Overlay-Surface wurde verloren und musste neu erzeugt werden. |
IS_DR_CANNOT_LOCK_IMAGE_SURFACE |
Das Bild-Surface konnte nicht gesperrt werden. |
IS_DR_CANNOT_UNLOCK_IMAGE_SURFACE |
Das Bild-Surface konnte nicht entsperrt werden. |