Thank you for all of the feedback.
Since I am a beginner maybe my thinking isn't correct on this but I will share it in hopes of hearing what experts have to say on the matter:
I wanted to use one (1) shader for drawing such that I don't have to constantly switch shaders CPU-side. The shader would use float-based uniforms to chose whether to draw:
- Wireframe
- Skybox (using a texture2D sampler)
- Standard shading (with different texture channels for ambient, diffuse, specular, emissive, etc.)
- Within my standard shading model I plan to have the capability to calculate multiple lights and be able to position them, etc.
- I would also have the capability to turn lighting "on" or "off" such that I can just show the ambient/diffuse textures without lighting calculations.
The method I was going about doing this was as shown in my OP as an example; if a "drawWireframe" uniform was equal to 1.0, use the wireframe section of code in my shader but if that uniform was 0.0 then do something else.
In my mind this was simpler than using multiple shaders as I am just altering the uniforms in memory but not changing shaders.
From what I read you should avoid changing shaders if you can.
Let me know if this makes sense and if my thinking is correct here.
Thank you.