DirectDraw.pas
上传用户:yj_qiu
上传日期:2022-08-08
资源大小:23636k
文件大小:258k
源码类别:

游戏引擎

开发平台:

Delphi

  1.  * It enables easier use of GetAttachedSurface rather than EnumAttachedSurfaces for surface
  2.  * constructs such as Cube Maps, wherein there are more than one mipmap surface attached
  3.  * to the root surface.
  4.  * This caps bit is ignored by CreateSurface
  5.  *)
  6.   DDSCAPS2_MIPMAPSUBLEVEL                 = $00010000;
  7.   {$EXTERNALSYM DDSCAPS2_MIPMAPSUBLEVEL}
  8. (* This flag indicates that the texture should be managed by D3D only *)
  9.   DDSCAPS2_D3DTEXTUREMANAGE               = $00020000;
  10.   {$EXTERNALSYM DDSCAPS2_D3DTEXTUREMANAGE}
  11. (* This flag indicates that the managed surface can be safely lost *)
  12.   DDSCAPS2_DONOTPERSIST                   = $00040000;
  13.   {$EXTERNALSYM DDSCAPS2_DONOTPERSIST}
  14. (* indicates that this surface is part of a stereo flipping chain *)
  15.   DDSCAPS2_STEREOSURFACELEFT              = $00080000;
  16.   {$EXTERNALSYM DDSCAPS2_STEREOSURFACELEFT}
  17. (*
  18.  * Indicates that the surface is a volume.
  19.  * Can be combined with DDSCAPS_MIPMAP to indicate a multi-level volume
  20.  *)
  21.   DDSCAPS2_VOLUME                         = $00200000;
  22.   {$EXTERNALSYM DDSCAPS2_VOLUME}
  23. (*
  24.  * Indicates that the surface may be locked multiple times by the application.
  25.  * This cap cannot be used with DDSCAPS2_OPAQUE.
  26.  *)
  27.   DDSCAPS2_NOTUSERLOCKABLE                = $00400000;
  28.   {$EXTERNALSYM DDSCAPS2_NOTUSERLOCKABLE}
  29. (*
  30.  * Indicates that the vertex buffer data can be used to render points and
  31.  * point sprites.
  32.  *)
  33.   DDSCAPS2_POINTS                         = $00800000;
  34.   {$EXTERNALSYM DDSCAPS2_POINTS}
  35. (*
  36.  * Indicates that the vertex buffer data can be used to render rt pactches.
  37.  *)
  38.   DDSCAPS2_RTPATCHES                      = $01000000;
  39.   {$EXTERNALSYM DDSCAPS2_RTPATCHES}
  40. (*
  41.  * Indicates that the vertex buffer data can be used to render n patches.
  42.  *)
  43.   DDSCAPS2_NPATCHES                       = $02000000;
  44.   {$EXTERNALSYM DDSCAPS2_NPATCHES}
  45. (*
  46.  * This bit is reserved for internal use
  47.  *)
  48.   DDSCAPS2_RESERVED3                      = $04000000;
  49.   {$EXTERNALSYM DDSCAPS2_RESERVED3}
  50. (*
  51.  * Indicates that the contents of the backbuffer do not have to be preserved
  52.  * the contents of the backbuffer after they are presented.
  53.  *)
  54.   DDSCAPS2_DISCARDBACKBUFFER              = $10000000;
  55.   {$EXTERNALSYM DDSCAPS2_DISCARDBACKBUFFER}
  56. (*
  57.  * Indicates that all surfaces in this creation chain should be given an alpha channel.
  58.  * This flag will be set on primary surface chains that may have no explicit pixel format
  59.  * (and thus take on the format of the current display mode).
  60.  * The driver should infer that all these surfaces have a format having an alpha channel.
  61.  * (e.g. assume D3DFMT_A8R8G8B8 if the display mode is x888.)
  62.  *)
  63.   DDSCAPS2_ENABLEALPHACHANNEL             = $20000000;
  64.   {$EXTERNALSYM DDSCAPS2_ENABLEALPHACHANNEL}
  65. (*
  66.  * This is a mask that indicates the set of bits that may be set
  67.  * at createsurface time to indicate number of samples per pixel
  68.  * when multisampling
  69.  *)
  70.   DDSCAPS3_MULTISAMPLE_MASK               = $0000001F;
  71.   {$EXTERNALSYM DDSCAPS3_MULTISAMPLE_MASK}
  72.  (****************************************************************************
  73.  *
  74.  * DIRECTDRAW DRIVER CAPABILITY FLAGS
  75.  *
  76.  ****************************************************************************)
  77. (*
  78.  * Display hardware has 3D acceleration.
  79.  *)
  80.   DDCAPS_3D                       = $00000001;
  81.   {$EXTERNALSYM DDCAPS_3D}
  82. (*
  83.  * Indicates that DirectDraw will support only dest rectangles that are aligned
  84.  * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively.
  85.  * READ ONLY.
  86.  *)
  87.   DDCAPS_ALIGNBOUNDARYDEST        = $00000002;
  88.   {$EXTERNALSYM DDCAPS_ALIGNBOUNDARYDEST}
  89. (*
  90.  * Indicates that DirectDraw will support only source rectangles  whose sizes in
  91.  * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively.  READ ONLY.
  92.  *)
  93.   DDCAPS_ALIGNSIZEDEST            = $00000004;
  94.   {$EXTERNALSYM DDCAPS_ALIGNSIZEDEST}
  95. (*
  96.  * Indicates that DirectDraw will support only source rectangles that are aligned
  97.  * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively.
  98.  * READ ONLY.
  99.  *)
  100.   DDCAPS_ALIGNBOUNDARYSRC         = $00000008;
  101.   {$EXTERNALSYM DDCAPS_ALIGNBOUNDARYSRC}
  102. (*
  103.  * Indicates that DirectDraw will support only source rectangles  whose sizes in
  104.  * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively.  READ ONLY.
  105.  *)
  106.   DDCAPS_ALIGNSIZESRC             = $00000010;
  107.   {$EXTERNALSYM DDCAPS_ALIGNSIZESRC}
  108. (*
  109.  * Indicates that DirectDraw will create video memory surfaces that have a stride
  110.  * alignment equal to DIRECTDRAWCAPS.dwAlignStride.  READ ONLY.
  111.  *)
  112.   DDCAPS_ALIGNSTRIDE              = $00000020;
  113.   {$EXTERNALSYM DDCAPS_ALIGNSTRIDE}
  114. (*
  115.  * Display hardware is capable of blt operations.
  116.  *)
  117.   DDCAPS_BLT                      = $00000040;
  118.   {$EXTERNALSYM DDCAPS_BLT}
  119. (*
  120.  * Display hardware is capable of asynchronous blt operations.
  121.  *)
  122.   DDCAPS_BLTQUEUE                 = $00000080;
  123.   {$EXTERNALSYM DDCAPS_BLTQUEUE}
  124. (*
  125.  * Display hardware is capable of color space conversions during the blt operation.
  126.  *)
  127.   DDCAPS_BLTFOURCC                = $00000100;
  128.   {$EXTERNALSYM DDCAPS_BLTFOURCC}
  129. (*
  130.  * Display hardware is capable of stretching during blt operations.
  131.  *)
  132.   DDCAPS_BLTSTRETCH               = $00000200;
  133.   {$EXTERNALSYM DDCAPS_BLTSTRETCH}
  134. (*
  135.  * Display hardware is shared with GDI.
  136.  *)
  137.   DDCAPS_GDI                      = $00000400;
  138.   {$EXTERNALSYM DDCAPS_GDI}
  139. (*
  140.  * Display hardware can overlay.
  141.  *)
  142.   DDCAPS_OVERLAY                  = $00000800;
  143.   {$EXTERNALSYM DDCAPS_OVERLAY}
  144. (*
  145.  * Set if display hardware supports overlays but can not clip them.
  146.  *)
  147.   DDCAPS_OVERLAYCANTCLIP          = $00001000;
  148.   {$EXTERNALSYM DDCAPS_OVERLAYCANTCLIP}
  149. (*
  150.  * Indicates that overlay hardware is capable of color space conversions during
  151.  * the overlay operation.
  152.  *)
  153.   DDCAPS_OVERLAYFOURCC            = $00002000;
  154.   {$EXTERNALSYM DDCAPS_OVERLAYFOURCC}
  155. (*
  156.  * Indicates that stretching can be done by the overlay hardware.
  157.  *)
  158.   DDCAPS_OVERLAYSTRETCH           = $00004000;
  159.   {$EXTERNALSYM DDCAPS_OVERLAYSTRETCH}
  160. (*
  161.  * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces
  162.  * other than the primary surface.
  163.  *)
  164.   DDCAPS_PALETTE                  = $00008000;
  165.   {$EXTERNALSYM DDCAPS_PALETTE}
  166. (*
  167.  * Indicates that palette changes can be syncd with the veritcal refresh.
  168.  *)
  169.   DDCAPS_PALETTEVSYNC             = $00010000;
  170.   {$EXTERNALSYM DDCAPS_PALETTEVSYNC}
  171. (*
  172.  * Display hardware can return the current scan line.
  173.  *)
  174.   DDCAPS_READSCANLINE             = $00020000;
  175.   {$EXTERNALSYM DDCAPS_READSCANLINE}
  176. (*
  177.  * This flag used to bo DDCAPS_STEREOVIEW, which is now obsolete
  178.  *)
  179.   DDCAPS_RESERVED1                = $00040000;
  180.   {$EXTERNALSYM DDCAPS_RESERVED1}
  181. (*
  182.  * Display hardware is capable of generating a vertical blank interrupt.
  183.  *)
  184.   DDCAPS_VBI                      = $00080000;
  185.   {$EXTERNALSYM DDCAPS_VBI}
  186. (*
  187.  * Supports the use of z buffers with blt operations.
  188.  *)
  189.   DDCAPS_ZBLTS                    = $00100000;
  190.   {$EXTERNALSYM DDCAPS_ZBLTS}
  191. (*
  192.  * Supports Z Ordering of overlays.
  193.  *)
  194.   DDCAPS_ZOVERLAYS                = $00200000;
  195.   {$EXTERNALSYM DDCAPS_ZOVERLAYS}
  196. (*
  197.  * Supports color key
  198.  *)
  199.   DDCAPS_COLORKEY                 = $00400000;
  200.   {$EXTERNALSYM DDCAPS_COLORKEY}
  201. (*
  202.  * Supports alpha surfaces
  203.  *)
  204.   DDCAPS_ALPHA                    = $00800000;
  205.   {$EXTERNALSYM DDCAPS_ALPHA}
  206. (*
  207.  * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set)
  208.  *)
  209.   DDCAPS_COLORKEYHWASSIST         = $01000000;
  210.   {$EXTERNALSYM DDCAPS_COLORKEYHWASSIST}
  211. (*
  212.  * no hardware support at all
  213.  *)
  214.   DDCAPS_NOHARDWARE               = $02000000;
  215.   {$EXTERNALSYM DDCAPS_NOHARDWARE}
  216. (*
  217.  * Display hardware is capable of color fill with bltter
  218.  *)
  219.   DDCAPS_BLTCOLORFILL             = $04000000;
  220.   {$EXTERNALSYM DDCAPS_BLTCOLORFILL}
  221. (*
  222.  * Display hardware is bank switched, and potentially very slow at
  223.  * random access to VRAM.
  224.  *)
  225.   DDCAPS_BANKSWITCHED             = $08000000;
  226.   {$EXTERNALSYM DDCAPS_BANKSWITCHED}
  227. (*
  228.  * Display hardware is capable of depth filling Z-buffers with bltter
  229.  *)
  230.   DDCAPS_BLTDEPTHFILL             = $10000000;
  231.   {$EXTERNALSYM DDCAPS_BLTDEPTHFILL}
  232. (*
  233.  * Display hardware is capable of clipping while bltting.
  234.  *)
  235.   DDCAPS_CANCLIP                  = $20000000;
  236.   {$EXTERNALSYM DDCAPS_CANCLIP}
  237. (*
  238.  * Display hardware is capable of clipping while stretch bltting.
  239.  *)
  240.   DDCAPS_CANCLIPSTRETCHED         = $40000000;
  241.   {$EXTERNALSYM DDCAPS_CANCLIPSTRETCHED}
  242. (*
  243.  * Display hardware is capable of bltting to or from system memory
  244.  *)
  245.   DDCAPS_CANBLTSYSMEM             = $80000000;
  246.   {$EXTERNALSYM DDCAPS_CANBLTSYSMEM}
  247.  (****************************************************************************
  248.  *
  249.  * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2)
  250.  *
  251.  ****************************************************************************)
  252. (*
  253.  * Display hardware is certified
  254.  *)
  255.   DDCAPS2_CERTIFIED               = $00000001;
  256.   {$EXTERNALSYM DDCAPS2_CERTIFIED}
  257. (*
  258.  * Driver cannot interleave 2D operations (lock and blt) to surfaces with
  259.  * Direct3D rendering operations between calls to BeginScene() and EndScene()
  260.  *)
  261.   DDCAPS2_NO2DDURING3DSCENE       = $00000002;
  262.   {$EXTERNALSYM DDCAPS2_NO2DDURING3DSCENE}
  263. (*
  264.  * Display hardware contains a video port
  265.  *)
  266.   DDCAPS2_VIDEOPORT           = $00000004;
  267.   {$EXTERNALSYM DDCAPS2_VIDEOPORT}
  268. (*
  269.  * The overlay can be automatically flipped according to the video port
  270.  * VSYNCs, providing automatic doubled buffered display of video port
  271.  * data using an overlay
  272.  *)
  273.   DDCAPS2_AUTOFLIPOVERLAY   = $00000008;
  274.   {$EXTERNALSYM DDCAPS2_AUTOFLIPOVERLAY}
  275. (*
  276.  * Overlay can display each field of interlaced data individually while
  277.  * it is interleaved in memory without causing jittery artifacts.
  278.  *)
  279.   DDCAPS2_CANBOBINTERLEAVED   = $00000010;
  280.   {$EXTERNALSYM DDCAPS2_CANBOBINTERLEAVED}
  281. (*
  282.  * Overlay can display each field of interlaced data individually while
  283.  * it is not interleaved in memory without causing jittery artifacts.
  284.  *)
  285.   DDCAPS2_CANBOBNONINTERLEAVED   = $00000020;
  286.   {$EXTERNALSYM DDCAPS2_CANBOBNONINTERLEAVED}
  287. (*
  288.  * The overlay surface contains color controls (brightness, sharpness, etc.)
  289.  *)
  290.   DDCAPS2_COLORCONTROLOVERLAY   = $00000040;
  291.   {$EXTERNALSYM DDCAPS2_COLORCONTROLOVERLAY}
  292. (*
  293.  * The primary surface contains color controls (gamma, etc.)
  294.  *)
  295.   DDCAPS2_COLORCONTROLPRIMARY     = $00000080;
  296.   {$EXTERNALSYM DDCAPS2_COLORCONTROLPRIMARY}
  297. (*
  298.  * RGBZ -> RGB supported for 16:16 RGB:Z
  299.  *)
  300.   DDCAPS2_CANDROPZ16BIT   = $00000100;
  301.   {$EXTERNALSYM DDCAPS2_CANDROPZ16BIT}
  302. (*
  303.  * Driver supports non-local video memory.
  304.  *)
  305.   DDCAPS2_NONLOCALVIDMEM          = $00000200;
  306.   {$EXTERNALSYM DDCAPS2_NONLOCALVIDMEM}
  307. (*
  308.  * Dirver supports non-local video memory but has different capabilities for
  309.  * non-local video memory surfaces. If this bit is set then so must
  310.  * DDCAPS2_NONLOCALVIDMEM.
  311.  *)
  312.   DDCAPS2_NONLOCALVIDMEMCAPS      = $00000400;
  313.   {$EXTERNALSYM DDCAPS2_NONLOCALVIDMEMCAPS}
  314. (*
  315.  * Driver neither requires nor prefers surfaces to be pagelocked when performing
  316.  * blts involving system memory surfaces
  317.  *)
  318.   DDCAPS2_NOPAGELOCKREQUIRED      = $00000800;
  319.   {$EXTERNALSYM DDCAPS2_NOPAGELOCKREQUIRED}
  320. (*
  321.  * Driver can create surfaces which are wider than the primary surface
  322.  *)
  323.   DDCAPS2_WIDESURFACES            = $00001000;
  324.   {$EXTERNALSYM DDCAPS2_WIDESURFACES}
  325. (*
  326.  * Driver supports bob without using a video port by handling the
  327.  * DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip.
  328.  *)
  329.   DDCAPS2_CANFLIPODDEVEN          = $00002000;
  330.   {$EXTERNALSYM DDCAPS2_CANFLIPODDEVEN}
  331. (*
  332.  * Driver supports bob using hardware
  333.  *)
  334.   DDCAPS2_CANBOBHARDWARE          = $00004000;
  335.   {$EXTERNALSYM DDCAPS2_CANBOBHARDWARE}
  336. (*
  337.  * Driver supports bltting any FOURCC surface to another surface of the same FOURCC
  338.  *)
  339.   DDCAPS2_COPYFOURCC              = $00008000;
  340.   {$EXTERNALSYM DDCAPS2_COPYFOURCC}
  341. (*
  342.  * Driver supports loadable gamma ramps for the primary surface
  343.  *)
  344.   DDCAPS2_PRIMARYGAMMA            = $00020000;
  345.   {$EXTERNALSYM DDCAPS2_PRIMARYGAMMA}
  346. (*
  347.  * Driver can render in windowed mode.
  348.  *)
  349.   DDCAPS2_CANRENDERWINDOWED       = $00080000;
  350.   {$EXTERNALSYM DDCAPS2_CANRENDERWINDOWED}
  351. (*
  352.  * A calibrator is available to adjust the gamma ramp according to the
  353.  * physical display properties so that the result will be identical on
  354.  * all calibrated systems.
  355.  *)
  356.   DDCAPS2_CANCALIBRATEGAMMA       = $00100000;
  357.   {$EXTERNALSYM DDCAPS2_CANCALIBRATEGAMMA}
  358. (*
  359.  * Indicates that the driver will respond to DDFLIP_INTERVALn flags
  360.  *)
  361.   DDCAPS2_FLIPINTERVAL            = $00200000;
  362.   {$EXTERNALSYM DDCAPS2_FLIPINTERVAL}
  363. (*
  364.  * Indicates that the driver will respond to DDFLIP_NOVSYNC
  365.  *)
  366.    DDCAPS2_FLIPNOVSYNC            = $00400000;
  367.    {$EXTERNALSYM DDCAPS2_FLIPNOVSYNC}
  368. (*
  369.  * Driver supports management of video memory, if this flag is ON,
  370.  * driver manages the texture if requested with DDSCAPS2_TEXTUREMANAGE on
  371.  * DirectX manages the texture if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on
  372.  *)
  373.   DDCAPS2_CANMANAGETEXTURE        = $00800000;
  374.   {$EXTERNALSYM DDCAPS2_CANMANAGETEXTURE}
  375. (*
  376.  * The Direct3D texture manager uses this cap to decide whether to put managed
  377.  * surfaces in non-local video memory. If the cap is set, the texture manager will
  378.  * put managed surfaces in non-local vidmem. Drivers that cannot texture from
  379.  * local vidmem SHOULD NOT set this cap.
  380.  *)
  381.   DDCAPS2_TEXMANINNONLOCALVIDMEM  = $01000000;
  382.   {$EXTERNALSYM DDCAPS2_TEXMANINNONLOCALVIDMEM}
  383. (*
  384.  * Indicates that the driver supports DX7 type of stereo in at least one mode (which may
  385.  * not necessarily be the current mode). Applications should use IDirectDraw7 (or higher)
  386.  * ::EnumDisplayModes and check the DDSURFACEDESC.ddsCaps.dwCaps2 field for the presence of
  387.  * DDSCAPS2_STEREOSURFACELEFT to check if a particular mode supports stereo. The application
  388.  * can also use IDirectDraw7(or higher)::GetDisplayMode to check the current mode.
  389.  *)
  390.   DDCAPS2_STEREO                  = $02000000;
  391.   {$EXTERNALSYM DDCAPS2_STEREO}
  392. (*
  393.  * This caps bit is intended for internal DirectDraw use.
  394.  * -It is only valid if DDCAPS2_NONLOCALVIDMEMCAPS is set.
  395.  * -If this bit is set, then DDCAPS_CANBLTSYSMEM MUST be set by the driver (and
  396.  *  all the assoicated system memory blt caps must be correct).
  397.  * -It implies that the system->video blt caps in DDCAPS also apply to system to
  398.  *  nonlocal blts. I.e. the dwSVBCaps, dwSVBCKeyCaps, dwSVBFXCaps and dwSVBRops
  399.  *  members of DDCAPS (DDCORECAPS) are filled in correctly.
  400.  * -Any blt from system to nonlocal memory that matches these caps bits will
  401.  *  be passed to the driver.
  402.  *
  403.  * NOTE: This is intended to enable the driver itself to do efficient reordering
  404.  * of textures. This is NOT meant to imply that hardware can write into AGP memory.
  405.  * This operation is not currently supported.
  406.  *)
  407.   DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL   = $04000000;
  408.   {$EXTERNALSYM DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL}
  409. (*
  410.  * was DDCAPS2_PUREHAL
  411.  *)
  412.   DDCAPS2_RESERVED1                     = $08000000;
  413.   {$EXTERNALSYM DDCAPS2_RESERVED1}
  414. (*
  415.  * Driver supports management of video memory, if this flag is ON,
  416.  * driver manages the resource if requested with DDSCAPS2_TEXTUREMANAGE on
  417.  * DirectX manages the resource if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on
  418.  *)
  419.   DDCAPS2_CANMANAGERESOURCE             = $10000000;
  420.   {$EXTERNALSYM DDCAPS2_CANMANAGERESOURCE}
  421. (*
  422.  * Driver supports dynamic textures. This will allow the application to set
  423.  * D3DUSAGE_DYNAMIC (DDSCAPS2_HINTDYNAMIC for drivers) at texture create time.
  424.  * Video memory dynamic textures WILL be lockable by applications. It is
  425.  * expected that these locks will be very efficient (which implies that the
  426.  * driver should always maintain a linear copy, a pointer to which can be
  427.  * quickly handed out to the application).
  428.  *)
  429.   DDCAPS2_DYNAMICTEXTURES               = $20000000;
  430.   {$EXTERNALSYM DDCAPS2_DYNAMICTEXTURES}
  431. (****************************************************************************
  432.  *
  433.  * DIRECTDRAW FX ALPHA CAPABILITY FLAGS
  434.  *
  435.  ****************************************************************************)
  436. (*
  437.  * Supports alpha blending around the edge of a source color keyed surface.
  438.  * For Blt.
  439.  *)
  440.   DDFXALPHACAPS_BLTALPHAEDGEBLEND         = $00000001;
  441.   {$EXTERNALSYM DDFXALPHACAPS_BLTALPHAEDGEBLEND}
  442. (*
  443.  * Supports alpha information in the pixel format.  The bit depth of alpha
  444.  * information in the pixel format can be 1,2,4, or 8.  The alpha value becomes
  445.  * more opaque as the alpha value increases.  (0 is transparent.)
  446.  * For Blt.
  447.  *)
  448.   DDFXALPHACAPS_BLTALPHAPIXELS            = $00000002;
  449.   {$EXTERNALSYM DDFXALPHACAPS_BLTALPHAPIXELS}
  450. (*
  451.  * Supports alpha information in the pixel format.  The bit depth of alpha
  452.  * information in the pixel format can be 1,2,4, or 8.  The alpha value
  453.  * becomes more transparent as the alpha value increases.  (0 is opaque.)
  454.  * This flag can only be set if DDCAPS_ALPHA is set.
  455.  * For Blt.
  456.  *)
  457.   DDFXALPHACAPS_BLTALPHAPIXELSNEG         = $00000004;
  458.   {$EXTERNALSYM DDFXALPHACAPS_BLTALPHAPIXELSNEG}
  459. (*
  460.  * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
  461.  * 1,2,4, or 8.  The alpha value becomes more opaque as the alpha value increases.
  462.  * (0 is transparent.)
  463.  * For Blt.
  464.  *)
  465.   DDFXALPHACAPS_BLTALPHASURFACES          = $00000008;
  466.   {$EXTERNALSYM DDFXALPHACAPS_BLTALPHASURFACES}
  467. (*
  468.  * The depth of the alpha channel data can range can be 1,2,4, or 8.
  469.  * The NEG suffix indicates that this alpha channel becomes more transparent
  470.  * as the alpha value increases. (0 is opaque.)  This flag can only be set if
  471.  * DDCAPS_ALPHA is set.
  472.  * For Blt.
  473.  *)
  474.   DDFXALPHACAPS_BLTALPHASURFACESNEG       = $00000010;
  475.   {$EXTERNALSYM DDFXALPHACAPS_BLTALPHASURFACESNEG}
  476. (*
  477.  * Supports alpha blending around the edge of a source color keyed surface.
  478.  * For Overlays.
  479.  *)
  480.   DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND     = $00000020;
  481.   {$EXTERNALSYM DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND}
  482. (*
  483.  * Supports alpha information in the pixel format.  The bit depth of alpha
  484.  * information in the pixel format can be 1,2,4, or 8.  The alpha value becomes
  485.  * more opaque as the alpha value increases.  (0 is transparent.)
  486.  * For Overlays.
  487.  *)
  488.   DDFXALPHACAPS_OVERLAYALPHAPIXELS        = $00000040;
  489.   {$EXTERNALSYM DDFXALPHACAPS_OVERLAYALPHAPIXELS}
  490. (*
  491.  * Supports alpha information in the pixel format.  The bit depth of alpha
  492.  * information in the pixel format can be 1,2,4, or 8.  The alpha value
  493.  * becomes more transparent as the alpha value increases.  (0 is opaque.)
  494.  * This flag can only be set if DDCAPS_ALPHA is set.
  495.  * For Overlays.
  496.  *)
  497.   DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG     = $00000080;
  498.   {$EXTERNALSYM DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG}
  499. (*
  500.  * Supports alpha only surfaces.  The bit depth of an alpha only surface can be
  501.  * 1,2,4, or 8.  The alpha value becomes more opaque as the alpha value increases.
  502.  * (0 is transparent.)
  503.  * For Overlays.
  504.  *)
  505.   DDFXALPHACAPS_OVERLAYALPHASURFACES      = $00000100;
  506.   {$EXTERNALSYM DDFXALPHACAPS_OVERLAYALPHASURFACES}
  507. (*
  508.  * The depth of the alpha channel data can range can be 1,2,4, or 8.
  509.  * The NEG suffix indicates that this alpha channel becomes more transparent
  510.  * as the alpha value increases. (0 is opaque.)  This flag can only be set if
  511.  * DDCAPS_ALPHA is set.
  512.  * For Overlays.
  513.  *)
  514.   DDFXALPHACAPS_OVERLAYALPHASURFACESNEG   = $00000200;
  515.   {$EXTERNALSYM DDFXALPHACAPS_OVERLAYALPHASURFACESNEG}
  516. (****************************************************************************
  517.  *
  518.  * DIRECTDRAW FX CAPABILITY FLAGS
  519.  *
  520.  ****************************************************************************)
  521. (*
  522.  * Uses arithmetic operations to stretch and shrink surfaces during blt
  523.  * rather than pixel doubling techniques.  Along the Y axis.
  524.  *)
  525.   DDFXCAPS_BLTARITHSTRETCHY       = $00000020;
  526.   {$EXTERNALSYM DDFXCAPS_BLTARITHSTRETCHY}
  527. (*
  528.  * Uses arithmetic operations to stretch during blt
  529.  * rather than pixel doubling techniques.  Along the Y axis. Only
  530.  * works for x1, x2, etc.
  531.  *)
  532.   DDFXCAPS_BLTARITHSTRETCHYN      = $00000010;
  533.   {$EXTERNALSYM DDFXCAPS_BLTARITHSTRETCHYN}
  534. (*
  535.  * Supports mirroring left to right in blt.
  536.  *)
  537.   DDFXCAPS_BLTMIRRORLEFTRIGHT     = $00000040;
  538.   {$EXTERNALSYM DDFXCAPS_BLTMIRRORLEFTRIGHT}
  539. (*
  540.  * Supports mirroring top to bottom in blt.
  541.  *)
  542.   DDFXCAPS_BLTMIRRORUPDOWN        = $00000080;
  543.   {$EXTERNALSYM DDFXCAPS_BLTMIRRORUPDOWN}
  544. (*
  545.  * Supports arbitrary rotation for blts.
  546.  *)
  547.   DDFXCAPS_BLTROTATION            = $00000100;
  548.   {$EXTERNALSYM DDFXCAPS_BLTROTATION}
  549. (*
  550.  * Supports 90 degree rotations for blts.
  551.  *)
  552.    DDFXCAPS_BLTROTATION90          = $00000200;
  553.    {$EXTERNALSYM DDFXCAPS_BLTROTATION90}
  554. (*
  555.  * DirectDraw supports arbitrary shrinking of a surface along the
  556.  * x axis (horizontal direction) for blts.
  557.  *)
  558.   DDFXCAPS_BLTSHRINKX             = $00000400;
  559.   {$EXTERNALSYM DDFXCAPS_BLTSHRINKX}
  560. (*
  561.  * DirectDraw supports integer shrinking (1x,2x,) of a surface
  562.  * along the x axis (horizontal direction) for blts.
  563.  *)
  564.   DDFXCAPS_BLTSHRINKXN            = $00000800;
  565.   {$EXTERNALSYM DDFXCAPS_BLTSHRINKXN}
  566. (*
  567.  * DirectDraw supports arbitrary shrinking of a surface along the
  568.  * y axis (horizontal direction) for blts.
  569.  *)
  570.   DDFXCAPS_BLTSHRINKY             = $00001000;
  571.   {$EXTERNALSYM DDFXCAPS_BLTSHRINKY}
  572. (*
  573.  * DirectDraw supports integer shrinking (1x,2x,) of a surface
  574.  * along the y axis (vertical direction) for blts.
  575.  *)
  576.   DDFXCAPS_BLTSHRINKYN            = $00002000;
  577.   {$EXTERNALSYM DDFXCAPS_BLTSHRINKYN}
  578. (*
  579.  * DirectDraw supports arbitrary stretching of a surface along the
  580.  * x axis (horizontal direction) for blts.
  581.  *)
  582.   DDFXCAPS_BLTSTRETCHX            = $00004000;
  583.   {$EXTERNALSYM DDFXCAPS_BLTSTRETCHX}
  584. (*
  585.  * DirectDraw supports integer stretching (1x,2x,) of a surface
  586.  * along the x axis (horizontal direction) for blts.
  587.  *)
  588.   DDFXCAPS_BLTSTRETCHXN           = $00008000;
  589.   {$EXTERNALSYM DDFXCAPS_BLTSTRETCHXN}
  590. (*
  591.  * DirectDraw supports arbitrary stretching of a surface along the
  592.  * y axis (horizontal direction) for blts.
  593.  *)
  594.   DDFXCAPS_BLTSTRETCHY            = $00010000;
  595.   {$EXTERNALSYM DDFXCAPS_BLTSTRETCHY}
  596. (*
  597.  * DirectDraw supports integer stretching (1x,2x,) of a surface
  598.  * along the y axis (vertical direction) for blts.
  599.  *)
  600.   DDFXCAPS_BLTSTRETCHYN           = $00020000;
  601.   {$EXTERNALSYM DDFXCAPS_BLTSTRETCHYN}
  602. (*
  603.  * Uses arithmetic operations to stretch and shrink surfaces during
  604.  * overlay rather than pixel doubling techniques.  Along the Y axis
  605.  * for overlays.
  606.  *)
  607.   DDFXCAPS_OVERLAYARITHSTRETCHY   = $00040000;
  608.   {$EXTERNALSYM DDFXCAPS_OVERLAYARITHSTRETCHY}
  609. (*
  610.  * Uses arithmetic operations to stretch surfaces during
  611.  * overlay rather than pixel doubling techniques.  Along the Y axis
  612.  * for overlays. Only works for x1, x2, etc.
  613.  *)
  614.   DDFXCAPS_OVERLAYARITHSTRETCHYN  = $00000008;
  615.   {$EXTERNALSYM DDFXCAPS_OVERLAYARITHSTRETCHYN}
  616. (*
  617.  * DirectDraw supports arbitrary shrinking of a surface along the
  618.  * x axis (horizontal direction) for overlays.
  619.  *)
  620.   DDFXCAPS_OVERLAYSHRINKX         = $00080000;
  621.   {$EXTERNALSYM DDFXCAPS_OVERLAYSHRINKX}
  622. (*
  623.  * DirectDraw supports integer shrinking (1x,2x,) of a surface
  624.  * along the x axis (horizontal direction) for overlays.
  625.  *)
  626.   DDFXCAPS_OVERLAYSHRINKXN        = $00100000;
  627.   {$EXTERNALSYM DDFXCAPS_OVERLAYSHRINKXN}
  628. (*
  629.  * DirectDraw supports arbitrary shrinking of a surface along the
  630.  * y axis (horizontal direction) for overlays.
  631.  *)
  632.   DDFXCAPS_OVERLAYSHRINKY         = $00200000;
  633.   {$EXTERNALSYM DDFXCAPS_OVERLAYSHRINKY}
  634. (*
  635.  * DirectDraw supports integer shrinking (1x,2x,) of a surface
  636.  * along the y axis (vertical direction) for overlays.
  637.  *)
  638.   DDFXCAPS_OVERLAYSHRINKYN        = $00400000;
  639.   {$EXTERNALSYM DDFXCAPS_OVERLAYSHRINKYN}
  640. (*
  641.  * DirectDraw supports arbitrary stretching of a surface along the
  642.  * x axis (horizontal direction) for overlays.
  643.  *)
  644.   DDFXCAPS_OVERLAYSTRETCHX        = $00800000;
  645.   {$EXTERNALSYM DDFXCAPS_OVERLAYSTRETCHX}
  646. (*
  647.  * DirectDraw supports integer stretching (1x,2x,) of a surface
  648.  * along the x axis (horizontal direction) for overlays.
  649.  *)
  650.   DDFXCAPS_OVERLAYSTRETCHXN       = $01000000;
  651.   {$EXTERNALSYM DDFXCAPS_OVERLAYSTRETCHXN}
  652. (*
  653.  * DirectDraw supports arbitrary stretching of a surface along the
  654.  * y axis (horizontal direction) for overlays.
  655.  *)
  656.   DDFXCAPS_OVERLAYSTRETCHY        = $02000000;
  657.   {$EXTERNALSYM DDFXCAPS_OVERLAYSTRETCHY}
  658. (*
  659.  * DirectDraw supports integer stretching (1x,2x,) of a surface
  660.  * along the y axis (vertical direction) for overlays.
  661.  *)
  662.   DDFXCAPS_OVERLAYSTRETCHYN       = $04000000;
  663.   {$EXTERNALSYM DDFXCAPS_OVERLAYSTRETCHYN}
  664. (*
  665.  * DirectDraw supports mirroring of overlays across the vertical axis
  666.  *)
  667.   DDFXCAPS_OVERLAYMIRRORLEFTRIGHT = $08000000;
  668.   {$EXTERNALSYM DDFXCAPS_OVERLAYMIRRORLEFTRIGHT}
  669. (*
  670.  * DirectDraw supports mirroring of overlays across the horizontal axis
  671.  *)
  672.   DDFXCAPS_OVERLAYMIRRORUPDOWN    = $10000000;
  673.   {$EXTERNALSYM DDFXCAPS_OVERLAYMIRRORUPDOWN}
  674. (*
  675.  * DirectDraw supports deinterlacing of overlay surfaces
  676.  *)
  677.   DDFXCAPS_OVERLAYDEINTERLACE   = $20000000;
  678.   {$EXTERNALSYM DDFXCAPS_OVERLAYDEINTERLACE}
  679. (*
  680.  * Driver can do alpha blending for blits.
  681.  *)
  682.   DDFXCAPS_BLTALPHA    = $00000001;
  683.   {$EXTERNALSYM DDFXCAPS_BLTALPHA}
  684. (*
  685.  * Driver can do geometric transformations (or warps) for blits.
  686.  *)
  687.   DDFXCAPS_BLTTRANSFORM   = $00000002;
  688.   {$EXTERNALSYM DDFXCAPS_BLTTRANSFORM}
  689. (*
  690.  * Driver can do surface-reconstruction filtering for warped blits.
  691.  *)
  692.   DDFXCAPS_BLTFILTER            = DDFXCAPS_BLTARITHSTRETCHY;
  693.   {$EXTERNALSYM DDFXCAPS_BLTFILTER}
  694. (*
  695.  * Driver can do alpha blending for overlays.
  696.  *)
  697.   DDFXCAPS_OVERLAYALPHA    = $00000004;
  698.   {$EXTERNALSYM DDFXCAPS_OVERLAYALPHA}
  699. (*
  700.  * Driver can do geometric transformations (or warps) for overlays.
  701.  *)
  702.   DDFXCAPS_OVERLAYTRANSFORM    = $20000000;
  703.   {$EXTERNALSYM DDFXCAPS_OVERLAYTRANSFORM}
  704. (*
  705.  * Driver can do surface-reconstruction filtering for warped overlays.
  706.  *)
  707.   DDFXCAPS_OVERLAYFILTER    = DDFXCAPS_OVERLAYARITHSTRETCHY;
  708.   {$EXTERNALSYM DDFXCAPS_OVERLAYFILTER}
  709. (****************************************************************************
  710.  *
  711.  * DIRECTDRAW STEREO VIEW CAPABILITIES
  712.  *
  713.  ****************************************************************************)
  714. (*
  715.  * This flag used to be DDSVCAPS_ENIGMA, which is now obsolete
  716.  *)
  717.   DDSVCAPS_RESERVED1              = $00000001;
  718.   {$EXTERNALSYM DDSVCAPS_RESERVED1}
  719. (*
  720.  * This flag used to be DDSVCAPS_FLICKER, which is now obsolete
  721.  *)
  722.   DDSVCAPS_RESERVED2              = $00000002;
  723.   {$EXTERNALSYM DDSVCAPS_RESERVED2}
  724. (*
  725.  * This flag used to be DDSVCAPS_REDBLUE, which is now obsolete
  726.  *)
  727.   DDSVCAPS_RESERVED3              = $00000004;
  728.   {$EXTERNALSYM DDSVCAPS_RESERVED3}
  729. (*
  730.  * This flag used to be DDSVCAPS_SPLIT, which is now obsolete
  731.  *)
  732.   DDSVCAPS_RESERVED4              = $00000008;
  733.   {$EXTERNALSYM DDSVCAPS_RESERVED4}
  734. (*
  735.  * The stereo view is accomplished with switching technology
  736.  *)
  737.   DDSVCAPS_STEREOSEQUENTIAL       = $00000010;
  738.   {$EXTERNALSYM DDSVCAPS_STEREOSEQUENTIAL}
  739. (****************************************************************************
  740.  *
  741.  * DIRECTDRAWPALETTE CAPABILITIES
  742.  *
  743.  ****************************************************************************)
  744. (*
  745.  * Index is 4 bits.  There are sixteen color entries in the palette table.
  746.  *)
  747.   DDPCAPS_4BIT                    = $00000001;
  748.   {$EXTERNALSYM DDPCAPS_4BIT}
  749. (*
  750.  * Index is onto a 8 bit color index.  This field is only valid with the
  751.  * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target
  752.  * surface is in 8bpp. Each color entry is one byte long and is an index
  753.  * into destination surface's 8bpp palette.
  754.  *)
  755.   DDPCAPS_8BITENTRIES             = $00000002;
  756.   {$EXTERNALSYM DDPCAPS_8BITENTRIES}
  757. (*
  758.  * Index is 8 bits.  There are 256 color entries in the palette table.
  759.  *)
  760.   DDPCAPS_8BIT                    = $00000004;
  761.   {$EXTERNALSYM DDPCAPS_8BIT}
  762. (*
  763.  * Indicates that this DIRECTDRAWPALETTE should use the palette color array
  764.  * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE
  765.  * object.
  766.  * This flag is obsolete. DirectDraw always initializes the color array from
  767.  * the lpDDColorArray parameter. The definition remains for source-level
  768.  * compatibility.
  769.  *)
  770.   DDPCAPS_INITIALIZE              = $00000008;
  771.   {$EXTERNALSYM DDPCAPS_INITIALIZE}
  772. (*
  773.  * This palette is the one attached to the primary surface.  Changing this
  774.  * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified
  775.  * and supported.
  776.  *)
  777.   DDPCAPS_PRIMARYSURFACE          = $00000010;
  778.   {$EXTERNALSYM DDPCAPS_PRIMARYSURFACE}
  779. (*
  780.  * This palette is the one attached to the primary surface left.  Changing
  781.  * this table has immediate effect on the display for the left eye unless
  782.  * DDPSETPAL_VSYNC is specified and supported.
  783.  *)
  784.   DDPCAPS_PRIMARYSURFACELEFT      = $00000020;
  785.   {$EXTERNALSYM DDPCAPS_PRIMARYSURFACELEFT}
  786. (*
  787.  * This palette can have all 256 entries defined
  788.  *)
  789.   DDPCAPS_ALLOW256                = $00000040;
  790.   {$EXTERNALSYM DDPCAPS_ALLOW256}
  791. (*
  792.  * This palette can have modifications to it synced with the monitors
  793.  * refresh rate.
  794.  *)
  795.   DDPCAPS_VSYNC                   = $00000080;
  796.   {$EXTERNALSYM DDPCAPS_VSYNC}
  797. (*
  798.  * Index is 1 bit.  There are two color entries in the palette table.
  799.  *)
  800.   DDPCAPS_1BIT                    = $00000100;
  801.   {$EXTERNALSYM DDPCAPS_1BIT}
  802. (*
  803.  * Index is 2 bit.  There are four color entries in the palette table.
  804.  *)
  805.   DDPCAPS_2BIT                    = $00000200;
  806.   {$EXTERNALSYM DDPCAPS_2BIT}
  807. (*
  808.  * The peFlags member of PALETTEENTRY denotes an 8 bit alpha value
  809.  *)
  810.   DDPCAPS_ALPHA           = $00000400;
  811.   {$EXTERNALSYM DDPCAPS_ALPHA}
  812. (****************************************************************************
  813.  *
  814.  * DIRECTDRAWPALETTE SETENTRY CONSTANTS
  815.  *
  816.  ****************************************************************************)
  817. (****************************************************************************
  818.  *
  819.  * DIRECTDRAWPALETTE GETENTRY CONSTANTS
  820.  *
  821.  ****************************************************************************)
  822. (* 0 is the only legal value *)
  823. (****************************************************************************
  824.  *
  825.  * DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS
  826.  *
  827.  ****************************************************************************)
  828. (*
  829.  * The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData
  830.  * must be set to SizeOf(IUnknown^). DirectDraw will call AddRef through this
  831.  * pointer and Release when the private data is destroyed. This includes when
  832.  * the surface or palette is destroyed before such priovate data is destroyed.
  833.  *)
  834.   DDSPD_IUNKNOWNPOINTER           = $00000001;
  835.   {$EXTERNALSYM DDSPD_IUNKNOWNPOINTER}
  836. (*
  837.  * Private data is only valid for the current state of the object,
  838.  * as determined by the uniqueness value.
  839.  *)
  840.   DDSPD_VOLATILE                  = $00000002;
  841.   {$EXTERNALSYM DDSPD_VOLATILE}
  842. (****************************************************************************
  843.  *
  844.  * DIRECTDRAWSURFACE SETPALETTE CONSTANTS
  845.  *
  846.  ****************************************************************************)
  847. (****************************************************************************
  848.  *
  849.  * DIRECTDRAW BITDEPTH CONSTANTS
  850.  *
  851.  * NOTE:  These are only used to indicate supported bit depths.   These
  852.  * are flags only, they are not to be used as an actual bit depth.   The
  853.  * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual
  854.  * bit depths in a surface or for changing the display mode.
  855.  *
  856.  ****************************************************************************)
  857. (*
  858.  * 1 bit per pixel.
  859.  *)
  860.   DDBD_1                  = $00004000;
  861.   {$EXTERNALSYM DDBD_1}
  862. (*
  863.  * 2 bits per pixel.
  864.  *)
  865.   DDBD_2                  = $00002000;
  866.   {$EXTERNALSYM DDBD_2}
  867. (*
  868.  * 4 bits per pixel.
  869.  *)
  870.   DDBD_4                  = $00001000;
  871.   {$EXTERNALSYM DDBD_4}
  872. (*
  873.  * 8 bits per pixel.
  874.  *)
  875.   DDBD_8                  = $00000800;
  876.   {$EXTERNALSYM DDBD_8}
  877. (*
  878.  * 16 bits per pixel.
  879.  *)
  880.   DDBD_16                 = $00000400;
  881.   {$EXTERNALSYM DDBD_16}
  882. (*
  883.  * 24 bits per pixel.
  884.  *)
  885.   DDBD_24                 = $00000200;
  886.   {$EXTERNALSYM DDBD_24}
  887. (*
  888.  * 32 bits per pixel.
  889.  *)
  890.   DDBD_32                 = $00000100;
  891.   {$EXTERNALSYM DDBD_32}
  892. (****************************************************************************
  893.  *
  894.  * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS
  895.  *
  896.  ****************************************************************************)
  897. (*
  898.  * Set if the structure contains a color space.  Not set if the structure
  899.  * contains a single color key.
  900.  *)
  901.   DDCKEY_COLORSPACE       = $00000001;
  902.   {$EXTERNALSYM DDCKEY_COLORSPACE}
  903. (*
  904.  * Set if the structure specifies a color key or color space which is to be
  905.  * used as a destination color key for blt operations.
  906.  *)
  907.   DDCKEY_DESTBLT          = $00000002;
  908.   {$EXTERNALSYM DDCKEY_DESTBLT}
  909. (*
  910.  * Set if the structure specifies a color key or color space which is to be
  911.  * used as a destination color key for overlay operations.
  912.  *)
  913.   DDCKEY_DESTOVERLAY      = $00000004;
  914.   {$EXTERNALSYM DDCKEY_DESTOVERLAY}
  915. (*
  916.  * Set if the structure specifies a color key or color space which is to be
  917.  * used as a source color key for blt operations.
  918.  *)
  919.   DDCKEY_SRCBLT           = $00000008;
  920.   {$EXTERNALSYM DDCKEY_SRCBLT}
  921. (*
  922.  * Set if the structure specifies a color key or color space which is to be
  923.  * used as a source color key for overlay operations.
  924.  *)
  925.   DDCKEY_SRCOVERLAY       = $00000010;
  926.   {$EXTERNALSYM DDCKEY_SRCOVERLAY}
  927. (****************************************************************************
  928.  *
  929.  * DIRECTDRAW COLOR KEY CAPABILITY FLAGS
  930.  *
  931.  ****************************************************************************)
  932. (*
  933.  * Supports transparent blting using a color key to identify the replaceable
  934.  * bits of the destination surface for RGB colors.
  935.  *)
  936.   DDCKEYCAPS_DESTBLT                      = $00000001;
  937.   {$EXTERNALSYM DDCKEYCAPS_DESTBLT}
  938. (*
  939.  * Supports transparent blting using a color space to identify the replaceable
  940.  * bits of the destination surface for RGB colors.
  941.  *)
  942.   DDCKEYCAPS_DESTBLTCLRSPACE              = $00000002;
  943.   {$EXTERNALSYM DDCKEYCAPS_DESTBLTCLRSPACE}
  944. (*
  945.  * Supports transparent blting using a color space to identify the replaceable
  946.  * bits of the destination surface for YUV colors.
  947.  *)
  948.   DDCKEYCAPS_DESTBLTCLRSPACEYUV           = $00000004;
  949.   {$EXTERNALSYM DDCKEYCAPS_DESTBLTCLRSPACEYUV}
  950. (*
  951.  * Supports transparent blting using a color key to identify the replaceable
  952.  * bits of the destination surface for YUV colors.
  953.  *)
  954.   DDCKEYCAPS_DESTBLTYUV                   = $00000008;
  955.   {$EXTERNALSYM DDCKEYCAPS_DESTBLTYUV}
  956. (*
  957.  * Supports overlaying using colorkeying of the replaceable bits of the surface
  958.  * being overlayed for RGB colors.
  959.  *)
  960.   DDCKEYCAPS_DESTOVERLAY                  = $00000010;
  961.   {$EXTERNALSYM DDCKEYCAPS_DESTOVERLAY}
  962. (*
  963.  * Supports a color space as the color key for the destination for RGB colors.
  964.  *)
  965.   DDCKEYCAPS_DESTOVERLAYCLRSPACE          = $00000020;
  966.   {$EXTERNALSYM DDCKEYCAPS_DESTOVERLAYCLRSPACE}
  967. (*
  968.  * Supports a color space as the color key for the destination for YUV colors.
  969.  *)
  970.   DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV       = $00000040;
  971.   {$EXTERNALSYM DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV}
  972. (*
  973.  * Supports only one active destination color key value for visible overlay
  974.  * surfaces.
  975.  *)
  976.   DDCKEYCAPS_DESTOVERLAYONEACTIVE         = $00000080;
  977.   {$EXTERNALSYM DDCKEYCAPS_DESTOVERLAYONEACTIVE}
  978. (*
  979.  * Supports overlaying using colorkeying of the replaceable bits of the
  980.  * surface being overlayed for YUV colors.
  981.  *)
  982.   DDCKEYCAPS_DESTOVERLAYYUV               = $00000100;
  983.   {$EXTERNALSYM DDCKEYCAPS_DESTOVERLAYYUV}
  984. (*
  985.  * Supports transparent blting using the color key for the source with
  986.  * this surface for RGB colors.
  987.  *)
  988.   DDCKEYCAPS_SRCBLT                       = $00000200;
  989.   {$EXTERNALSYM DDCKEYCAPS_SRCBLT}
  990. (*
  991.  * Supports transparent blting using a color space for the source with
  992.  * this surface for RGB colors.
  993.  *)
  994.   DDCKEYCAPS_SRCBLTCLRSPACE               = $00000400;
  995.   {$EXTERNALSYM DDCKEYCAPS_SRCBLTCLRSPACE}
  996. (*
  997.  * Supports transparent blting using a color space for the source with
  998.  * this surface for YUV colors.
  999.  *)
  1000.   DDCKEYCAPS_SRCBLTCLRSPACEYUV            = $00000800;
  1001.   {$EXTERNALSYM DDCKEYCAPS_SRCBLTCLRSPACEYUV}
  1002. (*
  1003.  * Supports transparent blting using the color key for the source with
  1004.  * this surface for YUV colors.
  1005.  *)
  1006.   DDCKEYCAPS_SRCBLTYUV                    = $00001000;
  1007.   {$EXTERNALSYM DDCKEYCAPS_SRCBLTYUV}
  1008. (*
  1009.  * Supports overlays using the color key for the source with this
  1010.  * overlay surface for RGB colors.
  1011.  *)
  1012.   DDCKEYCAPS_SRCOVERLAY                   = $00002000;
  1013.   {$EXTERNALSYM DDCKEYCAPS_SRCOVERLAY}
  1014. (*
  1015.  * Supports overlays using a color space as the source color key for
  1016.  * the overlay surface for RGB colors.
  1017.  *)
  1018.   DDCKEYCAPS_SRCOVERLAYCLRSPACE           = $00004000;
  1019.   {$EXTERNALSYM DDCKEYCAPS_SRCOVERLAYCLRSPACE}
  1020. (*
  1021.  * Supports overlays using a color space as the source color key for
  1022.  * the overlay surface for YUV colors.
  1023.  *)
  1024.   DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV        = $00008000;
  1025.   {$EXTERNALSYM DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV}
  1026. (*
  1027.  * Supports only one active source color key value for visible
  1028.  * overlay surfaces.
  1029.  *)
  1030.   DDCKEYCAPS_SRCOVERLAYONEACTIVE          = $00010000;
  1031.   {$EXTERNALSYM DDCKEYCAPS_SRCOVERLAYONEACTIVE}
  1032. (*
  1033.  * Supports overlays using the color key for the source with this
  1034.  * overlay surface for YUV colors.
  1035.  *)
  1036.   DDCKEYCAPS_SRCOVERLAYYUV                = $00020000;
  1037.   {$EXTERNALSYM DDCKEYCAPS_SRCOVERLAYYUV}
  1038. (*
  1039.  * there are no bandwidth trade-offs for using colorkey with an overlay
  1040.  *)
  1041.   DDCKEYCAPS_NOCOSTOVERLAY                = $00040000;
  1042.   {$EXTERNALSYM DDCKEYCAPS_NOCOSTOVERLAY}
  1043. (****************************************************************************
  1044.  *
  1045.  * DIRECTDRAW PIXELFORMAT FLAGS
  1046.  *
  1047.  ****************************************************************************)
  1048. (*
  1049.  * The surface has alpha channel information in the pixel format.
  1050.  *)
  1051.   DDPF_ALPHAPIXELS                        = $00000001;
  1052.   {$EXTERNALSYM DDPF_ALPHAPIXELS}
  1053. (*
  1054.  * The pixel format contains alpha only information
  1055.  *)
  1056.   DDPF_ALPHA                              = $00000002;
  1057.   {$EXTERNALSYM DDPF_ALPHA}
  1058. (*
  1059.  * The FourCC code is valid.
  1060.  *)
  1061.   DDPF_FOURCC                             = $00000004;
  1062.   {$EXTERNALSYM DDPF_FOURCC}
  1063. (*
  1064.  * The surface is 4-bit color indexed.
  1065.  *)
  1066.   DDPF_PALETTEINDEXED4                    = $00000008;
  1067.   {$EXTERNALSYM DDPF_PALETTEINDEXED4}
  1068. (*
  1069.  * The surface is indexed into a palette which stores indices
  1070.  * into the destination surface's 8-bit palette.
  1071.  *)
  1072.   DDPF_PALETTEINDEXEDTO8                  = $00000010;
  1073.   {$EXTERNALSYM DDPF_PALETTEINDEXEDTO8}
  1074. (*
  1075.  * The surface is 8-bit color indexed.
  1076.  *)
  1077.   DDPF_PALETTEINDEXED8                    = $00000020;
  1078.   {$EXTERNALSYM DDPF_PALETTEINDEXED8}
  1079. (*
  1080.  * The RGB data in the pixel format structure is valid.
  1081.  *)
  1082.   DDPF_RGB                                = $00000040;
  1083.   {$EXTERNALSYM DDPF_RGB}
  1084. (*
  1085.  * The surface will accept pixel data in the format specified
  1086.  * and compress it during the write.
  1087.  *)
  1088.   DDPF_COMPRESSED                         = $00000080;
  1089.   {$EXTERNALSYM DDPF_COMPRESSED}
  1090. (*
  1091.  * The surface will accept RGB data and translate it during
  1092.  * the write to YUV data.  The format of the data to be written
  1093.  * will be contained in the pixel format structure.  The DDPF_RGB
  1094.  * flag will be set.
  1095.  *)
  1096.   DDPF_RGBTOYUV                           = $00000100;
  1097.   {$EXTERNALSYM DDPF_RGBTOYUV}
  1098. (*
  1099.  * pixel format is YUV - YUV data in pixel format struct is valid
  1100.  *)
  1101.   DDPF_YUV                                = $00000200;
  1102.   {$EXTERNALSYM DDPF_YUV}
  1103. (*
  1104.  * pixel format is a z buffer only surface
  1105.  *)
  1106.   DDPF_ZBUFFER                            = $00000400;
  1107.   {$EXTERNALSYM DDPF_ZBUFFER}
  1108. (*
  1109.  * The surface is 1-bit color indexed.
  1110.  *)
  1111.   DDPF_PALETTEINDEXED1                    = $00000800;
  1112.   {$EXTERNALSYM DDPF_PALETTEINDEXED1}
  1113. (*
  1114.  * The surface is 2-bit color indexed.
  1115.  *)
  1116.   DDPF_PALETTEINDEXED2                    = $00001000;
  1117.   {$EXTERNALSYM DDPF_PALETTEINDEXED2}
  1118. (*
  1119.  * The surface contains Z information in the pixels
  1120.  *)
  1121.   DDPF_ZPIXELS   = $00002000;
  1122.   {$EXTERNALSYM DDPF_ZPIXELS}
  1123. (*
  1124.  * The surface contains stencil information along with Z
  1125.  *)
  1126.   DDPF_STENCILBUFFER   = $00004000;
  1127.   {$EXTERNALSYM DDPF_STENCILBUFFER}
  1128. (*
  1129.  * Premultiplied alpha format -- the color components have been
  1130.  * premultiplied by the alpha component.
  1131.  *)
  1132.   DDPF_ALPHAPREMULT    = $00008000;
  1133.   {$EXTERNALSYM DDPF_ALPHAPREMULT}
  1134. (*
  1135.  * Luminance data in the pixel format is valid.
  1136.  * Use this flag for luminance-only or luminance+alpha surfaces,
  1137.  * the bit depth is then ddpf.dwLuminanceBitCount.
  1138.  *)
  1139.   DDPF_LUMINANCE                          = $00020000;
  1140.   {$EXTERNALSYM DDPF_LUMINANCE}
  1141. (*
  1142.  * Luminance data in the pixel format is valid.
  1143.  * Use this flag when hanging luminance off bumpmap surfaces,
  1144.  * the bit mask for the luminance portion of the pixel is then
  1145.  * ddpf.dwBumpLuminanceBitMask
  1146.  *)
  1147.   DDPF_BUMPLUMINANCE                      = $00040000;
  1148.   {$EXTERNALSYM DDPF_BUMPLUMINANCE}
  1149. (*
  1150.  * Bump map dUdV data in the pixel format is valid.
  1151.  *)
  1152.   DDPF_BUMPDUDV                           = $00080000;
  1153.   {$EXTERNALSYM DDPF_BUMPDUDV}
  1154. (*===========================================================================
  1155.  *
  1156.  *
  1157.  * DIRECTDRAW CALLBACK FLAGS
  1158.  *
  1159.  *
  1160.  *==========================================================================*)
  1161. (****************************************************************************
  1162.  *
  1163.  * DIRECTDRAW ENUMSURFACES FLAGS
  1164.  *
  1165.  ****************************************************************************)
  1166. (*
  1167.  * Enumerate all of the surfaces that meet the search criterion.
  1168.  *)
  1169.   DDENUMSURFACES_ALL                      = $00000001;
  1170.   {$EXTERNALSYM DDENUMSURFACES_ALL}
  1171.   {$EXTERNALSYM DDENUMSURFACES_ALL}
  1172. (*
  1173.  * A search hit is a surface that matches the surface description.
  1174.  *)
  1175.   DDENUMSURFACES_MATCH                    = $00000002;
  1176.   {$EXTERNALSYM DDENUMSURFACES_MATCH}
  1177. (*
  1178.  * A search hit is a surface that does not match the surface description.
  1179.  *)
  1180.   DDENUMSURFACES_NOMATCH                  = $00000004;
  1181.   {$EXTERNALSYM DDENUMSURFACES_NOMATCH}
  1182. (*
  1183.  * Enumerate the first surface that can be created which meets the search criterion.
  1184.  *)
  1185.   DDENUMSURFACES_CANBECREATED             = $00000008;
  1186.   {$EXTERNALSYM DDENUMSURFACES_CANBECREATED}
  1187. (*
  1188.  * Enumerate the surfaces that already exist that meet the search criterion.
  1189.  *)
  1190.   DDENUMSURFACES_DOESEXIST                = $00000010;
  1191.   {$EXTERNALSYM DDENUMSURFACES_DOESEXIST}
  1192. (****************************************************************************
  1193.  *
  1194.  * DIRECTDRAW SETDISPLAYMODE FLAGS
  1195.  *
  1196.  ****************************************************************************)
  1197. (*
  1198.  * The desired mode is a standard VGA mode
  1199.  *)
  1200.   DDSDM_STANDARDVGAMODE                   = $00000001;
  1201.   {$EXTERNALSYM DDSDM_STANDARDVGAMODE}
  1202. (****************************************************************************
  1203.  *
  1204.  * DIRECTDRAW ENUMDISPLAYMODES FLAGS
  1205.  *
  1206.  ****************************************************************************)
  1207. (*
  1208.  * Enumerate Modes with different refresh rates.  EnumDisplayModes guarantees
  1209.  * that a particular mode will be enumerated only once.  This flag specifies whether
  1210.  * the refresh rate is taken into account when determining if a mode is unique.
  1211.  *)
  1212.   DDEDM_REFRESHRATES                      = $00000001;
  1213.   {$EXTERNALSYM DDEDM_REFRESHRATES}
  1214. (*
  1215.  * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA
  1216.  * modes such as mode 0x13 in addition to the usual ModeX modes (which are always
  1217.  * enumerated if the application has previously called SetCooperativeLevel with the
  1218.  * DDSCL_ALLOWMODEX flag set).
  1219.  *)
  1220.   DDEDM_STANDARDVGAMODES                  = $00000002;
  1221.   {$EXTERNALSYM DDEDM_STANDARDVGAMODES}
  1222. (****************************************************************************
  1223.  *
  1224.  * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS
  1225.  *
  1226.  ****************************************************************************)
  1227. (*
  1228.  * Exclusive mode owner will be responsible for the entire primary surface.
  1229.  * GDI can be ignored. used with DD
  1230.  *)
  1231.   DDSCL_FULLSCREEN                        = $00000001;
  1232.   {$EXTERNALSYM DDSCL_FULLSCREEN}
  1233. (*
  1234.  * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode
  1235.  *)
  1236.   DDSCL_ALLOWREBOOT                       = $00000002;
  1237.   {$EXTERNALSYM DDSCL_ALLOWREBOOT}
  1238. (*
  1239.  * prevents DDRAW from modifying the application window.
  1240.  * prevents DDRAW from minimize/restore the application window on activation.
  1241.  *)
  1242.   DDSCL_NOWINDOWCHANGES                   = $00000004;
  1243.   {$EXTERNALSYM DDSCL_NOWINDOWCHANGES}
  1244. (*
  1245.  * app wants to work as a regular Windows application
  1246.  *)
  1247.   DDSCL_NORMAL                            = $00000008;
  1248.   {$EXTERNALSYM DDSCL_NORMAL}
  1249. (*
  1250.  * app wants exclusive access
  1251.  *)
  1252.   DDSCL_EXCLUSIVE                         = $00000010;
  1253.   {$EXTERNALSYM DDSCL_EXCLUSIVE}
  1254. (*
  1255.  * app can deal with non-windows display modes
  1256.  *)
  1257.   DDSCL_ALLOWMODEX                        = $00000040;
  1258.   {$EXTERNALSYM DDSCL_ALLOWMODEX}
  1259. (*
  1260.  * this window will receive the focus messages
  1261.  *)
  1262.   DDSCL_SETFOCUSWINDOW                    = $00000080;
  1263.   {$EXTERNALSYM DDSCL_SETFOCUSWINDOW}
  1264. (*
  1265.  * this window is associated with the DDRAW object and will
  1266.  * cover the screen in fullscreen mode
  1267.  *)
  1268.   DDSCL_SETDEVICEWINDOW                   = $00000100;
  1269.   {$EXTERNALSYM DDSCL_SETDEVICEWINDOW}
  1270. (*
  1271.  * app wants DDRAW to create a window to be associated with the
  1272.  * DDRAW object
  1273.  *)
  1274.   DDSCL_CREATEDEVICEWINDOW                = $00000200;
  1275.   {$EXTERNALSYM DDSCL_CREATEDEVICEWINDOW}
  1276. (*
  1277.  * App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D
  1278.  * take the global crtisec more frequently.
  1279.  *)
  1280.   DDSCL_MULTITHREADED                     = $00000400;
  1281.   {$EXTERNALSYM DDSCL_MULTITHREADED}
  1282. (*
  1283.  * App specifies that it would like to keep the FPU set up for optimal Direct3D
  1284.  * performance (single precision and exceptions disabled) so Direct3D
  1285.  * does not need to explicitly set the FPU each time. This is assumed by
  1286.  * default in DirectX 7. See also DDSCL_FPUPRESERVE
  1287.  *)
  1288.   DDSCL_FPUSETUP                          = $00000800;
  1289.   {$EXTERNALSYM DDSCL_FPUSETUP}
  1290. (*
  1291.  * App specifies that it needs either double precision FPU or FPU exceptions
  1292.  * enabled. This makes Direct3D explicitly set the FPU state eah time it is
  1293.  * called. Setting the flag will reduce Direct3D performance. The flag is
  1294.  * assumed by default in DirectX 6 and earlier. See also DDSCL_FPUSETUP
  1295.  *)
  1296.   DDSCL_FPUPRESERVE                       = $00001000;
  1297.   {$EXTERNALSYM DDSCL_FPUPRESERVE}
  1298. (****************************************************************************
  1299.  *
  1300.  * DIRECTDRAW BLT FLAGS
  1301.  *
  1302.  ****************************************************************************)
  1303. (*
  1304.  * Use the alpha information in the pixel format or the alpha channel surface
  1305.  * attached to the destination surface as the alpha channel for this blt.
  1306.  *)
  1307.   DDBLT_ALPHADEST                         = $00000001;
  1308.   {$EXTERNALSYM DDBLT_ALPHADEST}
  1309. (*
  1310.  * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel
  1311.  * for the destination surface for this blt.
  1312.  *)
  1313.   DDBLT_ALPHADESTCONSTOVERRIDE            = $00000002;
  1314.   {$EXTERNALSYM DDBLT_ALPHADESTCONSTOVERRIDE}
  1315. (*
  1316.  * The NEG suffix indicates that the destination surface becomes more
  1317.  * transparent as the alpha value increases. (0 is opaque)
  1318.  *)
  1319.   DDBLT_ALPHADESTNEG                      = $00000004;
  1320.   {$EXTERNALSYM DDBLT_ALPHADESTNEG}
  1321. (*
  1322.  * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha
  1323.  * channel for the destination for this blt.
  1324.  *)
  1325.   DDBLT_ALPHADESTSURFACEOVERRIDE          = $00000008;
  1326.   {$EXTERNALSYM DDBLT_ALPHADESTSURFACEOVERRIDE}
  1327. (*
  1328.  * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel
  1329.  * for the edges of the image that border the color key colors.
  1330.  *)
  1331.   DDBLT_ALPHAEDGEBLEND                    = $00000010;
  1332.   {$EXTERNALSYM DDBLT_ALPHAEDGEBLEND}
  1333. (*
  1334.  * Use the alpha information in the pixel format or the alpha channel surface
  1335.  * attached to the source surface as the alpha channel for this blt.
  1336.  *)
  1337.   DDBLT_ALPHASRC                          = $00000020;
  1338.   {$EXTERNALSYM DDBLT_ALPHASRC}
  1339. (*
  1340.  * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel
  1341.  * for the source for this blt.
  1342.  *)
  1343.   DDBLT_ALPHASRCCONSTOVERRIDE             = $00000040;
  1344.   {$EXTERNALSYM DDBLT_ALPHASRCCONSTOVERRIDE}
  1345. (*
  1346.  * The NEG suffix indicates that the source surface becomes more transparent
  1347.  * as the alpha value increases. (0 is opaque)
  1348.  *)
  1349.   DDBLT_ALPHASRCNEG                       = $00000080;
  1350.   {$EXTERNALSYM DDBLT_ALPHASRCNEG}
  1351. (*
  1352.  * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel
  1353.  * for the source for this blt.
  1354.  *)
  1355.   DDBLT_ALPHASRCSURFACEOVERRIDE           = $00000100;
  1356.   {$EXTERNALSYM DDBLT_ALPHASRCSURFACEOVERRIDE}
  1357. (*
  1358.  * Do this blt asynchronously through the FIFO in the order received.  If
  1359.  * there is no room in the hardware FIFO fail the call.
  1360.  *)
  1361.   DDBLT_ASYNC                             = $00000200;
  1362.   {$EXTERNALSYM DDBLT_ASYNC}
  1363. (*
  1364.  * Uses the dwFillColor field in the DDBLTFX structure as the RGB color
  1365.  * to fill the destination rectangle on the destination surface with.
  1366.  *)
  1367.   DDBLT_COLORFILL                         = $00000400;
  1368.   {$EXTERNALSYM DDBLT_COLORFILL}
  1369. (*
  1370.  * Uses the dwDDFX field in the DDBLTFX structure to specify the effects
  1371.  * to use for the blt.
  1372.  *)
  1373.   DDBLT_DDFX                              = $00000800;
  1374.   {$EXTERNALSYM DDBLT_DDFX}
  1375. (*
  1376.  * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS
  1377.  * that are not part of the Win32 API.
  1378.  *)
  1379.   DDBLT_DDROPS                            = $00001000;
  1380.   {$EXTERNALSYM DDBLT_DDROPS}
  1381. (*
  1382.  * Use the color key associated with the destination surface.
  1383.  *)
  1384.   DDBLT_KEYDEST                           = $00002000;
  1385.   {$EXTERNALSYM DDBLT_KEYDEST}
  1386. (*
  1387.  * Use the dckDestColorkey field in the DDBLTFX structure as the color key
  1388.  * for the destination surface.
  1389.  *)
  1390.   DDBLT_KEYDESTOVERRIDE                   = $00004000;
  1391.   {$EXTERNALSYM DDBLT_KEYDESTOVERRIDE}
  1392. (*
  1393.  * Use the color key associated with the source surface.
  1394.  *)
  1395.   DDBLT_KEYSRC                            = $00008000;
  1396.   {$EXTERNALSYM DDBLT_KEYSRC}
  1397. (*
  1398.  * Use the dckSrcColorkey field in the DDBLTFX structure as the color key
  1399.  * for the source surface.
  1400.  *)
  1401.   DDBLT_KEYSRCOVERRIDE                    = $00010000;
  1402.   {$EXTERNALSYM DDBLT_KEYSRCOVERRIDE}
  1403. (*
  1404.  * Use the dwROP field in the DDBLTFX structure for the raster operation
  1405.  * for this blt.  These ROPs are the same as the ones defined in the Win32 API.
  1406.  *)
  1407.   DDBLT_ROP                               = $00020000;
  1408.   {$EXTERNALSYM DDBLT_ROP}
  1409. (*
  1410.  * Use the dwRotationAngle field in the DDBLTFX structure as the angle
  1411.  * (specified in 1/100th of a degree) to rotate the surface.
  1412.  *)
  1413.   DDBLT_ROTATIONANGLE                     = $00040000;
  1414.   {$EXTERNALSYM DDBLT_ROTATIONANGLE}
  1415. (*
  1416.  * Z-buffered blt using the z-buffers attached to the source and destination
  1417.  * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the
  1418.  * z-buffer opcode.
  1419.  *)
  1420.   DDBLT_ZBUFFER                           = $00080000;
  1421.   {$EXTERNALSYM DDBLT_ZBUFFER}
  1422. (*
  1423.  * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field
  1424.  * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
  1425.  * for the destination.
  1426.  *)
  1427.   DDBLT_ZBUFFERDESTCONSTOVERRIDE          = $00100000;
  1428.   {$EXTERNALSYM DDBLT_ZBUFFERDESTCONSTOVERRIDE}
  1429. (*
  1430.  * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode
  1431.  * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
  1432.  * respectively for the destination.
  1433.  *)
  1434.   DDBLT_ZBUFFERDESTOVERRIDE               = $00200000;
  1435.   {$EXTERNALSYM DDBLT_ZBUFFERDESTOVERRIDE}
  1436. (*
  1437.  * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field
  1438.  * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively
  1439.  * for the source.
  1440.  *)
  1441.   DDBLT_ZBUFFERSRCCONSTOVERRIDE           = $00400000;
  1442.   {$EXTERNALSYM DDBLT_ZBUFFERSRCCONSTOVERRIDE}
  1443. (*
  1444.  * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode
  1445.  * field in the DDBLTFX structure as the z-buffer and z-buffer opcode
  1446.  * respectively for the source.
  1447.  *)
  1448.    DDBLT_ZBUFFERSRCOVERRIDE               = $00800000;
  1449.    {$EXTERNALSYM DDBLT_ZBUFFERSRCOVERRIDE}
  1450. (*
  1451.  * wait until the device is ready to handle the blt
  1452.  * this will cause blt to not return DDERR_WASSTILLDRAWING
  1453.  *)
  1454.   DDBLT_WAIT                              = $01000000;
  1455.   {$EXTERNALSYM DDBLT_WAIT}
  1456. (*
  1457.  * Uses the dwFillDepth field in the DDBLTFX structure as the depth value
  1458.  * to fill the destination rectangle on the destination Z-buffer surface
  1459.  * with.
  1460.  *)
  1461.   DDBLT_DEPTHFILL                         = $02000000;
  1462.   {$EXTERNALSYM DDBLT_DEPTHFILL}
  1463. (*
  1464.  * wait until the device is ready to handle the blt
  1465.  * this will cause blt to not return DDERR_WASSTILLDRAWING
  1466.  *)
  1467.   DDBLT_DONOTWAIT                         = $08000000;
  1468.   {$EXTERNALSYM DDBLT_DONOTWAIT}
  1469. (*
  1470.  * These flags indicate a presentation blt (i.e. a blt
  1471.  * that moves surface contents from an offscreen back buffer to the primary
  1472.  * surface). The driver is not allowed to "queue"  more than three such blts.
  1473.  * The "end" of the presentation blt is indicated, since the
  1474.  * blt may be clipped, in which case the runtime will call the driver with
  1475.  * several blts. All blts (even if not clipped) are tagged with DDBLT_PRESENTATION
  1476.  * and the last (even if not clipped) additionally with DDBLT_LAST_PRESENTATION.
  1477.  * Thus the true rule is that the driver must not schedule a DDBLT_PRESENTATION
  1478.  * blt if there are 3 or more DDBLT_PRESENTLAST blts in the hardware pipe.
  1479.  * If there are such blts in the pipe, the driver should return DDERR_WASSTILLDRAWING
  1480.  * until the oldest queued DDBLT_LAST_PRESENTATION blts has been retired (i.e. the
  1481.  * pixels have been actually written to the primary surface). Once the oldest blt
  1482.  * has been retired, the driver is free to schedule the current blt.
  1483.  * The goal is to provide a mechanism whereby the device's hardware queue never
  1484.  * gets more than 3 frames ahead of the frames being generated by the application.
  1485.  * When excessive queueing occurs, applications become unusable because the application
  1486.  * visibly lags user input, and such problems make windowed interactive applications impossible.
  1487.  * Some drivers may not have sufficient knowledge of their hardware's FIFO to know
  1488.  * when a certain blt has been retired. Such drivers should code cautiously, and
  1489.  * simply not allow any frames to be queued at all. DDBLT_LAST_PRESENTATION should cause
  1490.  * such drivers to return DDERR_WASSTILLDRAWING until the accelerator is completely
  1491.  * finished- exactly as if the application had called Lock on the source surface
  1492.  * before calling Blt.
  1493.  * In other words, the driver is allowed and encouraged to
  1494.  * generate as much latency as it can, but never more than 3 frames worth.
  1495.  * Implementation detail: Drivers should count blts against the SOURCE surface, not
  1496.  * against the primary surface. This enables multiple parallel windowed application
  1497.  * to function more optimally.
  1498.  * This flag is passed only to DX8 or higher drivers.
  1499.  *
  1500.  * APPLICATIONS DO NOT SET THESE FLAGS. THEY ARE SET BY THE DIRECTDRAW RUNTIME.
  1501.  *
  1502.  *)
  1503.   DDBLT_PRESENTATION                      = $10000000;
  1504.   {$EXTERNALSYM DDBLT_PRESENTATION}
  1505.   DDBLT_LAST_PRESENTATION                 = $20000000;
  1506.   {$EXTERNALSYM DDBLT_LAST_PRESENTATION}
  1507. (****************************************************************************
  1508.  *
  1509.  * BLTFAST FLAGS
  1510.  *
  1511.  ****************************************************************************)
  1512.   DDBLTFAST_NOCOLORKEY                    = $00000000;
  1513.   {$EXTERNALSYM DDBLTFAST_NOCOLORKEY}
  1514.   DDBLTFAST_SRCCOLORKEY                   = $00000001;
  1515.   {$EXTERNALSYM DDBLTFAST_SRCCOLORKEY}
  1516.   DDBLTFAST_DESTCOLORKEY                  = $00000002;
  1517.   {$EXTERNALSYM DDBLTFAST_DESTCOLORKEY}
  1518.   DDBLTFAST_WAIT                          = $00000010;
  1519.   {$EXTERNALSYM DDBLTFAST_WAIT}
  1520.   DDBLTFAST_DONOTWAIT                     = $00000020;
  1521.   {$EXTERNALSYM DDBLTFAST_DONOTWAIT}
  1522. (****************************************************************************
  1523.  *
  1524.  * FLIP FLAGS
  1525.  *
  1526.  ****************************************************************************)
  1527.   DDFLIP_WAIT                          = $00000001;
  1528.   {$EXTERNALSYM DDFLIP_WAIT}
  1529. (*
  1530.  * Indicates that the target surface contains the even field of video data.
  1531.  * This flag is only valid with an overlay surface.
  1532.  *)
  1533.   DDFLIP_EVEN                          = $00000002;
  1534.   {$EXTERNALSYM DDFLIP_EVEN}
  1535. (*
  1536.  * Indicates that the target surface contains the odd field of video data.
  1537.  * This flag is only valid with an overlay surface.
  1538.  *)
  1539.   DDFLIP_ODD                           = $00000004;
  1540.   {$EXTERNALSYM DDFLIP_ODD}
  1541. (*
  1542.  * Causes DirectDraw to perform the physical flip immediately and return
  1543.  * to the application. Typically, what was the front buffer but is now the back
  1544.  * buffer will still be visible (depending on timing) until the next vertical
  1545.  * retrace. Subsequent operations involving the two flipped surfaces will
  1546.  * not check to see if the physical flip has finished (i.e. will not return
  1547.  * DDERR_WASSTILLDRAWING for that reason (but may for other reasons)).
  1548.  * This allows an application to perform Flips at a higher frequency than the
  1549.  * monitor refresh rate, but may introduce visible artifacts.
  1550.  * Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set,
  1551.  * DDFLIP_NOVSYNC has no effect.
  1552.  *)
  1553.   DDFLIP_NOVSYNC                       = $00000008;
  1554.   {$EXTERNALSYM DDFLIP_NOVSYNC}
  1555. (*
  1556.  * Flip Interval Flags. These flags indicate how many vertical retraces to wait between
  1557.  * each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each
  1558.  * surface involved in the flip until the specified number of vertical retraces has
  1559.  * ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set,
  1560.  * DDFLIP_INTERVALn has no effect.
  1561.  *)
  1562. (*
  1563.  * DirectDraw will flip on every other vertical sync
  1564.  *)
  1565.   DDFLIP_INTERVAL2                     = $02000000;
  1566.   {$EXTERNALSYM DDFLIP_INTERVAL2}
  1567. (*
  1568.  * DirectDraw will flip on every third vertical sync
  1569.  *)
  1570.   DDFLIP_INTERVAL3                     = $03000000;
  1571.   {$EXTERNALSYM DDFLIP_INTERVAL3}
  1572. (*
  1573.  * DirectDraw will flip on every fourth vertical sync
  1574.  *)
  1575.   DDFLIP_INTERVAL4                     = $04000000;
  1576.   {$EXTERNALSYM DDFLIP_INTERVAL4}
  1577. (*
  1578.  * DirectDraw will flip and display a main stereo surface
  1579.  *)
  1580.   DDFLIP_STEREO                        = $00000010;
  1581.   {$EXTERNALSYM DDFLIP_STEREO}
  1582. (*
  1583.  * On IDirectDrawSurface7 and higher interfaces, the default is DDFLIP_WAIT. If you wish
  1584.  * to override the default and use time when the accelerator is busy (as denoted by
  1585.  * the DDERR_WASSTILLDRAWING return code) then use DDFLIP_DONOTWAIT.
  1586.  *)
  1587.   DDFLIP_DONOTWAIT                     = $00000020;
  1588.   {$EXTERNALSYM DDFLIP_DONOTWAIT}
  1589. (****************************************************************************
  1590.  *
  1591.  * DIRECTDRAW SURFACE OVERLAY FLAGS
  1592.  *
  1593.  ****************************************************************************)
  1594. (*
  1595.  * Use the alpha information in the pixel format or the alpha channel surface
  1596.  * attached to the destination surface as the alpha channel for the
  1597.  * destination overlay.
  1598.  *)
  1599.   DDOVER_ALPHADEST                        = $00000001;
  1600.   {$EXTERNALSYM DDOVER_ALPHADEST}
  1601. (*
  1602.  * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the
  1603.  * destination alpha channel for this overlay.
  1604.  *)
  1605.   DDOVER_ALPHADESTCONSTOVERRIDE           = $00000002;
  1606.   {$EXTERNALSYM DDOVER_ALPHADESTCONSTOVERRIDE}
  1607. (*
  1608.  * The NEG suffix indicates that the destination surface becomes more
  1609.  * transparent as the alpha value increases.
  1610.  *)
  1611.   DDOVER_ALPHADESTNEG                     = $00000004;
  1612.   {$EXTERNALSYM DDOVER_ALPHADESTNEG}
  1613. (*
  1614.  * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha
  1615.  * channel destination for this overlay.
  1616.  *)
  1617.   DDOVER_ALPHADESTSURFACEOVERRIDE         = $00000008;
  1618.   {$EXTERNALSYM DDOVER_ALPHADESTSURFACEOVERRIDE}
  1619. (*
  1620.  * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha
  1621.  * channel for the edges of the image that border the color key colors.
  1622.  *)
  1623.   DDOVER_ALPHAEDGEBLEND                   = $00000010;
  1624.   {$EXTERNALSYM DDOVER_ALPHAEDGEBLEND}
  1625. (*
  1626.  * Use the alpha information in the pixel format or the alpha channel surface
  1627.  * attached to the source surface as the source alpha channel for this overlay.
  1628.  *)
  1629.   DDOVER_ALPHASRC                         = $00000020;
  1630.   {$EXTERNALSYM DDOVER_ALPHASRC}
  1631. (*
  1632.  * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source
  1633.  * alpha channel for this overlay.
  1634.  *)
  1635.   DDOVER_ALPHASRCCONSTOVERRIDE            = $00000040;
  1636.   {$EXTERNALSYM DDOVER_ALPHASRCCONSTOVERRIDE}
  1637. (*
  1638.  * The NEG suffix indicates that the source surface becomes more transparent
  1639.  * as the alpha value increases.
  1640.  *)
  1641.   DDOVER_ALPHASRCNEG                      = $00000080;
  1642.   {$EXTERNALSYM DDOVER_ALPHASRCNEG}
  1643. (*
  1644.  * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel
  1645.  * source for this overlay.
  1646.  *)
  1647.   DDOVER_ALPHASRCSURFACEOVERRIDE          = $00000100;
  1648.   {$EXTERNALSYM DDOVER_ALPHASRCSURFACEOVERRIDE}
  1649. (*
  1650.  * Turn this overlay off.
  1651.  *)
  1652.   DDOVER_HIDE                             = $00000200;
  1653.   {$EXTERNALSYM DDOVER_HIDE}
  1654. (*
  1655.  * Use the color key associated with the destination surface.
  1656.  *)
  1657.   DDOVER_KEYDEST                          = $00000400;
  1658.   {$EXTERNALSYM DDOVER_KEYDEST}
  1659. (*
  1660.  * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key
  1661.  * for the destination surface
  1662.  *)
  1663.   DDOVER_KEYDESTOVERRIDE                  = $00000800;
  1664.   {$EXTERNALSYM DDOVER_KEYDESTOVERRIDE}
  1665. (*
  1666.  * Use the color key associated with the source surface.
  1667.  *)
  1668.   DDOVER_KEYSRC                           = $00001000;
  1669.   {$EXTERNALSYM DDOVER_KEYSRC}
  1670. (*
  1671.  * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key
  1672.  * for the source surface.
  1673.  *)
  1674.   DDOVER_KEYSRCOVERRIDE                   = $00002000;
  1675.   {$EXTERNALSYM DDOVER_KEYSRCOVERRIDE}
  1676. (*
  1677.  * Turn this overlay on.
  1678.  *)
  1679.   DDOVER_SHOW                             = $00004000;
  1680.   {$EXTERNALSYM DDOVER_SHOW}
  1681. (*
  1682.  * Add a dirty rect to an emulated overlayed surface.
  1683.  *)
  1684.   DDOVER_ADDDIRTYRECT                     = $00008000;
  1685.   {$EXTERNALSYM DDOVER_ADDDIRTYRECT}
  1686. (*
  1687.  * Redraw all dirty rects on an emulated overlayed surface.
  1688.  *)
  1689.   DDOVER_REFRESHDIRTYRECTS                = $00010000;
  1690.   {$EXTERNALSYM DDOVER_REFRESHDIRTYRECTS}
  1691. (*
  1692.  * Redraw the entire surface on an emulated overlayed surface.
  1693.  *)
  1694.   DDOVER_REFRESHALL                       = $00020000;
  1695.   {$EXTERNALSYM DDOVER_REFRESHALL}
  1696. (*
  1697.  * Use the overlay FX flags to define special overlay FX
  1698.  *)
  1699.   DDOVER_DDFX                             = $00080000;
  1700.   {$EXTERNALSYM DDOVER_DDFX}
  1701. (*
  1702.  * Autoflip the overlay when ever the video port autoflips
  1703.  *)
  1704.   DDOVER_AUTOFLIP                         = $00100000;
  1705.   {$EXTERNALSYM DDOVER_AUTOFLIP}
  1706. (*
  1707.  * Display each field of video port data individually without
  1708.  * causing any jittery artifacts
  1709.  *)
  1710.   DDOVER_BOB                          = $00200000;
  1711.   {$EXTERNALSYM DDOVER_BOB}
  1712. (*
  1713.  * Indicates that bob/weave decisions should not be overridden by other
  1714.  * interfaces.
  1715.  *)
  1716.   DDOVER_OVERRIDEBOBWEAVE   = $00400000;
  1717.   {$EXTERNALSYM DDOVER_OVERRIDEBOBWEAVE}
  1718. (*
  1719.  * Indicates that the surface memory is composed of interleaved fields.
  1720.  *)
  1721.   DDOVER_INTERLEAVED   = $00800000;
  1722.   {$EXTERNALSYM DDOVER_INTERLEAVED}
  1723. (*
  1724.  * Indicates that bob will be performed using hardware rather than
  1725.  * software or emulated.
  1726.  *)
  1727.   DDOVER_BOBHARDWARE         = $01000000;
  1728.   {$EXTERNALSYM DDOVER_BOBHARDWARE}
  1729. (*
  1730.  * Indicates that overlay FX structure contains valid ARGB scaling factors.
  1731.  *)
  1732.   DDOVER_ARGBSCALEFACTORS                 = $02000000;
  1733.   {$EXTERNALSYM DDOVER_ARGBSCALEFACTORS}
  1734. (*
  1735.  * Indicates that ARGB scaling factors can be degraded to fit driver capabilities.
  1736.  *)
  1737.   DDOVER_DEGRADEARGBSCALING               = $04000000;
  1738.   {$EXTERNALSYM DDOVER_DEGRADEARGBSCALING}
  1739. (****************************************************************************
  1740.  *
  1741.  * DIRECTDRAWSURFACE LOCK FLAGS
  1742.  *
  1743.  ****************************************************************************)
  1744. (*
  1745.  * The default.  Set to indicate that Lock should return a valid memory pointer
  1746.  * to the top of the specified rectangle.  If no rectangle is specified then a
  1747.  * pointer to the top of the surface is returned.
  1748.  *)
  1749.   DDLOCK_SURFACEMEMORYPTR                 = $00000000;    // = default
  1750.   {$EXTERNALSYM DDLOCK_SURFACEMEMORYPTR}
  1751. (*
  1752.  * Set to indicate that Lock should wait until it can obtain a valid memory
  1753.  * pointer before returning.  If this bit is set, Lock will never return
  1754.  * DDERR_WASSTILLDRAWING.
  1755.  *)
  1756.   DDLOCK_WAIT                             = $00000001;
  1757.   {$EXTERNALSYM DDLOCK_WAIT}
  1758. (*
  1759.  * Set if an event handle is being passed to Lock.  Lock will trigger the event
  1760.  * when it can return the surface memory pointer requested.
  1761.  *)
  1762.   DDLOCK_EVENT                            = $00000002;
  1763.   {$EXTERNALSYM DDLOCK_EVENT}
  1764. (*
  1765.  * Indicates that the surface being locked will only be read from.
  1766.  *)
  1767.   DDLOCK_READONLY                         = $00000010;
  1768.   {$EXTERNALSYM DDLOCK_READONLY}
  1769. (*
  1770.  * Indicates that the surface being locked will only be written to
  1771.  *)
  1772.   DDLOCK_WRITEONLY                        = $00000020;
  1773.   {$EXTERNALSYM DDLOCK_WRITEONLY}
  1774. (*
  1775.  * Indicates that a system wide lock should not be taken when this surface
  1776.  * is locked. This has several advantages (cursor responsiveness, ability
  1777.  * to call more Windows functions, easier debugging) when locking video
  1778.  * memory surfaces. However, an application specifying this flag must
  1779.  * comply with a number of conditions documented in the help file.
  1780.  * Furthermore, this flag cannot be specified when locking the primary.
  1781.  *)
  1782.   DDLOCK_NOSYSLOCK                        = $00000800;
  1783.   {$EXTERNALSYM DDLOCK_NOSYSLOCK}
  1784. (*
  1785.  * Used only with Direct3D Vertex Buffer Locks. Indicates that no vertices
  1786.  * that were referred to in Draw*PrimtiveVB calls since the start of the
  1787.  * frame (or the last lock without this flag) will be modified during the
  1788.  * lock. This can be useful when one is only appending data to the vertex
  1789.  * buffer
  1790.  *)
  1791.   DDLOCK_NOOVERWRITE                      = $00001000;
  1792.   {$EXTERNALSYM DDLOCK_NOOVERWRITE}
  1793. (*
  1794.  * Indicates that no assumptions will be made about the contents of the
  1795.  * surface or vertex buffer during this lock.
  1796.  * This enables two things:
  1797.  * -    Direct3D or the driver may provide an alternative memory
  1798.  *      area as the vertex buffer. This is useful when one plans to clear the
  1799.  *      contents of the vertex buffer and fill in new data.
  1800.  * -    Drivers sometimes store surface data in a re-ordered format.
  1801.  *      When the application locks the surface, the driver is forced to un-re-order
  1802.  *      the surface data before allowing the application to see the surface contents.
  1803.  *      This flag is a hint to the driver that it can skip the un-re-ordering process
  1804.  *      since the application plans to overwrite every single pixel in the surface
  1805.  *      or locked rectangle (and so erase any un-re-ordered pixels anyway).
  1806.  *      Applications should always set this flag when they intend to overwrite the entire
  1807.  *      surface or locked rectangle.
  1808.  *)
  1809.   DDLOCK_DISCARDCONTENTS                  = $00002000;
  1810.   {$EXTERNALSYM DDLOCK_DISCARDCONTENTS}
  1811.  (*
  1812.   * DDLOCK_OKTOSWAP is an older, less informative name for DDLOCK_DISCARDCONTENTS
  1813.   *)
  1814.   DDLOCK_OKTOSWAP                         = $00002000;
  1815.   {$EXTERNALSYM DDLOCK_OKTOSWAP}
  1816. (*
  1817.  * On IDirectDrawSurface7 and higher interfaces, the default is DDLOCK_WAIT. If you wish
  1818.  * to override the default and use time when the accelerator is busy (as denoted by
  1819.  * the DDERR_WASSTILLDRAWING return code) then use DDLOCK_DONOTWAIT.
  1820.  *)
  1821.   DDLOCK_DONOTWAIT                        = $00004000;
  1822.   {$EXTERNALSYM DDLOCK_DONOTWAIT}
  1823. (*
  1824.  * This indicates volume texture lock with front and back specified.
  1825.  *)
  1826.   DDLOCK_HASVOLUMETEXTUREBOXRECT          = $00008000;
  1827.   {$EXTERNALSYM DDLOCK_HASVOLUMETEXTUREBOXRECT}
  1828. (*
  1829.  * This indicates that the driver should not update dirty rect information for this lock.
  1830.  *)
  1831.   DDLOCK_NODIRTYUPDATE                    = $00010000;
  1832.   {$EXTERNALSYM DDLOCK_NODIRTYUPDATE}
  1833. (****************************************************************************
  1834.  *
  1835.  * DIRECTDRAWSURFACE PAGELOCK FLAGS
  1836.  *
  1837.  ****************************************************************************)
  1838. (*
  1839.  * No flags defined at present
  1840.  *)
  1841. (****************************************************************************
  1842.  *
  1843.  * DIRECTDRAWSURFACE PAGEUNLOCK FLAGS
  1844.  *
  1845.  ****************************************************************************)
  1846. (*
  1847.  * No flags defined at present
  1848.  *)
  1849. (****************************************************************************
  1850.  *
  1851.  * DIRECTDRAWSURFACE BLT FX FLAGS
  1852.  *
  1853.  ****************************************************************************)
  1854. (*
  1855.  * If stretching, use arithmetic stretching along the Y axis for this blt.
  1856.  *)
  1857.   DDBLTFX_ARITHSTRETCHY                   = $00000001;
  1858.   {$EXTERNALSYM DDBLTFX_ARITHSTRETCHY}
  1859. (*
  1860.  * Do this blt mirroring the surface left to right.  Spin the
  1861.  * surface around its y-axis.
  1862.  *)
  1863.   DDBLTFX_MIRRORLEFTRIGHT                 = $00000002;
  1864.   {$EXTERNALSYM DDBLTFX_MIRRORLEFTRIGHT}
  1865. (*
  1866.  * Do this blt mirroring the surface up and down.  Spin the surface
  1867.  * around its x-axis.
  1868.  *)
  1869.   DDBLTFX_MIRRORUPDOWN                    = $00000004;
  1870.   {$EXTERNALSYM DDBLTFX_MIRRORUPDOWN}
  1871. (*
  1872.  * Schedule this blt to avoid tearing.
  1873.  *)
  1874.   DDBLTFX_NOTEARING                       = $00000008;
  1875.   {$EXTERNALSYM DDBLTFX_NOTEARING}
  1876. (*
  1877.  * Do this blt rotating the surface one hundred and eighty degrees.
  1878.  *)
  1879.   DDBLTFX_ROTATE180                       = $00000010;
  1880.   {$EXTERNALSYM DDBLTFX_ROTATE180}
  1881. (*
  1882.  * Do this blt rotating the surface two hundred and seventy degrees.
  1883.  *)
  1884.   DDBLTFX_ROTATE270                       = $00000020;
  1885.   {$EXTERNALSYM DDBLTFX_ROTATE270}
  1886. (*
  1887.  * Do this blt rotating the surface ninety degrees.
  1888.  *)
  1889.   DDBLTFX_ROTATE90                        = $00000040;
  1890.   {$EXTERNALSYM DDBLTFX_ROTATE90}
  1891. (*
  1892.  * Do this z blt using dwZBufferLow and dwZBufferHigh as  range values
  1893.  * specified to limit the bits copied from the source surface.
  1894.  *)
  1895.   DDBLTFX_ZBUFFERRANGE                    = $00000080;
  1896.   {$EXTERNALSYM DDBLTFX_ZBUFFERRANGE}
  1897. (*
  1898.  * Do this z blt adding the dwZBufferBaseDest to each of the sources z values
  1899.  * before comparing it with the desting z values.
  1900.  *)
  1901.   DDBLTFX_ZBUFFERBASEDEST                 = $00000100;
  1902.   {$EXTERNALSYM DDBLTFX_ZBUFFERBASEDEST}
  1903. (****************************************************************************
  1904.  *
  1905.  * DIRECTDRAWSURFACE OVERLAY FX FLAGS
  1906.  *
  1907.  ****************************************************************************)
  1908. (*
  1909.  * If stretching, use arithmetic stretching along the Y axis for this overlay.
  1910.  *)
  1911.   DDOVERFX_ARITHSTRETCHY                  = $00000001;
  1912.   {$EXTERNALSYM DDOVERFX_ARITHSTRETCHY}
  1913. (*
  1914.  * Mirror the overlay across the vertical axis
  1915.  *)
  1916.   DDOVERFX_MIRRORLEFTRIGHT                = $00000002;
  1917.   {$EXTERNALSYM DDOVERFX_MIRRORLEFTRIGHT}
  1918. (*
  1919.  * Mirror the overlay across the horizontal axis
  1920.  *)
  1921.   DDOVERFX_MIRRORUPDOWN                   = $00000004;
  1922.   {$EXTERNALSYM DDOVERFX_MIRRORUPDOWN}
  1923. (*
  1924.  * Deinterlace the overlay, if possible
  1925.  *)
  1926.   DDOVERFX_DEINTERLACE                    = $00000008;
  1927.   {$EXTERNALSYM DDOVERFX_DEINTERLACE}
  1928. (****************************************************************************
  1929.  *
  1930.  * DIRECTDRAW WAITFORVERTICALBLANK FLAGS
  1931.  *
  1932.  ****************************************************************************)
  1933. (*
  1934.  * return when the vertical blank interval begins
  1935.  *)
  1936.   DDWAITVB_BLOCKBEGIN                     = $00000001;
  1937.   {$EXTERNALSYM DDWAITVB_BLOCKBEGIN}
  1938. (*
  1939.  * set up an event to trigger when the vertical blank begins
  1940.  *)
  1941.   DDWAITVB_BLOCKBEGINEVENT                = $00000002;
  1942.   {$EXTERNALSYM DDWAITVB_BLOCKBEGINEVENT}
  1943. (*
  1944.  * return when the vertical blank interval ends and display begins
  1945.  *)
  1946.   DDWAITVB_BLOCKEND                       = $00000004;
  1947.   {$EXTERNALSYM DDWAITVB_BLOCKEND}
  1948. (****************************************************************************
  1949.  *
  1950.  * DIRECTDRAW GETFLIPSTATUS FLAGS
  1951.  *
  1952.  ****************************************************************************)
  1953. (*
  1954.  * is it OK to flip now?
  1955.  *)
  1956.   DDGFS_CANFLIP                   = $00000001;
  1957.   {$EXTERNALSYM DDGFS_CANFLIP}
  1958. (*
  1959.  * is the last flip finished?
  1960.  *)
  1961.   DDGFS_ISFLIPDONE                = $00000002;
  1962.   {$EXTERNALSYM DDGFS_ISFLIPDONE}
  1963. (****************************************************************************
  1964.  *
  1965.  * DIRECTDRAW GETBLTSTATUS FLAGS
  1966.  *
  1967.  ****************************************************************************)
  1968. (*
  1969.  * is it OK to blt now?
  1970.  *)
  1971.   DDGBS_CANBLT                    = $00000001;
  1972.   {$EXTERNALSYM DDGBS_CANBLT}
  1973. (*
  1974.  * is the blt to the surface finished?
  1975.  *)
  1976.   DDGBS_ISBLTDONE                 = $00000002;
  1977.   {$EXTERNALSYM DDGBS_ISBLTDONE}
  1978. (****************************************************************************
  1979.  *
  1980.  * DIRECTDRAW ENUMOVERLAYZORDER FLAGS
  1981.  *
  1982.  ****************************************************************************)
  1983. (*
  1984.  * Enumerate overlays back to front.