DXTypes.pas
上传用户:ctlcnc
上传日期:2021-12-10
资源大小:4933k
文件大小:6k
源码类别:

2D图形编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {*                                                                            *}
  3. {*  Copyright (C) Microsoft Corporation.  All Rights Reserved.                *}
  4. {*                                                                            *}
  5. {*  Files:      dxsdkver.h, extracts from various DirectX SDK include files   *}
  6. {*  Content:    DirectX 9.0 headers common types                              *}
  7. {*                                                                            *}
  8. {*  DirectX 9.0 Delphi / FreePascal adaptation by Alexey Barkovoy             *}
  9. {*  E-Mail: directx@clootie.ru                                                *}
  10. {*                                                                            *}
  11. {*  Latest version can be downloaded from:                                    *}
  12. {*    http://www.clootie.ru                                                   *}
  13. {*    http://sourceforge.net/projects/delphi-dx9sdk                           *}
  14. {*                                                                            *}
  15. {*----------------------------------------------------------------------------*}
  16. {*  $Id: DXTypes.pas,v 1.20 2006/10/21 21:30:10 clootie Exp $  }
  17. {******************************************************************************}
  18. {                                                                              }
  19. { The contents of this file are used with permission, subject to the Mozilla   }
  20. { Public License Version 1.1 (the "License"); you may not use this file except }
  21. { in compliance with the License. You may obtain a copy of the License at      }
  22. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  23. {                                                                              }
  24. { Software distributed under the License is distributed on an "AS IS" basis,   }
  25. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  26. { the specific language governing rights and limitations under the License.    }
  27. {                                                                              }
  28. { Alternatively, the contents of this file may be used under the terms of the  }
  29. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  30. { provisions of the LGPL License are applicable instead of those above.        }
  31. { If you wish to allow use of your version of this file only under the terms   }
  32. { of the LGPL License and not to allow others to use your version of this file }
  33. { under the MPL, indicate your decision by deleting  the provisions above and  }
  34. { replace  them with the notice and other provisions required by the LGPL      }
  35. { License.  If you do not delete the provisions above, a recipient may use     }
  36. { your version of this file under either the MPL or the LGPL License.          }
  37. {                                                                              }
  38. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  39. {                                                                              }
  40. {******************************************************************************}
  41. {$I DirectX.inc}
  42. unit DXTypes;
  43. interface
  44. (*$HPPEMIT '#include "dxsdkver.h"' *)
  45. uses Windows;
  46. (*==========================================================================;
  47.  *
  48.  *  File:   dxsdkver.h
  49.  *  Content:    DirectX SDK Version Include File
  50.  *
  51.  ****************************************************************************)
  52. const
  53.   _DXSDK_PRODUCT_MAJOR  = 9;
  54.   {$EXTERNALSYM _DXSDK_PRODUCT_MAJOR}
  55.   _DXSDK_PRODUCT_MINOR  = 15;
  56.   {$EXTERNALSYM _DXSDK_PRODUCT_MINOR}
  57.   _DXSDK_BUILD_MAJOR    = 779;
  58.   {$EXTERNALSYM _DXSDK_BUILD_MAJOR}
  59.   _DXSDK_BUILD_MINOR    = 0000;
  60.   {$EXTERNALSYM _DXSDK_BUILD_MINOR}
  61. (****************************************************************************
  62.  *  Other files
  63.  ****************************************************************************)
  64. type
  65.   // TD3DValue is the fundamental Direct3D fractional data type
  66.   D3DVALUE = Single;
  67.   {$EXTERNALSYM D3DVALUE}
  68.   TD3DValue = D3DVALUE;
  69.   {$NODEFINE TD3DValue}
  70.   PD3DValue = ^TD3DValue;
  71.   {$NODEFINE PD3DValue}
  72.   D3DCOLOR = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWord;
  73.   {$EXTERNALSYM D3DCOLOR}
  74.   TD3DColor = D3DCOLOR;
  75.   {$NODEFINE TD3DColor}
  76.   PD3DColor = ^TD3DColor;
  77.   {$NODEFINE PD3DColor}
  78.   _D3DVECTOR = packed record
  79.     x: Single;
  80.     y: Single;
  81.     z: Single;
  82.   end {_D3DVECTOR};
  83.   {$EXTERNALSYM _D3DVECTOR}
  84.   D3DVECTOR = _D3DVECTOR;
  85.   {$EXTERNALSYM D3DVECTOR}
  86.   TD3DVector = _D3DVECTOR;
  87.   {$NODEFINE TD3DVector}
  88.   PD3DVector = ^TD3DVector;
  89.   {$NODEFINE PD3DVector}
  90.   REFERENCE_TIME = LONGLONG;
  91.   {$EXTERNALSYM REFERENCE_TIME}
  92.   TReferenceTime = REFERENCE_TIME;
  93.   {$NODEFINE TReferenceTime}
  94.   PReferenceTime = ^TReferenceTime;
  95.   {$NODEFINE PReferenceTime}
  96. // ==================================================================
  97. // Here comes generic Windows types for Win32 / Win64 compatibility
  98. //
  99.   UInt64 = Int64; // for a while
  100.   //
  101.   // The INT_PTR is guaranteed to be the same size as a pointer.  Its
  102.   // size with change with pointer size (32/64).  It should be used
  103.   // anywhere that a pointer is cast to an integer type. UINT_PTR is
  104.   // the unsigned variation.
  105.   //
  106.   {$EXTERNALSYM INT_PTR}
  107.   {$EXTERNALSYM UINT_PTR}
  108.   {$EXTERNALSYM LONG_PTR}
  109.   {$EXTERNALSYM ULONG_PTR}
  110.   {$EXTERNALSYM DWORD_PTR}
  111.   {$IFDEF WIN64}
  112.   INT_PTR = Int64;
  113.   UINT_PTR = UInt64;
  114.   LONG_PTR = Int64;
  115.   ULONG_PTR = UInt64;
  116.   DWORD_PTR = UInt64;
  117.   {$ELSE}
  118.   INT_PTR = Longint;
  119.   UINT_PTR = LongWord;
  120.   LONG_PTR = Longint;
  121.   ULONG_PTR = LongWord;
  122.   DWORD_PTR = LongWord;
  123.   {$ENDIF}
  124.   PINT_PTR = ^INT_PTR;
  125.   PUINT_PTR = ^UINT_PTR;
  126.   PLONG_PTR = ^LONG_PTR;
  127.   PULONG_PTR = ^ULONG_PTR;
  128.   {$IFDEF WIN64}
  129.   PtrInt = Int64;
  130.   PtrUInt = UInt64;
  131.   {$ELSE}
  132.   PtrInt = Longint;
  133.   PtrUInt = Longword;
  134.   {$ENDIF}
  135.   PPtrInt = ^PtrInt;
  136.   PPtrUInt = ^PtrUInt;
  137.   //
  138.   // SIZE_T used for counts or ranges which need to span the range of
  139.   // of a pointer.  SSIZE_T is the signed variation.
  140.   //
  141.   {$EXTERNALSYM SIZE_T}
  142.   {$EXTERNALSYM SSIZE_T}
  143.   SIZE_T = ULONG_PTR;
  144.   SSIZE_T = LONG_PTR;
  145.   PSIZE_T = ^SIZE_T;
  146.   PSSIZE_T = ^SSIZE_T;
  147.   SizeInt = SSIZE_T;
  148.   SizeUInt = SIZE_T;
  149.   PSizeInt = PSSIZE_T;
  150.   PSizeUInt = PSIZE_T;
  151. implementation
  152. end.