1 // Copyright (C) 2023 Vitaliy Lobachevskiy
2 // Copyright (C) 2014 Patryk Nadrowski
3 // This file is part of the "Irrlicht Engine".
4 // For conditions of distribution and use, see copyright notice in Irrlicht.h
8 #include "IShaderConstantSetCallBack.h"
9 #include "IMaterialRendererServices.h"
16 class COpenGL3MaterialBaseCB : public IShaderConstantSetCallBack
19 COpenGL3MaterialBaseCB();
21 virtual void OnSetMaterial(const SMaterial& material);
22 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
32 s32 MaterialAmbientID;
33 s32 MaterialDiffuseID;
34 s32 MaterialEmissiveID;
35 s32 MaterialSpecularID;
36 s32 MaterialShininessID;
48 SColorf GlobalAmbient;
49 SColorf MaterialAmbient;
50 SColorf MaterialDiffuse;
51 SColorf MaterialEmissive;
52 SColorf MaterialSpecular;
53 f32 MaterialShininess;
65 class COpenGL3MaterialSolidCB : public COpenGL3MaterialBaseCB
68 COpenGL3MaterialSolidCB();
70 virtual void OnSetMaterial(const SMaterial& material);
71 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);
86 class COpenGL3MaterialOneTextureBlendCB : public COpenGL3MaterialBaseCB
89 COpenGL3MaterialOneTextureBlendCB();
91 virtual void OnSetMaterial(const SMaterial& material);
92 virtual void OnSetConstants(IMaterialRendererServices* services, s32 userData);