.
.
.
auto& reversedShader = co::Assets::Get<co::Shader>("reversed"); --- 1
glm::vec2 pos = { 0.f, 0.f };
auto sprite = co::SpriteRenderer(); --- 2
auto reversed = co::SpriteRenderer(&reversedShader); --- 3
// Game loop
while (window.IsRunning())
{
window.Clear({ 79, 98, 128 });
sprite.Draw(flappyBird, pos); --- 4
.
.
.
This is some of my code.
- 1
reversedShaderis aco::Shader&variable, which is a shader that renders objects with reversed colors. - 2
spriteis aco::SpriteRenderervariable, which is a renderer with default shader. This renders objects normally. - 3
reversedis aco::SpriteRenderervariable, which is a renderer withreversedShader. This renders objects with reversed colors, as the shader does. - 4
This code is NOT usingreversed, I'm usingspriteto render myflappyBirdsprite with normal colors.
The problem is - the flappyBird looks reversed at the result. Even though it's rendering with normal shaders, normal renderer. I checked VS debugger and says each renderers are using different shader data. I am really confused.
I will show you my other codes if they are needed.
- Edit.
I found that it works as I want if I change some lines.
FROM
auto sprite = co::SpriteRenderer(); --- 2
auto reversed = co::SpriteRenderer(&reversedShader); --- 3
TO
auto reversed = co::SpriteRenderer(&reversedShader); --- 3
auto sprite = co::SpriteRenderer(); --- 2
Seems like they are working like a static or singleton class. Really confusing