Partager via


DD_SURFACE_GLOBAL structure (ddrawint.h)

La structure DD_SURFACE_GLOBAL contient des données globales relatives à la surface qui peuvent être partagées entre plusieurs surfaces.

Syntaxe

typedef struct _DD_SURFACE_GLOBAL {
  union {
    DWORD dwBlockSizeY;
    LONG  lSlicePitch;
  };
  union {
    LPVIDEOMEMORY lpVidMemHeap;
    DWORD         dwBlockSizeX;
    DWORD         dwUserMemSize;
  };
  FLATPTR       fpVidMem;
  union {
    LONG  lPitch;
    DWORD dwLinearSize;
  };
  LONG          yHint;
  LONG          xHint;
  DWORD         wHeight;
  DWORD         wWidth;
  ULONG_PTR     dwReserved1;
  DDPIXELFORMAT ddpfSurface;
  FLATPTR       fpHeapOffset;
  HANDLE        hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;

Membres

dwBlockSizeY

Spécifie l’emplacement dans lequel le pilote retourne la hauteur, dans les lignes de balayage, du bloc de mémoire hors écran que Microsoft DirectDraw doit allouer. Le pilote doit définir cette valeur lorsqu’il retourne DDHAL_PLEASEALLOC_BLOCKSIZE dans le membre fpVidMem .

lSlicePitch

Pas de coupe pour les textures de volume.

lpVidMemHeap

Pointe vers une structure VIDEOMEMORY à partir de laquelle la mémoire d’affichage du tas a été allouée.

dwBlockSizeX

Spécifie l’emplacement dans lequel le pilote retourne la taille en octets de la largeur du bloc de mémoire hors écran que DirectDraw doit allouer. Le pilote doit définir cette valeur lorsqu’il retourne DDHAL_PLEASEALLOC_BLOCKSIZE dans le membre fpVidMem .

dwUserMemSize

Spécifie l’emplacement dans lequel le pilote retourne la taille en octets du bloc de mémoire que DirectDraw doit allouer en mémoire système en mode utilisateur. Le pilote doit définir cette valeur lorsqu’il retourne DDHAL_PLEASEALLOC_USERMEM dans le membre fpVidMem .

fpVidMem

Si le pilote alloue le bloc de mémoire, il doit retourner le décalage dans la mémoire d’affichage dans ce membre. Si le pilote demande à DirectDraw d’effectuer l’allocation de mémoire, il peut retourner l’une des valeurs suivantes dans ce membre à partir de sa routine DdCreateSurface :

Valeur Signification
DDHAL_PLEASEALLOC_BLOCKSIZE DirectDraw doit allouer un bloc de mémoire de taille dwBlockSizeX et dwBlockSizeY dans la mémoire hors écran.
DDHAL_PLEASEALLOC_USERMEM DirectDraw doit allouer un bloc de mémoire de taille dwUserMemSize en mémoire en mode utilisateur.

lPitch

Spécifie le tangage de la surface ; c’est-à-dire la distance en octets jusqu’au début de la ligne suivante. C’est également ce que l’on appelle la foulée de la surface.

dwLinearSize

Spécifie la taille linéaire en octets d’une surface nonrectangulaire.

yHint

Spécifie la coordonnée y de la surface. Ce membre est une coordonnée cartésienne 2D spécifiée dans l’espace de l’appareil.

xHint

Spécifie la coordonnée x de la surface. Ce membre est une coordonnée cartésienne 2D spécifiée dans l’espace de l’appareil.

wHeight

Spécifie la hauteur en pixels de la surface.

wWidth

Spécifie la largeur en pixels de la surface.

dwReserved1

Réservé à l’utilisation par le pilote d’affichage.

ddpfSurface

Pointe vers la structure DDPIXELFORMAT qui décrit le format de pixels de la surface.

fpHeapOffset

Pointe vers le décalage brut dans le tas source.

hCreatorProcess

Réservé à l’utilisation système et doit être ignoré par le pilote.

Notes

Une mémoire tampon de vertex, créée par CreateD3DBuffer, contient une liste de sommets utilisés par le rappel D3dDrawPrimitives2 pour le rendu des primitives. Microsoft Windows représente les mémoires tampons de vertex en tant que surfaces DirectDraw, établissant ainsi une connexion entre les mémoires tampons de vertex et la structure DD_SURFACE_GLOBAL.

Lorsqu’un pilote DirectX fonctionne avec une mémoire tampon de vertex, il est important qu’il soit en mesure de déterminer correctement la taille de cette mémoire tampon. DirectDraw transmet la taille de mémoire tampon linéaire au pilote dans le membre lPitch de cette structure. Sur Windows 2000 et versions ultérieures, mais pas sur Windows 98/Me, le membre wWidth de cette structure est défini sur la même valeur. Notez que les deux membres de la structure doivent être considérés comme en lecture seule. La valeur que DirectDraw place dans ces membres représente la taille minimale de la mémoire tampon de vertex. Si vous avez besoin d’une mémoire tampon plus grande (par exemple, pour l’optimisation), un enregistreur de pilotes est libre de créer une mémoire tampon supérieure à cette taille. Toutefois, en aucun cas, le pilote ne doit signaler la plus grande taille de mémoire tampon à DirectDraw.

Spécifications

   
En-tête ddrawint.h (incluez Winddi.h)

Voir aussi

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY