|
@@ -54,9 +54,9 @@ int ShaderPreprocessor::Tokenizer::get_index() const {
|
|
|
return index;
|
|
|
}
|
|
|
|
|
|
-void ShaderPreprocessor::Tokenizer::get_and_clear_generated(Vector<ShaderPreprocessor::Token> *r_out) {
|
|
|
- for (int i = 0; i < generated.size(); i++) {
|
|
|
- r_out->push_back(generated[i]);
|
|
|
+void ShaderPreprocessor::Tokenizer::get_and_clear_generated(LocalVector<char32_t> *r_out) {
|
|
|
+ for (uint32_t i = 0; i < generated.size(); i++) {
|
|
|
+ r_out->push_back(generated[i].text);
|
|
|
}
|
|
|
generated.clear();
|
|
|
}
|
|
@@ -1206,18 +1206,14 @@ Error ShaderPreprocessor::preprocess(State *p_state, const String &p_code, Strin
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ // Add autogenerated tokens if there are any.
|
|
|
+ p_tokenizer.get_and_clear_generated(&output);
|
|
|
+
|
|
|
if (state->disabled) {
|
|
|
// Preprocessor was disabled.
|
|
|
// Read the rest of the file into the output.
|
|
|
output.push_back(t.text);
|
|
|
continue;
|
|
|
- } else {
|
|
|
- // Add autogenerated tokens.
|
|
|
- Vector<Token> generated;
|
|
|
- p_tokenizer.get_and_clear_generated(&generated);
|
|
|
- for (int i = 0; i < generated.size(); i++) {
|
|
|
- output.push_back(generated[i].text);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if (t.text == '#') {
|