blob: a98e88e3437ad9adc499b25508cb4402d7b37592 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
#if !defined TGSI_PARSE_H
#define TGSI_PARSE_H
#if defined __cplusplus
extern "C" {
#endif
struct tgsi_full_version
{
struct tgsi_version Version;
};
struct tgsi_full_header
{
struct tgsi_header Header;
struct tgsi_processor Processor;
};
struct tgsi_full_dst_register
{
struct tgsi_dst_register DstRegister;
struct tgsi_dst_register_ext_concode DstRegisterExtConcode;
struct tgsi_dst_register_ext_modulate DstRegisterExtModulate;
};
struct tgsi_full_src_register
{
struct tgsi_src_register SrcRegister;
struct tgsi_src_register_ext_swz SrcRegisterExtSwz;
struct tgsi_src_register_ext_mod SrcRegisterExtMod;
struct tgsi_src_register SrcRegisterInd;
struct tgsi_dimension SrcRegisterDim;
struct tgsi_src_register SrcRegisterDimInd;
};
struct tgsi_full_declaration
{
struct tgsi_declaration Declaration;
union
{
struct tgsi_declaration_range DeclarationRange;
struct tgsi_declaration_mask DeclarationMask;
} u;
struct tgsi_declaration_interpolation Interpolation;
struct tgsi_declaration_semantic Semantic;
};
struct tgsi_full_immediate
{
struct tgsi_immediate Immediate;
union
{
void *Pointer;
struct tgsi_immediate_float32 *ImmediateFloat32;
} u;
};
#define TGSI_FULL_MAX_DST_REGISTERS 2
#define TGSI_FULL_MAX_SRC_REGISTERS 4 /* TXD has 4 */
struct tgsi_full_instruction
{
struct tgsi_instruction Instruction;
struct tgsi_instruction_ext_nv InstructionExtNv;
struct tgsi_instruction_ext_label InstructionExtLabel;
struct tgsi_instruction_ext_texture InstructionExtTexture;
struct tgsi_full_dst_register FullDstRegisters[TGSI_FULL_MAX_DST_REGISTERS];
struct tgsi_full_src_register FullSrcRegisters[TGSI_FULL_MAX_SRC_REGISTERS];
};
union tgsi_full_token
{
struct tgsi_token Token;
struct tgsi_full_declaration FullDeclaration;
struct tgsi_full_immediate FullImmediate;
struct tgsi_full_instruction FullInstruction;
};
void
tgsi_full_token_init(
union tgsi_full_token *full_token );
void
tgsi_full_token_free(
union tgsi_full_token *full_token );
struct tgsi_parse_context
{
const struct tgsi_token *Tokens;
unsigned Position;
struct tgsi_full_version FullVersion;
struct tgsi_full_header FullHeader;
union tgsi_full_token FullToken;
};
#define TGSI_PARSE_OK 0
#define TGSI_PARSE_ERROR 1
unsigned
tgsi_parse_init(
struct tgsi_parse_context *ctx,
const struct tgsi_token *tokens );
void
tgsi_parse_free(
struct tgsi_parse_context *ctx );
boolean
tgsi_parse_end_of_tokens(
struct tgsi_parse_context *ctx );
void
tgsi_parse_token(
struct tgsi_parse_context *ctx );
unsigned
tgsi_num_tokens(const struct tgsi_token *tokens);
#if defined __cplusplus
}
#endif
#endif /* TGSI_PARSE_H */
|