37 std::array<float, 4> mBaseColor = {1.0, 1.0, 1.0, 1.0};
41 std::array<float, 4> mFactorsPack = {
50 std::array<float, 4> mEmissiveAlphaCutoffPack = {0.0, 0.0, 0.0, 0.5};
55 std::array<float, 4> mSettings = {0.0, 0.0, 0.0, 0.0};
58 Uniform(
"u_baseColorFactor", bgfx::UniformType::Vec4);
61 Uniform(
"u_FactorsPack", bgfx::UniformType::Vec4);
63 Uniform mEmissiveAlphaCutoffPackUniform =
64 Uniform(
"u_emissiveAlphaCutoffPack", bgfx::UniformType::Vec4);
66 Uniform mSettingsUniform =
Uniform(
"u_settings", bgfx::UniformType::Vec4);
71 const std::array<float, 4>& currentBaseColor()
const {
return mBaseColor; }
73 const std::array<float, 4>& currentFactorsPack()
const
78 const std::array<float, 4>& currentEmissiveAlphaCutoffPack()
const
80 return mEmissiveAlphaCutoffPack;
83 const std::array<float, 4>& currentSettings()
const {
return mSettings; }
102 mEmissiveAlphaCutoffPack[3] =
m.alphaCutoff();
109 for (
int i = 0;
i < N_TEXTURES; ++
i) {
118 mBaseColor[0] =
m.baseColor().redF();
119 mBaseColor[1] =
m.baseColor().greenF();
120 mBaseColor[2] =
m.baseColor().blueF();
121 mBaseColor[3] =
m.baseColor().alphaF();
125 mFactorsPack[0] =
m.occlusionStrength();
126 mFactorsPack[1] =
m.roughness();
127 mFactorsPack[2] =
m.metallic();
128 mFactorsPack[3] =
m.normalScale();
130 mEmissiveAlphaCutoffPack[0] =
m.emissiveColor().redF();
131 mEmissiveAlphaCutoffPack[1] =
m.emissiveColor().greenF();
132 mEmissiveAlphaCutoffPack[2] =
m.emissiveColor().blueF();
137 mBaseColorUniform.
bind(&mBaseColor);
138 mFactorsPackUniform.
bind(&mFactorsPack);
139 mEmissiveAlphaCutoffPackUniform.
bind(&mEmissiveAlphaCutoffPack);
140 mSettingsUniform.
bind(&mSettings);