@@ -127,6 +127,29 @@ prior to Jan 1, 2021.
127
127
128
128
## Learning Material Updates
129
129
130
+ ### [ OpenGL Preprocessor for Rust]
131
+
132
+ With the full power of Cargo build scripts and [ Tera] , you can create an advanced
133
+ GLSL preprocessor which can generate code conditionally, in loops, and even
134
+ inherit code from other templates.
135
+
136
+ ![ An OpenGL preprocessor for Rust] ( opengl_preprocessor.png )
137
+
138
+ Writing plain GLSL code is uncomfortable, code is quite often is duplicated, libraries
139
+ aren't something natural for GLSL (means you can't out of the box do #include "library.glsl").
140
+ The last point is especially problematic if some constants actually originate in
141
+ your game logic (like the number of player types). Updating these values manually
142
+ in your shader code is repetitive and prone to both error and simple forgetfulness.
143
+ It's really helpful to build some kind of preprocessor for your GLSL code,
144
+ which can include other files, so you can organize your code into manageable chunks.
145
+ With the power of [ Tera] , it's now easy to accomplish.
146
+ Because Rust is also often used for web projects, which need a lot of templated
147
+ web-pages preprocessing, we can borrow such technology for our needs,
148
+ combine it with cargo build scripts and create a compile-time preprocessing tool.
149
+
150
+ [ tera ] : https://tera.netlify.app
151
+ [ OpenGL Preprocessor for Rust ] : https://codecrash.me/an-opengl-preprocessor-for-rust
152
+
130
153
## Library & Tooling Updates
131
154
132
155
### [ Thunderdome]
0 commit comments