Changeset View
Changeset View
Standalone View
Standalone View
source/graphics/ParticleEmitter.cpp
Show First 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | void CParticleEmitter::Bind(const CShaderProgramPtr& shader) | ||||
shader->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f); | shader->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f); | ||||
const CLightEnv& lightEnv = g_Renderer.GetLightEnv(); | const CLightEnv& lightEnv = g_Renderer.GetLightEnv(); | ||||
shader->Uniform(str_sunColor, lightEnv.m_SunColor); | shader->Uniform(str_sunColor, lightEnv.m_SunColor); | ||||
shader->Uniform(str_fogColor, lightEnv.m_FogColor); | shader->Uniform(str_fogColor, lightEnv.m_FogColor); | ||||
shader->Uniform(str_fogParams, lightEnv.m_FogFactor, lightEnv.m_FogMax, 0.f, 0.f); | shader->Uniform(str_fogParams, lightEnv.m_FogFactor, lightEnv.m_FogMax, 0.f, 0.f); | ||||
shader->BindTexture(str_baseTex, m_Type->m_Texture); | shader->BindTexture(str_baseTex, m_Type->m_Texture); | ||||
pglBlendEquationEXT(m_Type->m_BlendEquation); | glBlendEquationEXT(m_Type->m_BlendEquation); | ||||
glBlendFunc(m_Type->m_BlendFuncSrc, m_Type->m_BlendFuncDst); | glBlendFunc(m_Type->m_BlendFuncSrc, m_Type->m_BlendFuncDst); | ||||
} | } | ||||
void CParticleEmitter::RenderArray(const CShaderProgramPtr& shader) | void CParticleEmitter::RenderArray(const CShaderProgramPtr& shader) | ||||
{ | { | ||||
// Some drivers apparently don't like count=0 in glDrawArrays here, | // Some drivers apparently don't like count=0 in glDrawArrays here, | ||||
// so skip all drawing in that case | // so skip all drawing in that case | ||||
if (m_Particles.empty()) | if (m_Particles.empty()) | ||||
▲ Show 20 Lines • Show All 100 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator