Skip to content

Commit 22f9647

Browse files
committed
pixelbender: Distinguish Meta1 and Meta2 opcodes
This is useful for disassembly.
1 parent 830dd58 commit 22f9647

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

render/pixel_bender/src/parser.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ pub enum PixelBenderParam {
350350
pub struct PixelBenderMetadata {
351351
pub key: String,
352352
pub value: PixelBenderType,
353+
pub is_meta2: bool,
353354
}
354355

355356
/// Parses PixelBender bytecode
@@ -469,6 +470,7 @@ fn read_op<R: Read>(
469470
metadata.push(PixelBenderMetadata {
470471
key: meta_key,
471472
value: meta_value,
473+
is_meta2: matches!(opcode, Opcode::PBJMeta2),
472474
});
473475
}
474476
Opcode::PBJParam => {

render/pixel_bender/src/tests.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,22 @@ fn simple_shader() {
8282
value: PixelBenderType::TString(
8383
"The size of the image to which the kernel is applied".to_string(),
8484
),
85+
is_meta2: true,
8586
},
8687
PixelBenderMetadata {
8788
key: "minValue".to_string(),
8889
value: PixelBenderType::TFloat2(0.0, 0.0),
90+
is_meta2: true,
8991
},
9092
PixelBenderMetadata {
9193
key: "maxValue".to_string(),
9294
value: PixelBenderType::TFloat2(100.0, 100.0),
95+
is_meta2: true,
9396
},
9497
PixelBenderMetadata {
9598
key: "defaultValue".to_string(),
9699
value: PixelBenderType::TFloat2(50.0, 50.0),
100+
is_meta2: true,
97101
},
98102
],
99103
},
@@ -110,18 +114,22 @@ fn simple_shader() {
110114
PixelBenderMetadata {
111115
key: "description".to_string(),
112116
value: PixelBenderType::TString("The radius of the effect".to_string()),
117+
is_meta2: true,
113118
},
114119
PixelBenderMetadata {
115120
key: "minValue".to_string(),
116121
value: PixelBenderType::TFloat(0.0),
122+
is_meta2: true,
117123
},
118124
PixelBenderMetadata {
119125
key: "maxValue".to_string(),
120126
value: PixelBenderType::TFloat(50.0),
127+
is_meta2: true,
121128
},
122129
PixelBenderMetadata {
123130
key: "defaultValue".to_string(),
124131
value: PixelBenderType::TFloat(25.0),
132+
is_meta2: true,
125133
},
126134
],
127135
},
@@ -130,20 +138,24 @@ fn simple_shader() {
130138
PixelBenderMetadata {
131139
key: "namespace".to_string(),
132140
value: PixelBenderType::TString("Adobe::Example".to_string()),
141+
is_meta2: false,
133142
},
134143
PixelBenderMetadata {
135144
key: "vendor".to_string(),
136145
value: PixelBenderType::TString("Adobe examples".to_string()),
146+
is_meta2: false,
137147
},
138148
PixelBenderMetadata {
139149
key: "version".to_string(),
140150
value: PixelBenderType::TInt(1),
151+
is_meta2: false,
141152
},
142153
PixelBenderMetadata {
143154
key: "description".to_string(),
144155
value: PixelBenderType::TString(
145156
"A shader that does nothing, but does it well.".to_string(),
146157
),
158+
is_meta2: false,
147159
},
148160
],
149161
operations: vec![

0 commit comments

Comments
 (0)