DDVIDEOPORTCAPS-Struktur (dvp.h)

Die DDVIDEOPORTCAPS-Struktur beschreibt die Funktionen und Ausrichtungseinschränkungen eines Hardwarevideoports.

Syntax

typedef struct _DDVIDEOPORTCAPS {
  DWORD dwSize;
  DWORD dwFlags;
  DWORD dwMaxWidth;
  DWORD dwMaxVBIWidth;
  DWORD dwMaxHeight;
  DWORD dwVideoPortID;
  DWORD dwCaps;
  DWORD dwFX;
  DWORD dwNumAutoFlipSurfaces;
  DWORD dwAlignVideoPortBoundary;
  DWORD dwAlignVideoPortPrescaleWidth;
  DWORD dwAlignVideoPortCropBoundary;
  DWORD dwAlignVideoPortCropWidth;
  DWORD dwPreshrinkXStep;
  DWORD dwPreshrinkYStep;
  DWORD dwNumVBIAutoFlipSurfaces;
  DWORD dwNumPreferredAutoflip;
  WORD  wNumFilterTapsX;
  WORD  wNumFilterTapsY;
} *LPDDVIDEOPORTCAPS, DDVIDEOPORTCAPS;

Member

dwSize

Gibt die Größe der -Struktur in Byte an.

dwFlags

Geben Sie an, welche Member in dieser Struktur gültige Daten enthalten. Dieser Member kann ein bitweises OR mit einem der folgenden Werte sein:

Flag Bedeutung
DDVPD_ALIGN
Alle Ausrichtungsmember sind gültig. Dazu zählen unter anderem folgende Einstellungen:
dwAlignVideoPortBoundary,
dwAlignVideoPortPrescaleWidth,
dwAlignVideoPortCropBoundary und
dwAlignVideoPortCropWidth.
DDVPD_AUTOFLIP DwNumAutoFlipSurfaces ist gültig.
DDVPD_CAPS Das dwCaps-Element ist gültig.
DDVPD_FX Das dwFX-Element ist gültig.
DDVPD_HEIGHT Das dwMaxHeight-Element ist gültig.
DDVPD_ID Das dwVideoPortID-Element ist gültig.
DDVPD_WIDTH Die Elemente dwMaxWidth und dwMaxVBIWidth sind gültig.

dwMaxWidth

Gibt die maximale Feldbreite in Pixel an, die vom Hardwarevideoport unterstützt wird. Dieser Wert wird in der Regel durch die Anzahl der Bits im Breitenregister vorgegeben.

dwMaxVBIWidth

Gibt die maximale Breite in Anzahl von Beispielen in einer Zeile von VBI-Daten an, die vom Hardwarevideoport unterstützt werden. Dieser Wert kann größer als die normale Feldbreite sein, wenn der Hardwarevideoport überstempelte VBI-Daten unterstützt.

dwMaxHeight

Gibt die maximale Feldhöhe in Pixeln an, die vom Hardwarevideoport unterstützt wird. Dieser Wert wird in der Regel durch die Anzahl der Bits im Höhenregister bestimmt.

dwVideoPortID

Gibt die Hardwarevideoport-ID für diesen Eintrag an. Dieser Member sollte die Indexnummer dieser DDVIDEOPORTCAPS-Struktur innerhalb des Arrays sein, auf das der lpDDVideoPortCaps-Member der DD_DIRECTDRAW_GLOBAL-Struktur verweist. Dieser Wert reicht von 0 bis (dwMaxVideoPorts - 1). (dwMaxVideoPorts ist ein Mitglied der DDCORECAPS-Struktur .) Wenn das Gerät nur einen Hardwarevideoport unterstützt, sollte dieser Member 0 (null) sein.

dwCaps

Gibt eine Reihe von Flags an, die die funktionen angeben, die von diesem Hardwarevideoport unterstützt werden. Dieser Member kann ein bitweises OR mit einem der folgenden Werte sein:

Flag Bedeutung
DDVPCAPS_AUTOFLIP Ein Flip kann automatisch ausgeführt werden, um ein Reißen zu vermeiden.
DDVPCAPS_COLORCONTROL Der Hardwarevideoport kann Farboperationen für die eingehenden Daten ausführen, bevor sie in den Framepuffer geschrieben werden.
DDVPCAPS_INTERLACED Der Hardwarevideoport unterstützt Interlaced-Video.
DDVPCAPS_NONINTERLACED Der Hardwarevideoport unterstützt Nicht-Interlaced-Video.
DDVPCAPS_OVERSAMPLEDVBI Der Hardwarevideoport kann VBI-Daten in einer anderen Breite oder einem anderen Format als die normalen Videodaten akzeptieren.
DDVPCAPS_READBACKFIELD Das Gerät kann einen Wert zurückgeben, der angibt, ob das aktuelle Feld eines Interlaced-Signals gerade oder ungerade ist.
DDVPCAPS_READBACKLINE Das Gerät kann die Nummer der aktuellen Videozeile zurückgeben, die in den Framepuffer geschrieben wird.
DDVPCAPS_SHAREABLE Wird von Microsoft DirectDraw ignoriert.
DDVPCAPS_SKIPEVENFIELDS Der Hardwarevideoport kann automatisch gerade Videofelder verwerfen.
DDVPCAPS_SKIPODDFIELDS Der Hardwarevideoport kann ungerade Videofelder automatisch verwerfen.
DDVPCAPS_SYNCMASTER Das Gerät kann die Grafik-V-Synchronisierung mit der V-Synchronisierung des Hardwarevideoporttreibers steuern.
DDVPCAPS_SYSTEMMEMORY Der Hardwarevideoport kann Daten direkt in den Systemspeicher schreiben.
DDVPCAPS_VBISURFACE Die Daten innerhalb des vertikalen Leerungsintervalls können auf eine andere Oberfläche geschrieben werden.

dwFX

Gibt eine Reihe von Flags an, die die von diesem Hardwarevideoport unterstützten Effekte angeben. Dieser Member ist ein bitweises OR mit einem der folgenden Werte:

Flag Bedeutung
DDVPFX_CROPTOPDATA Der Hardwarevideoport unterstützt das eingeschränkte Zuschneiden, um die vertikalen Intervalldaten zuzuschneiden.
DDVPFX_CROPX Der Hardwarevideoport kann eingehende Daten in x-Richtung zuschneiden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_CROPY Der Hardwarevideoport kann eingehende Daten in y-Richtung zuschneiden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_IGNOREVBIXCROP Der Hardwarevideoport kann die linken und rechten Zuschneidekoordinaten für Videodaten ignorieren, wenn übersampelte VBI-Daten zuschneiden.
DDVPFX_INTERLEAVE Der Hardwarevideoport unterstützt das Überlappen von Feldern im Speicher.
DDVPFX_MIRRORLEFTRIGHT Der Hardwarevideoport unterstützt die Spiegelung von links nach rechts, da die Videodaten in den Framepuffer geschrieben werden.
DDVPFX_MIRRORUPDOWN Der Hardwarevideoport unterstützt die Spiegelung von oben nach unten, während die Videodaten in den Framepuffer geschrieben werden.
DDVPFX_PRESHRINKX Daten können willkürlich in x-Richtung verkleinert werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESHRINKXB Daten können durch negative Potenzen von 2 (1/2, 1/4, 1/8 usw.) in x-Richtung verkleinert werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESHRINKXS Daten können in Schritten von 1/dwPreshrinkXStep in x-Richtung verkleinern, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESHRINKY Daten können willkürlich in y-Richtung verkleinert werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESHRINKYB Daten können durch negative Potenzen von 2 (1/2, 1/4, 1/8 usw.) in y-Richtung verkleinert werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESHRINKYS Daten können in Schritten von 1/dwPreshrinkYStep in y-Richtung verkleinern, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESTRETCHX Daten können beliebig in x-Richtung gestreckt werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESTRETCHXN Daten können durch ganzzahlige Faktoren in x-Richtung gestreckt werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESTRETCHY Daten können beliebig in y-Richtung gestreckt werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_PRESTRETCHYN Daten können durch ganzzahlige Faktoren in y-Richtung gestreckt werden, bevor sie auf die Oberfläche geschrieben werden.
DDVPFX_VBICONVERT Daten innerhalb des vertikalen Leerungsintervalls können unabhängig von den verbleibenden Videodaten konvertiert werden.
DDVPFX_VBINOSCALE Die Skalierung kann für Daten innerhalb des vertikalen Leerungsintervalls deaktiviert werden.

dwNumAutoFlipSurfaces

Gibt die maximale Anzahl von Oberflächen an, die in der Autoflip-Kette unterstützt werden, wenn der Hardwarevideoport das automatische Flipping unterstützt. Wenn der Hardwarevideoport das automatische Flippen nicht unterstützt, sollte der Treiber diesen Member auf 0 (null) festlegen.

dwAlignVideoPortBoundary

Gibt die Byteausrichtungseinschränkung in Byte an, bei der der Hardwarevideoport relativ zum Ursprung der Oberfläche in x-Richtung ausgerichtet werden kann.

dwAlignVideoPortPrescaleWidth

Gibt die Byteausrichtungseinschränkung in Byte an, die bestimmt, wie breit die Hardwarevideoportdaten sein können, wenn die Vorskalierung ausgeführt wird.

dwAlignVideoPortCropBoundary

Gibt die Byteausrichtungseinschränkung in Bytes für die linke Zuschneidekoordinate an.

dwAlignVideoPortCropWidth

Gibt die Byteausrichtungseinschränkung in Bytes für die Breite des Zuschneiderechtecks an.

dwPreshrinkXStep

Gibt an, dass der Hardwarevideoport die Breite der Videodaten in Schritten von 1/dwPreshrinkXStep verkleinern kann. Dieser Member ist nur gültig, wenn die DDVPFX_PRESHRINKXS-Funktion angegeben ist.

dwPreshrinkYStep

Gibt an, dass der Hardwarevideoport die Höhe der Videodaten in Schritten von 1/dwPreshrinkYStep verkleinern kann. Dieser Member ist nur gültig, wenn die DDVPFX_PRESHRINKYS-Funktion angegeben ist.

dwNumVBIAutoFlipSurfaces

Gibt die maximale Anzahl von Oberflächen an, die in der Autoflip-Kette unterstützt werden, wenn der Hardwarevideoport das automatische Flipping unterstützt. Wenn der Hardwarevideoport das automatische Flippen nicht unterstützt, sollte der Treiber diesen Member auf 0 (null) festlegen. Dieser Member funktioniert auf die gleiche Weise wie dwNumAutoFlipSurfaces , mit der Ausnahme, dass es sich nur auf Geräte bezieht, die die VBI-Daten an eine andere Oberfläche senden können, als auf die das normale Video geschrieben wird.

dwNumPreferredAutoflip

Gibt die optimale Anzahl von automatisch flippierbaren Oberflächen an, die von der Hardware unterstützt werden.

wNumFilterTapsX

Gibt die Anzahl der Tippen an, die die Präskalierung in x-Richtung verwendet. Der Wert 0 gibt keine Vorskalierung an, der Wert 1 die Replikation usw.

wNumFilterTapsY

Gibt die Anzahl der Tippen an, die die Präskalierung in y-Richtung verwendet. Der Wert 0 gibt keine Vorskalierung an, der Wert 1 die Replikation usw.

Hinweise

Der Treiber meldet die von der DDVIDEOPORTCAPS-Struktur beschriebenen Funktionen, wenn seine DdGetDriverInfo-Funktion mit der GUID_VideoPortCaps GUID aufgerufen wird.

Anforderungen

   
Kopfzeile dvp.h (dvp.h einschließen)

Weitere Informationen

DDCORECAPS

DD_DIRECTDRAW_GLOBAL

DdGetDriverInfo