diff options
Diffstat (limited to 'source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp')
-rw-r--r-- | source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp | 137 |
1 files changed, 1 insertions, 136 deletions
diff --git a/source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp b/source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp index 2922470..421788a 100644 --- a/source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp +++ b/source/Irrlicht/OpenGL/FixedPipelineRenderer.cpp @@ -1,3 +1,4 @@ +// Copyright (C) 2023 Vitaliy Lobachevskiy // Copyright (C) 2014 Patryk Nadrowski // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in Irrlicht.h @@ -137,142 +138,6 @@ void COpenGL3MaterialSolidCB::OnSetConstants(IMaterialRendererServices* services services->setPixelShaderConstant(TextureUnit0ID, &TextureUnit0, 1); } -// EMT_SOLID_2_LAYER + EMT_DETAIL_MAP - -COpenGL3MaterialSolid2CB::COpenGL3MaterialSolid2CB() : - FirstUpdate(true), TMatrix0ID(-1), TMatrix1ID(-1), TextureUsage0ID(-1), TextureUsage1ID(-1), TextureUnit0ID(-1), TextureUnit1ID(-1), - TextureUsage0(0), TextureUsage1(0), TextureUnit0(0), TextureUnit1(1) -{ -} - -void COpenGL3MaterialSolid2CB::OnSetMaterial(const SMaterial& material) -{ - COpenGL3MaterialBaseCB::OnSetMaterial(material); - - TextureUsage0 = (material.TextureLayer[0].Texture) ? 1 : 0; - TextureUsage1 = (material.TextureLayer[1].Texture) ? 1 : 0; -} - -void COpenGL3MaterialSolid2CB::OnSetConstants(IMaterialRendererServices* services, s32 userData) -{ - COpenGL3MaterialBaseCB::OnSetConstants(services, userData); - - IVideoDriver* driver = services->getVideoDriver(); - - if (FirstUpdate) - { - TMatrix0ID = services->getVertexShaderConstantID("uTMatrix0"); - TMatrix1ID = services->getVertexShaderConstantID("uTMatrix1"); - TextureUsage0ID = services->getVertexShaderConstantID("uTextureUsage0"); - TextureUsage1ID = services->getVertexShaderConstantID("uTextureUsage1"); - TextureUnit0ID = services->getVertexShaderConstantID("uTextureUnit0"); - TextureUnit1ID = services->getVertexShaderConstantID("uTextureUnit1"); - - FirstUpdate = false; - } - - core::matrix4 Matrix = driver->getTransform(ETS_TEXTURE_0); - services->setPixelShaderConstant(TMatrix0ID, Matrix.pointer(), 16); - - Matrix = driver->getTransform(E_TRANSFORMATION_STATE(ETS_TEXTURE_0 + 1)); - services->setPixelShaderConstant(TMatrix1ID, Matrix.pointer(), 16); - - services->setPixelShaderConstant(TextureUsage0ID, &TextureUsage0, 1); - services->setPixelShaderConstant(TextureUsage1ID, &TextureUsage1, 1); - services->setPixelShaderConstant(TextureUnit0ID, &TextureUnit0, 1); - services->setPixelShaderConstant(TextureUnit1ID, &TextureUnit1, 1); -} - -// EMT_LIGHTMAP + EMT_LIGHTMAP_ADD + EMT_LIGHTMAP_M2 + EMT_LIGHTMAP_M4 - -COpenGL3MaterialLightmapCB::COpenGL3MaterialLightmapCB(float modulate) : - FirstUpdate(true), TMatrix0ID(-1), TMatrix1ID(-1), ModulateID(-1), TextureUsage0ID(-1), TextureUsage1ID(-1), TextureUnit0ID(-1), TextureUnit1ID(-1), - Modulate(modulate), TextureUsage0(0), TextureUsage1(0), TextureUnit0(0), TextureUnit1(1) -{ -} - -void COpenGL3MaterialLightmapCB::OnSetMaterial(const SMaterial& material) -{ - COpenGL3MaterialBaseCB::OnSetMaterial(material); - - TextureUsage0 = (material.TextureLayer[0].Texture) ? 1 : 0; - TextureUsage1 = (material.TextureLayer[1].Texture) ? 1 : 0; -} - -void COpenGL3MaterialLightmapCB::OnSetConstants(IMaterialRendererServices* services, s32 userData) -{ - COpenGL3MaterialBaseCB::OnSetConstants(services, userData); - - IVideoDriver* driver = services->getVideoDriver(); - - if (FirstUpdate) - { - TMatrix0ID = services->getVertexShaderConstantID("uTMatrix0"); - TMatrix1ID = services->getVertexShaderConstantID("uTMatrix1"); - ModulateID = services->getVertexShaderConstantID("uModulate"); - TextureUsage0ID = services->getVertexShaderConstantID("uTextureUsage0"); - TextureUsage1ID = services->getVertexShaderConstantID("uTextureUsage1"); - TextureUnit0ID = services->getVertexShaderConstantID("uTextureUnit0"); - TextureUnit1ID = services->getVertexShaderConstantID("uTextureUnit1"); - - FirstUpdate = false; - } - - core::matrix4 Matrix = driver->getTransform(ETS_TEXTURE_0); - services->setPixelShaderConstant(TMatrix0ID, Matrix.pointer(), 16); - - Matrix = driver->getTransform(E_TRANSFORMATION_STATE(ETS_TEXTURE_0 + 1)); - services->setPixelShaderConstant(TMatrix1ID, Matrix.pointer(), 16); - - services->setPixelShaderConstant(ModulateID, &Modulate, 1); - services->setPixelShaderConstant(TextureUsage0ID, &TextureUsage0, 1); - services->setPixelShaderConstant(TextureUsage1ID, &TextureUsage1, 1); - services->setPixelShaderConstant(TextureUnit0ID, &TextureUnit0, 1); - services->setPixelShaderConstant(TextureUnit1ID, &TextureUnit1, 1); -} - -// EMT_SPHERE_MAP + EMT_REFLECTION_2_LAYER + EMT_TRANSPARENT_REFLECTION_2_LAYER - -COpenGL3MaterialReflectionCB::COpenGL3MaterialReflectionCB() : - FirstUpdate(true), TMatrix0ID(-1), TextureUsage0ID(-1), TextureUsage1ID(-1), TextureUnit0ID(-1), TextureUnit1ID(-1), - TextureUsage0(0), TextureUsage1(0), TextureUnit0(0), TextureUnit1(1) -{ -} - -void COpenGL3MaterialReflectionCB::OnSetMaterial(const SMaterial& material) -{ - COpenGL3MaterialBaseCB::OnSetMaterial(material); - - TextureUsage0 = (material.TextureLayer[0].Texture) ? 1 : 0; - TextureUsage1 = (material.TextureLayer[1].Texture) ? 1 : 0; -} - -void COpenGL3MaterialReflectionCB::OnSetConstants(IMaterialRendererServices* services, s32 userData) -{ - COpenGL3MaterialBaseCB::OnSetConstants(services, userData); - - IVideoDriver* driver = services->getVideoDriver(); - - if (FirstUpdate) - { - TMatrix0ID = services->getVertexShaderConstantID("uTMatrix0"); - TextureUsage0ID = services->getVertexShaderConstantID("uTextureUsage0"); - TextureUsage1ID = services->getVertexShaderConstantID("uTextureUsage1"); - TextureUnit0ID = services->getVertexShaderConstantID("uTextureUnit0"); - TextureUnit1ID = services->getVertexShaderConstantID("uTextureUnit1"); - - FirstUpdate = false; - } - - core::matrix4 Matrix = driver->getTransform(ETS_TEXTURE_0); - services->setPixelShaderConstant(TMatrix0ID, Matrix.pointer(), 16); - - services->setPixelShaderConstant(TextureUsage0ID, &TextureUsage0, 1); - services->setPixelShaderConstant(TextureUsage1ID, &TextureUsage1, 1); - services->setPixelShaderConstant(TextureUnit0ID, &TextureUnit0, 1); - services->setPixelShaderConstant(TextureUnit1ID, &TextureUnit1, 1); -} - // EMT_ONETEXTURE_BLEND COpenGL3MaterialOneTextureBlendCB::COpenGL3MaterialOneTextureBlendCB() : |