[2236] | 1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
| 2 | //
|
---|
| 3 | // ## ######
|
---|
| 4 | // ###### ###
|
---|
| 5 | // ## ############### Shark 3D Engine (www.shark3d.com)
|
---|
| 6 | // ########## # # #
|
---|
| 7 | // ######## Copyright (c) 1996-2006 Spinor GmbH.
|
---|
| 8 | // ######### # # # All rights reserved.
|
---|
| 9 | // ## ##########
|
---|
| 10 | // ##
|
---|
| 11 | //
|
---|
| 12 | ///////////////////////////////////////////////////////////////////////////////
|
---|
| 13 |
|
---|
| 14 | //@cpp
|
---|
| 15 |
|
---|
| 16 | #ifndef S3D_DRV_D3D9_PROGUTIL_H
|
---|
| 17 | #define S3D_DRV_D3D9_PROGUTIL_H
|
---|
| 18 |
|
---|
| 19 | #include "drv_d3d9_prog.h"
|
---|
| 20 | #include "lib/stream/lib_stream_prepro.h"
|
---|
| 21 | #include "util/snk/util_snk_extract.h"
|
---|
| 22 |
|
---|
| 23 | ///////////////////////////////////////////////////////////////////////////////
|
---|
| 24 |
|
---|
| 25 | class s3d_CDrvD3d9ProgUtil
|
---|
| 26 | {
|
---|
| 27 | public:
|
---|
| 28 | static bool ParseMajorMinor(
|
---|
| 29 | int &Major, int &Minor,
|
---|
| 30 | s3d_CSysIntps CapLen, const s3d_CSysChar *CapStart);
|
---|
| 31 | static bool ParseNum(
|
---|
| 32 | int &Val,
|
---|
| 33 | s3d_CSysIntps CapLen, const s3d_CSysChar *CapStart,
|
---|
| 34 | s3d_CSysIntps &Parse);
|
---|
| 35 | static int CompVer(
|
---|
| 36 | int MajorA, int MinorA, int MajorB, int MinorB);
|
---|
| 37 | static bool s3d_CDrvD3d9ProgUtil::IsVersAllowed(
|
---|
| 38 | int MaxMajor, int MaxMinor, s3d_CUtilStr_cr ReqVer);
|
---|
| 39 | static s3d_CUtilStr s3d_CDrvD3d9ProgUtil::StrOfVers(DWORD Vers);
|
---|
| 40 |
|
---|
| 41 | static s3d_CUtilStr GenProfileString(
|
---|
| 42 | s3d_CUtilStr_cr Vers, s3d_CUtilStr_cr Type);
|
---|
| 43 |
|
---|
| 44 | static void D3dMarcoArrayOfPreprocArray(
|
---|
| 45 | s3d_CUtilOwnArray<D3DXMACRO> &D3dMacroArray,
|
---|
| 46 | s3d_CLibStreamPreproState *PreproState);
|
---|
| 47 |
|
---|
| 48 | static void GetProgDecl(
|
---|
| 49 | const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CDrvD3d9ProgDecl &ProgDecl,
|
---|
| 50 | s3d_CSysIntps FuncSize, const DWORD *FuncData);
|
---|
| 51 | static int CalcProgUsage(
|
---|
| 52 | const s3d_CDrvD3d9ProgCtx *ProgCtx,
|
---|
| 53 | s3d_CSysIntps SemanticsCnt, const D3DXSEMANTIC *SemanticArray);
|
---|
| 54 | static void CalcVertBufDesc(
|
---|
| 55 | const s3d_CDrvD3d9ProgCtx *ProgCtx,
|
---|
| 56 | const s3d_CDrvGfxCharge *Charge,
|
---|
| 57 | int VertProgUsage, const s3d_CDrvD3d9VertComprFmt *VertComprFmt,
|
---|
| 58 | s3d_CDrvD3d9VertBufDesc &VertBufDesc);
|
---|
| 59 | static void ExtractComprFmt(
|
---|
| 60 | const s3d_CDrvD3d9ProgCtx *ProgCtx,
|
---|
| 61 | s3d_CUtilStr_cr CodeInfo, s3d_CUtilStr_cr CodeName,
|
---|
| 62 | s3d_CDrvD3d9Prog *Prog, s3d_CUtilSnkExtract &SnkExtract);
|
---|
| 63 |
|
---|
| 64 | static bool CreateCodeBufOfBinData(
|
---|
| 65 | const s3d_CDrvD3d9ProgCtx *ProgCtx, s3d_CDrvD3d9Buf &CodeBuf,
|
---|
| 66 | s3d_CSysIntps BinDataLen, const s3d_CSysIntm *BinData);
|
---|
| 67 | };
|
---|
| 68 |
|
---|
| 69 | ///////////////////////////////////////////////////////////////////////////////
|
---|
| 70 |
|
---|
| 71 | #endif
|
---|