Appendix - spiralhalo/CanvasTutorial GitHub Wiki

Appendix: Revision history

The full edit history of this tutorial can be seen by cloning the git repo.

This page specifically list changes that are crucial to the tutorial content, in case earlier learners are interested in learning new things that might be added as Canvas or my understanding of shader changes without having to scan through the entire thing.

March 25, 2021

Due to the update to 1.17 and subsequently Core OpenGL 3.2, the varying keyword will no longer be used in Canvas's codebase. References to varyings in this tutorial has been updated by the more modern concept of input and output.

April 10, 2021

Late update with the same reason as above. gl_FragData is also removed from core OpenGL. Instead, use output variables to output fragment color into the framebuffer color attachments. Here is how:

// Add this next to the inputs on the top of fragment shaders

out vec4 fragColor; // This is for single output

// out vec4[2] fragColor; // Use this if you have 2 outputs
// out vec4[3] fragColor; // Use this if you have 3 outputs, etc...


// ...



// Finally, replace gl_FragData[0] with fragColor

// gl_FragData[0] = color; // <- the old version
fragColor = color; // <- the new version

// if your framebuffer has multiple color attachments, do this instead:
// fragColor[0] = color1;
// fragColor[1] = color2;
// fragColor[2] = color3; // etc...

January 9, 2023

My (Ambrosia) attempt to update this to the latest Canvas specifications, specifically FREX 6 and Canvas 1.18+.