📄 d3dx8.pas
字号:
// Module handle. if NULL, current module will be used.
// pSrcResource
// Resource name in module
// pSrcData
// Pointer to source code
// SrcDataLen
// Size of source code, in bytes
// Flags
// D3DXASM_xxx flags
// ppConstants
// Returns an ID3DXBuffer object containing constant declarations.
// ppCompiledShader
// Returns an ID3DXBuffer object containing the object code.
// ppCompilationErrors
// Returns an ID3DXBuffer object containing ascii error messages
//-------------------------------------------------------------------------
function D3DXAssembleShaderFromFileA(
pSrcFile: PAnsiChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromFileA';
{$EXTERNALSYM D3DXAssembleShaderFromFileA}
function D3DXAssembleShaderFromFileW(
pSrcFile: PWideChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromFileW';
{$EXTERNALSYM D3DXAssembleShaderFromFileW}
function D3DXAssembleShaderFromFile(
pSrcFile: PChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromFileA';
{$EXTERNALSYM D3DXAssembleShaderFromFile}
function D3DXAssembleShaderFromResourceA(
hSrcModule: HModule;
pSrcResource: PAnsiChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromResourceA';
{$EXTERNALSYM D3DXAssembleShaderFromResourceA}
function D3DXAssembleShaderFromResourceW(
hSrcModule: HModule;
pSrcResource: PWideChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromResourceW';
{$EXTERNALSYM D3DXAssembleShaderFromResourceW}
function D3DXAssembleShaderFromResource(
hSrcModule: HModule;
pSrcResource: PChar;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXAssembleShaderFromResourceA';
{$EXTERNALSYM D3DXAssembleShaderFromResource}
function D3DXAssembleShader(
const pSrcData;
SrcDataLen: LongWord;
Flags: DWord;
ppConstants: PID3DXBuffer;
ppCompiledShader: PID3DXBuffer;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll;
{$EXTERNALSYM D3DXAssembleShader}
///////////////////////////////////////////////////////////////////////////
// Misc APIs:
///////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
// D3DXGetErrorString:
// ------------------
// Returns the error string for given an hresult. Interprets all D3DX and
// D3D hresults.
//
// Parameters:
// hr
// The error code to be deciphered.
// pBuffer
// Pointer to the buffer to be filled in.
// BufferLen
// Count of characters in buffer. Any error message longer than this
// length will be truncated to fit.
//-------------------------------------------------------------------------
function D3DXGetErrorStringA(hr: HResult; pBuffer: PAnsiChar; BufferLen: LongWord): HResult; stdcall; external d3dx8dll name 'D3DXGetErrorStringA'; overload;
{$EXTERNALSYM D3DXGetErrorStringA}
function D3DXGetErrorStringW(hr: HResult; pBuffer: PWideChar; BufferLen: LongWord): HResult; stdcall; external d3dx8dll name 'D3DXGetErrorStringW'; overload;
{$EXTERNALSYM D3DXGetErrorStringW}
function D3DXGetErrorString(hr: HResult; pBuffer: PChar; BufferLen: LongWord): HResult; stdcall; external d3dx8dll name 'D3DXGetErrorStringA'; overload;
{$EXTERNALSYM D3DXGetErrorString}
// Object Pascal support functions for D3DXGetErrorString
function D3DXGetErrorStringA(hr: HResult): String; overload;
function D3DXGetErrorStringW(hr: HResult): WideString; overload;
{$IFNDEF UNICODE}
function D3DXGetErrorString(hr: HResult): String; overload;
{$ELSE}
function D3DXGetErrorString(hr: HResult): WideString; overload;
{$ENDIF}
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8effect.h
// Content: D3DX effect types and functions
//
///////////////////////////////////////////////////////////////////////////
const
D3DXFX_DONOTSAVESTATE = (1 shl 0);
{$EXTERNALSYM D3DXFX_DONOTSAVESTATE}
type
_D3DXPARAMETERTYPE = (
D3DXPT_DWORD {= 0},
D3DXPT_FLOAT {= 1},
D3DXPT_VECTOR {= 2},
D3DXPT_MATRIX {= 3},
D3DXPT_TEXTURE {= 4},
D3DXPT_VERTEXSHADER {= 5},
D3DXPT_PIXELSHADER {= 6},
D3DXPT_CONSTANT {= 7},
D3DXPT_STRING {= 8}
); {_D3DXPARAMETERTYPE}
{$EXTERNALSYM _D3DXPARAMETERTYPE}
D3DXPARAMETERTYPE = _D3DXPARAMETERTYPE;
{$EXTERNALSYM D3DXPARAMETERTYPE}
TD3DXParameterType = _D3DXPARAMETERTYPE;
type
PD3DXEffectDesc = ^TD3DXEffectDesc;
_D3DXEFFECT_DESC = packed record
Parameters: LongWord;
Techniques: LongWord;
end;
{$EXTERNALSYM _D3DXEFFECT_DESC}
D3DXEFFECT_DESC = _D3DXEFFECT_DESC;
{$EXTERNALSYM D3DXEFFECT_DESC}
TD3DXEffectDesc = _D3DXEFFECT_DESC;
PD3DXParameterDesc = ^TD3DXParameterDesc;
_D3DXPARAMETER_DESC = packed record
Name: PAnsiChar;
Index: PAnsiChar;
_Type: TD3DXParameterType;
end;
{$EXTERNALSYM _D3DXPARAMETER_DESC}
D3DXPARAMETER_DESC = _D3DXPARAMETER_DESC;
{$EXTERNALSYM D3DXPARAMETER_DESC}
TD3DXParameterDesc = _D3DXPARAMETER_DESC;
PD3DXTechniqueDesc = ^TD3DXTechniqueDesc;
_D3DXTECHNIQUE_DESC = packed record
Name: PAnsiChar;
Index: PAnsiChar;
Passes: LongWord;
end;
{$EXTERNALSYM _D3DXTECHNIQUE_DESC}
D3DXTECHNIQUE_DESC = _D3DXTECHNIQUE_DESC;
{$EXTERNALSYM D3DXTECHNIQUE_DESC}
TD3DXTechniqueDesc = _D3DXTECHNIQUE_DESC;
PD3DXPassDesc = ^TD3DXPassDesc;
_D3DXPASS_DESC = packed record
Name: PAnsiChar;
Index: PAnsiChar;
end;
{$EXTERNALSYM _D3DXPASS_DESC}
D3DXPASS_DESC = _D3DXPASS_DESC;
{$EXTERNALSYM D3DXPASS_DESC}
TD3DXPassDesc = _D3DXPASS_DESC;
//////////////////////////////////////////////////////////////////////////////
// ID3DXEffect ///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
{$HPPEMIT 'DECLARE_DINTERFACE_TYPE(ID3DXEffect);'}
{$EXTERNALSYM ID3DXEffect}
ID3DXEffect = interface(IUnknown)
['{648B1CEB-8D4E-4d66-B6FA-E44969E82E89}']
// ID3DXEffect
function GetDevice(out ppDevice: IDirect3DDevice8): HResult; stdcall;
function GetDesc(out pDesc: TD3DXEffectDesc): HResult; stdcall;
function GetParameterDesc(pParameter: PAnsiChar; out pDesc: TD3DXParameterDesc): HResult; stdcall;
function GetTechniqueDesc(pTechnique: PAnsiChar; out pDesc: TD3DXTechniqueDesc): HResult; stdcall;
function GetPassDesc(pTechnique, pPass: PAnsiChar; out pDesc: TD3DXPassDesc): HResult; stdcall;
function FindNextValidTechnique(pTechnique: PAnsiChar; out pDesc: TD3DXTechniqueDesc): HResult; stdcall;
function CloneEffect(pDevice: IDirect3DDevice8; out ppEffect: ID3DXEffect): HResult; stdcall;
function GetCompiledEffect(out ppCompiledEffect: ID3DXBuffer): HResult; stdcall;
function SetTechnique(pTechnique: PAnsiChar): HResult; stdcall;
function GetTechnique(out ppTechnique: PAnsiChar): HResult; stdcall;
function SetDword(pParameter: PAnsiChar; dw: DWord): HResult; stdcall;
function GetDword(pParameter: PAnsiChar; out pdw: DWord): HResult; stdcall;
function SetFloat(pParameter: PAnsiChar; f: Single): HResult; stdcall;
function GetFloat(pParameter: PAnsiChar; out pf: Single): HResult; stdcall;
function SetVector(pParameter: PAnsiChar; const pVector: TD3DXVector4): HResult; stdcall;
function GetVector(pParameter: PAnsiChar; out pVector: TD3DXVector4): HResult; stdcall;
function SetMatrix(pParameter: PAnsiChar; const pMatrix: TD3DXMatrix): HResult; stdcall;
function GetMatrix(pParameter: PAnsiChar; out pMatrix: TD3DXMatrix): HResult; stdcall;
function SetTexture(pParameter: PAnsiChar; pTexture: IDirect3DBaseTexture8): HResult; stdcall;
function GetTexture(pParameter: PAnsiChar; out ppTexture: IDirect3DBaseTexture8): HResult; stdcall;
function SetVertexShader(pParameter: PAnsiChar; Handle: DWord): HResult; stdcall;
function GetVertexShader(pParameter: PAnsiChar; out Handle: DWord): HResult; stdcall;
function SetPixelShader(pParameter: PAnsiChar; Handle: DWord): HResult; stdcall;
function GetPixelShader(pParameter: PAnsiChar; out Handle: DWord): HResult; stdcall;
function SetString(pParameter: PAnsiChar; pString: PAnsiChar): HResult; stdcall;
function GetString(pParameter: PAnsiChar; out ppString: PAnsiChar): HResult; stdcall;
function IsParameterUsed(pParameter: PAnsiChar): BOOL; stdcall;
function Validate: HResult; stdcall;
function _Begin(out pPasses: LongWord; Flags: DWord): HResult; stdcall;
function Pass(Pass: LongWord): HResult; stdcall;
function _End: HResult; stdcall;
function OnLostDevice: HResult; stdcall;
function OnResetDevice: HResult; stdcall;
end;
//////////////////////////////////////////////////////////////////////////////
// APIs //////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------------
// D3DXCreateEffect:
// -----------------
// Creates an effect from an ascii or binaray effect description.
//
// Parameters:
// pDevice
// Pointer of the device on which to create the effect
// pSrcFile
// Name of the file containing the effect description
// hSrcModule
// Module handle. if NULL, current module will be used.
// pSrcResource
// Resource name in module
// pSrcData
// Pointer to effect description
// SrcDataSize
// Size of the effect description in bytes
// ppEffect
// Returns a buffer containing created effect.
// ppCompilationErrors
// Returns a buffer containing any error messages which occurred during
// compile. Or NULL if you do not care about the error messages.
//
//----------------------------------------------------------------------------
function D3DXCreateEffectFromFileA(
pDevice: IDirect3DDevice8;
pSrcFile: PAnsiChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromFileA';
{$EXTERNALSYM D3DXCreateEffectFromFileA}
function D3DXCreateEffectFromFileW(
pDevice: IDirect3DDevice8;
pSrcFile: PWideChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromFileW';
{$EXTERNALSYM D3DXCreateEffectFromFileW}
function D3DXCreateEffectFromFile(
pDevice: IDirect3DDevice8;
pSrcFile: PChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromFileA';
{$EXTERNALSYM D3DXCreateEffectFromFile}
function D3DXCreateEffectFromResourceA(
pDevice: IDirect3DDevice8;
hSrcModule: HModule;
pSrcResource: PAnsiChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromResourceA';
{$EXTERNALSYM D3DXCreateEffectFromResourceA}
function D3DXCreateEffectFromResourceW(
pDevice: IDirect3DDevice8;
hSrcModule: HModule;
pSrcResource: PWideChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromResourceW';
{$EXTERNALSYM D3DXCreateEffectFromResourceW}
function D3DXCreateEffectFromResource(
pDevice: IDirect3DDevice8;
hSrcModule: HModule;
pSrcResource: PChar;
out ppEffect: ID3DXEffect;
ppCompilationErrors: PID3DXBuffer): HResult; stdcall; external d3dx8dll name 'D3DXCreateEffectFromResourceA';
{$EXTERNALSYM D3DXCreateEffectFromResource}
function D3DXCreateEffect(
pDevi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -