+PlainColor &Viewport::WorldColorProgram() noexcept {
+ if (active_prog != COLOR_WORLD) {
+ color_prog.Activate();
+ color_prog.SetVP(cam.View(), cam.Projection());
+ active_prog = COLOR_WORLD;
+ }
+ return color_prog;
+}
+
+PlainColor &Viewport::HUDColorProgram() noexcept {
+ if (active_prog != COLOR_HUD) {
+ color_prog.Activate();
+ color_prog.SetVP(canv.View(), canv.Projection());
+ active_prog = COLOR_HUD;
+ }
+ return color_prog;
+}
+
+SkyBoxShader &Viewport::SkyBoxProgram() noexcept {
+ if (active_prog != SKY_BOX) {
+ sky_prog.Activate();
+ DisableBlending();
+ DisableBackfaceCulling();
+ EqualDepthTest();
+ active_prog = SKY_BOX;
+ }
+ return sky_prog;
+}
+