Fix #3418
This commit is contained in:
parent
2199679ac2
commit
15853c4e32
@ -700,5 +700,14 @@ void GL32_draw2DRectangle(video::SColor color, const core::rect<s32>& position,
|
||||
glGetError();
|
||||
} // GL32_draw2DRectangle
|
||||
|
||||
void preloadShaders()
|
||||
{
|
||||
Primitive2DList::getInstance();
|
||||
UniformColoredTextureRectShader::getInstance();
|
||||
TextureRectShader::getInstance();
|
||||
ColoredRectShader::getInstance();
|
||||
ColoredTextureRectShader::getInstance();
|
||||
} // preloadShaders
|
||||
|
||||
#endif // !SERVER_ONLY
|
||||
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include <SColor.h>
|
||||
#include <SVertexIndex.h>
|
||||
|
||||
void preloadShaders();
|
||||
|
||||
void draw2DImageFromRTT(GLuint texture, size_t texture_w, size_t texture_h,
|
||||
const irr::core::rect<irr::s32>& destRect,
|
||||
const irr::core::rect<irr::s32>& sourceRect,
|
||||
|
@ -134,6 +134,25 @@ CPUParticleManager::GLParticle::GLParticle(bool flips)
|
||||
glBindVertexArray(0);
|
||||
} // GLParticle
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
CPUParticleManager::CPUParticleManager()
|
||||
{
|
||||
const float vertices[] =
|
||||
{
|
||||
-0.5f, 0.5f, 0.0f, 0.0f,
|
||||
0.5f, 0.5f, 1.0f, 0.0f,
|
||||
-0.5f, -0.5f, 0.0f, 1.0f,
|
||||
0.5f, -0.5f, 1.0f, 1.0f,
|
||||
};
|
||||
glGenBuffers(1, &m_particle_quad);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_particle_quad);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
// For preloading shaders
|
||||
ParticleRenderer::getInstance();
|
||||
AlphaTestParticleRenderer::getInstance();
|
||||
} // CPUParticleManager
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CPUParticleManager::addBillboardNode(scene::IBillboardSceneNode* node)
|
||||
{
|
||||
|
@ -116,21 +116,7 @@ private:
|
||||
|
||||
public:
|
||||
// ------------------------------------------------------------------------
|
||||
CPUParticleManager()
|
||||
{
|
||||
const float vertices[] =
|
||||
{
|
||||
-0.5f, 0.5f, 0.0f, 0.0f,
|
||||
0.5f, 0.5f, 1.0f, 0.0f,
|
||||
-0.5f, -0.5f, 0.0f, 1.0f,
|
||||
0.5f, -0.5f, 1.0f, 1.0f,
|
||||
};
|
||||
glGenBuffers(1, &m_particle_quad);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_particle_quad);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices,
|
||||
GL_STATIC_DRAW);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
CPUParticleManager();
|
||||
// ------------------------------------------------------------------------
|
||||
~CPUParticleManager()
|
||||
{
|
||||
|
@ -638,8 +638,11 @@ void IrrDriver::initDevice()
|
||||
#endif
|
||||
|
||||
#ifndef SERVER_ONLY
|
||||
if(CVS->isGLSL())
|
||||
if (CVS->isGLSL())
|
||||
{
|
||||
m_renderer = new ShaderBasedRenderer();
|
||||
preloadShaders();
|
||||
}
|
||||
else
|
||||
m_renderer = new FixedPipelineRenderer();
|
||||
#endif
|
||||
|
@ -758,6 +758,9 @@ PostProcessing::PostProcessing()
|
||||
STKTexManager::getInstance()->addTexture(m_areamap);
|
||||
areamap->drop();
|
||||
|
||||
// For preloading shaders
|
||||
MotionBlurShader::getInstance();
|
||||
LightningShader::getInstance();
|
||||
} // PostProcessing
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user