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
|
---|