/////////////////////////////////////////////////////////////////////////////// // // ## ###### // ###### ### // ## ############### Shark 3D Engine (www.shark3d.com) // ########## # # # // ######## Copyright (c) 1996-2006 Spinor GmbH. // ######### # # # All rights reserved. // ## ########## // ## // /////////////////////////////////////////////////////////////////////////////// //@cpp #ifndef S3D_DRV_D3D9_PROGUTIL_H #define S3D_DRV_D3D9_PROGUTIL_H #include "drv_d3d9_prog.h" #include "lib/stream/lib_stream_prepro.h" #include "util/snk/util_snk_extract.h" /////////////////////////////////////////////////////////////////////////////// class s3d_CDrvD3d9ProgUtil { public: static bool ParseMajorMinor( int &Major, int &Minor, s3d_CSysIntps CapLen, const s3d_CSysChar *CapStart); static bool ParseNum( int &Val, s3d_CSysIntps CapLen, const s3d_CSysChar *CapStart, s3d_CSysIntps &Parse); static int CompVer( int MajorA, int MinorA, int MajorB, int MinorB); static bool s3d_CDrvD3d9ProgUtil::IsVersAllowed( int MaxMajor, int MaxMinor, s3d_CUtilStr_cr ReqVer); static s3d_CUtilStr s3d_CDrvD3d9ProgUtil::StrOfVers(DWORD Vers); static s3d_CUtilStr GenProfileString( s3d_CUtilStr_cr Vers, s3d_CUtilStr_cr Type); static void D3dMarcoArrayOfPreprocArray( s3d_CUtilOwnArray &D3dMacroArray, s3d_CLibStreamPreproState *PreproState); static void GetProgDecl( const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CDrvD3d9ProgDecl &ProgDecl, s3d_CSysIntps FuncSize, const DWORD *FuncData); static int CalcProgUsage( const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CSysIntps SemanticsCnt, const D3DXSEMANTIC *SemanticArray); static void CalcVertBufDesc( const s3d_CDrvD3d9ProgCtx *ProgCtx, const s3d_CDrvGfxCharge *Charge, int VertProgUsage, const s3d_CDrvD3d9VertComprFmt *VertComprFmt, s3d_CDrvD3d9VertBufDesc &VertBufDesc); static void ExtractComprFmt( const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CUtilStr_cr CodeInfo, s3d_CUtilStr_cr CodeName, s3d_CDrvD3d9Prog *Prog, s3d_CUtilSnkExtract &SnkExtract); static bool CreateCodeBufOfBinData( const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CDrvD3d9Buf &CodeBuf, s3d_CSysIntps BinDataLen, const s3d_CSysIntm *BinData); }; /////////////////////////////////////////////////////////////////////////////// #endif