MCPcopy Create free account
hub / github.com/axmolengine/axmol / createBuiltInMaterial

Method createBuiltInMaterial

core/3d/MeshMaterial.cpp:76–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

74backend::ProgramState* MeshMaterial::_quadColorMaterialProgState = nullptr;
75
76void MeshMaterial::createBuiltInMaterial()
77{
78 auto* program = backend::Program::getBuiltinProgram(backend::ProgramType::SKINPOSITION_TEXTURE_3D);
79 _unLitMaterialSkinProgState = new backend::ProgramState(program);
80 _unLitMaterialSkin = new MeshMaterial();
81 if (_unLitMaterialSkin && _unLitMaterialSkin->initWithProgramState(_unLitMaterialSkinProgState))
82 {
83 _unLitMaterialSkin->_type = MeshMaterial::MaterialType::UNLIT;
84 }
85
86 program = backend::Program::getBuiltinProgram(backend::ProgramType::SKINPOSITION_NORMAL_TEXTURE_3D);
87 _diffuseMaterialSkinProgState = new backend::ProgramState(program);
88 _diffuseMaterialSkin = new MeshMaterial();
89 if (_diffuseMaterialSkin && _diffuseMaterialSkin->initWithProgramState(_diffuseMaterialSkinProgState))
90 {
91 _diffuseMaterialSkin->_type = MeshMaterial::MaterialType::DIFFUSE;
92 }
93
94 program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_NORMAL_TEXTURE_3D);
95 _diffuseMaterialProgState = new backend::ProgramState(program);
96 _diffuseMaterial = new MeshMaterial();
97 if (_diffuseMaterial && _diffuseMaterial->initWithProgramState(_diffuseMaterialProgState))
98 {
99 _diffuseMaterial->_type = MeshMaterial::MaterialType::DIFFUSE;
100 }
101
102 program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_TEXTURE_3D);
103 _unLitMaterialProgState = new backend::ProgramState(program);
104 _unLitMaterial = new MeshMaterial();
105 if (_unLitMaterial && _unLitMaterial->initWithProgramState(_unLitMaterialProgState))
106 {
107 _unLitMaterial->_type = MeshMaterial::MaterialType::UNLIT;
108 }
109
110 program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_TEXTURE_3D_INSTANCE);
111 _unLitInstanceMaterialProgState = new backend::ProgramState(program);
112 _unLitInstanceMaterial = new MeshMaterial();
113 if (_unLitInstanceMaterial && _unLitInstanceMaterial->initWithProgramState(_unLitInstanceMaterialProgState))
114 {
115 _unLitInstanceMaterial->_type = MeshMaterial::MaterialType::UNLIT_INSTANCE;
116 }
117
118 program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_3D);
119 _unLitNoTexMaterialProgState = new backend::ProgramState(program);
120 _unLitNoTexMaterial = new MeshMaterial();
121 if (_unLitNoTexMaterial && _unLitNoTexMaterial->initWithProgramState(_unLitNoTexMaterialProgState))
122 {
123 _unLitNoTexMaterial->_type = MeshMaterial::MaterialType::UNLIT_NOTEX;
124 }
125
126 program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_NORMAL_3D);
127 _diffuseNoTexMaterialProgState = new backend::ProgramState(program);
128 _diffuseNoTexMaterial = new MeshMaterial();
129 if (_diffuseNoTexMaterial && _diffuseNoTexMaterial->initWithProgramState(_diffuseNoTexMaterialProgState))
130 {
131 _diffuseNoTexMaterial->_type = MeshMaterial::MaterialType::DIFFUSE_NOTEX;
132 }
133

Callers

nothing calls this directly

Calls 2

initWithProgramStateMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected