175 lines
6.4 KiB
ObjectPascal
175 lines
6.4 KiB
ObjectPascal
{******************************************************************************}
|
|
{* *}
|
|
{* Copyright (C) Microsoft Corporation. All Rights Reserved. *}
|
|
{* *}
|
|
{* Files: dxsdkver.h, extracts from various DirectX SDK include files *}
|
|
{* Content: DirectX 9.0 headers common types *}
|
|
{* *}
|
|
{* DirectX 9.0 Delphi / FreePascal adaptation by Alexey Barkovoy *}
|
|
{* E-Mail: directx@clootie.ru *}
|
|
{* *}
|
|
{* Latest version can be downloaded from: *}
|
|
{* http://www.clootie.ru *}
|
|
{* http://sourceforge.net/projects/delphi-dx9sdk *}
|
|
{* *}
|
|
{*----------------------------------------------------------------------------*}
|
|
{* $Id: DXTypes.pas,v 1.23 2007/04/14 20:57:43 clootie Exp $ }
|
|
{******************************************************************************}
|
|
{ }
|
|
{ The contents of this file are used with permission, subject to the Mozilla }
|
|
{ Public License Version 1.1 (the "License"); you may not use this file except }
|
|
{ in compliance with the License. You may obtain a copy of the License at }
|
|
{ http://www.mozilla.org/MPL/MPL-1.1.html }
|
|
{ }
|
|
{ Software distributed under the License is distributed on an "AS IS" basis, }
|
|
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
|
|
{ the specific language governing rights and limitations under the License. }
|
|
{ }
|
|
{ Alternatively, the contents of this file may be used under the terms of the }
|
|
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
|
|
{ provisions of the LGPL License are applicable instead of those above. }
|
|
{ If you wish to allow use of your version of this file only under the terms }
|
|
{ of the LGPL License and not to allow others to use your version of this file }
|
|
{ under the MPL, indicate your decision by deleting the provisions above and }
|
|
{ replace them with the notice and other provisions required by the LGPL }
|
|
{ License. If you do not delete the provisions above, a recipient may use }
|
|
{ your version of this file under either the MPL or the LGPL License. }
|
|
{ }
|
|
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
|
|
{ }
|
|
{******************************************************************************}
|
|
|
|
{$I DirectX.inc}
|
|
|
|
unit DXTypes;
|
|
|
|
interface
|
|
|
|
(*$HPPEMIT '#include "dxsdkver.h"' *)
|
|
|
|
uses Windows;
|
|
|
|
(*==========================================================================;
|
|
*
|
|
* File: dxsdkver.h
|
|
* Content: DirectX SDK Version Include File
|
|
*
|
|
****************************************************************************)
|
|
const
|
|
_DXSDK_PRODUCT_MAJOR = 9;
|
|
{$EXTERNALSYM _DXSDK_PRODUCT_MAJOR}
|
|
_DXSDK_PRODUCT_MINOR = 18;
|
|
{$EXTERNALSYM _DXSDK_PRODUCT_MINOR}
|
|
_DXSDK_BUILD_MAJOR = 944;
|
|
{$EXTERNALSYM _DXSDK_BUILD_MAJOR}
|
|
_DXSDK_BUILD_MINOR = 0000;
|
|
{$EXTERNALSYM _DXSDK_BUILD_MINOR}
|
|
|
|
|
|
|
|
(****************************************************************************
|
|
* Other files
|
|
****************************************************************************)
|
|
type
|
|
// TD3DValue is the fundamental Direct3D fractional data type
|
|
D3DVALUE = Single;
|
|
{$EXTERNALSYM D3DVALUE}
|
|
TD3DValue = D3DVALUE;
|
|
{$NODEFINE TD3DValue}
|
|
PD3DValue = ^TD3DValue;
|
|
{$NODEFINE PD3DValue}
|
|
|
|
D3DCOLOR = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWord;
|
|
{$EXTERNALSYM D3DCOLOR}
|
|
TD3DColor = D3DCOLOR;
|
|
{$NODEFINE TD3DColor}
|
|
PD3DColor = ^TD3DColor;
|
|
{$NODEFINE PD3DColor}
|
|
|
|
_D3DVECTOR = packed record
|
|
x: Single;
|
|
y: Single;
|
|
z: Single;
|
|
end {_D3DVECTOR};
|
|
{$EXTERNALSYM _D3DVECTOR}
|
|
D3DVECTOR = _D3DVECTOR;
|
|
{$EXTERNALSYM D3DVECTOR}
|
|
TD3DVector = _D3DVECTOR;
|
|
{$NODEFINE TD3DVector}
|
|
PD3DVector = ^TD3DVector;
|
|
{$NODEFINE PD3DVector}
|
|
|
|
REFERENCE_TIME = LONGLONG;
|
|
{$EXTERNALSYM REFERENCE_TIME}
|
|
TReferenceTime = REFERENCE_TIME;
|
|
{$NODEFINE TReferenceTime}
|
|
PReferenceTime = ^TReferenceTime;
|
|
{$NODEFINE PReferenceTime}
|
|
|
|
|
|
// ==================================================================
|
|
// Here comes generic Windows types for Win32 / Win64 compatibility
|
|
//
|
|
|
|
UInt64 = Int64; // for a while
|
|
|
|
//
|
|
// The INT_PTR is guaranteed to be the same size as a pointer. Its
|
|
// size with change with pointer size (32/64). It should be used
|
|
// anywhere that a pointer is cast to an integer type. UINT_PTR is
|
|
// the unsigned variation.
|
|
//
|
|
{$EXTERNALSYM INT_PTR}
|
|
{$EXTERNALSYM UINT_PTR}
|
|
{$EXTERNALSYM LONG_PTR}
|
|
{$EXTERNALSYM ULONG_PTR}
|
|
{$EXTERNALSYM DWORD_PTR}
|
|
{$IFDEF WIN64}
|
|
INT_PTR = Int64;
|
|
UINT_PTR = UInt64;
|
|
LONG_PTR = Int64;
|
|
ULONG_PTR = UInt64;
|
|
DWORD_PTR = UInt64;
|
|
{$ELSE}
|
|
INT_PTR = Longint;
|
|
UINT_PTR = LongWord;
|
|
LONG_PTR = Longint;
|
|
ULONG_PTR = LongWord;
|
|
DWORD_PTR = LongWord;
|
|
{$ENDIF}
|
|
PINT_PTR = ^INT_PTR;
|
|
PUINT_PTR = ^UINT_PTR;
|
|
PLONG_PTR = ^LONG_PTR;
|
|
PULONG_PTR = ^ULONG_PTR;
|
|
|
|
{$IFDEF WIN64}
|
|
PtrInt = Int64;
|
|
PtrUInt = UInt64;
|
|
{$ELSE}
|
|
PtrInt = Longint;
|
|
PtrUInt = Longword;
|
|
{$ENDIF}
|
|
PPtrInt = ^PtrInt;
|
|
PPtrUInt = ^PtrUInt;
|
|
|
|
//
|
|
// SIZE_T used for counts or ranges which need to span the range of
|
|
// of a pointer. SSIZE_T is the signed variation.
|
|
//
|
|
{$EXTERNALSYM SIZE_T}
|
|
{$EXTERNALSYM SSIZE_T}
|
|
SIZE_T = ULONG_PTR;
|
|
SSIZE_T = LONG_PTR;
|
|
PSIZE_T = ^SIZE_T;
|
|
PSSIZE_T = ^SSIZE_T;
|
|
|
|
SizeInt = SSIZE_T;
|
|
SizeUInt = SIZE_T;
|
|
PSizeInt = PSSIZE_T;
|
|
PSizeUInt = PSIZE_T;
|
|
|
|
implementation
|
|
|
|
end.
|
|
|