Minor correction for a window path
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14906 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
@@ -151,6 +151,25 @@ void ColorLevelsProvider::OnSetConstants(IMaterialRendererServices *srv, int use
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
void SkyboxProvider::OnSetConstants(IMaterialRendererServices *srv, int)
|
||||
{
|
||||
const float time = irr_driver->getDevice()->getTimer()->getTime() / 1000.0f;
|
||||
srv->setVertexShaderConstant("time", &time, 1);
|
||||
|
||||
vector3df sun_pos = m_sunpos;
|
||||
srv->setVertexShaderConstant("sun_pos", &sun_pos.X, 3);
|
||||
|
||||
if (!firstdone)
|
||||
{
|
||||
s32 tex = 0;
|
||||
srv->setPixelShaderConstant("tex", &tex, 1);
|
||||
s32 glow_tex = 1;
|
||||
srv->setPixelShaderConstant("glow_tex", &glow_tex, 1);
|
||||
firstdone = true;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
|
||||
void SplattingProvider::OnSetConstants(IMaterialRendererServices *srv, int)
|
||||
|
||||
@@ -156,6 +156,23 @@ private:
|
||||
|
||||
//
|
||||
|
||||
class SkyboxProvider: public CallBase
|
||||
{
|
||||
public:
|
||||
virtual void OnSetConstants(video::IMaterialRendererServices *srv, int);
|
||||
|
||||
void setSunPosition(const core::vector3df &in)
|
||||
{
|
||||
m_sunpos = in;
|
||||
//m_sunpos.normalize();
|
||||
}
|
||||
|
||||
private:
|
||||
core::vector3df m_sunpos;
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
class SplattingProvider: public CallBase
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "graphics\glwrap.hpp"
|
||||
#include "graphics/glwrap.hpp"
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
|
||||
@@ -176,4 +176,4 @@ void bindUniformToTextureUnit(GLuint location, GLuint texid, unsigned textureUni
|
||||
glActiveTexture(GL_TEXTURE0 + textureUnit);
|
||||
glBindTexture(GL_TEXTURE_2D, texid);
|
||||
glUniform1i(location, textureUnit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1397,8 +1397,14 @@ void IrrDriver::displayFPS()
|
||||
{
|
||||
gui::IGUIFont* font = GUIEngine::getFont();
|
||||
|
||||
irr_driver->getVideoDriver()->draw2DRectangle(video::SColor(150, 96, 74, 196),core::rect< s32 >(75,0,900,50),NULL);
|
||||
|
||||
if(UserConfigParams::m_artist_debug_mode)
|
||||
{
|
||||
irr_driver->getVideoDriver()->draw2DRectangle(video::SColor(150, 96, 74, 196),core::rect< s32 >(75,0,1100,50),NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
irr_driver->getVideoDriver()->draw2DRectangle(video::SColor(150, 96, 74, 196),core::rect< s32 >(75,0,900,50),NULL);
|
||||
}
|
||||
// We will let pass some time to let things settle before trusting FPS counter
|
||||
// even if we also ignore fps = 1, which tends to happen in first checks
|
||||
const int NO_TRUST_COUNT = 200;
|
||||
@@ -2148,6 +2154,7 @@ scene::ISceneNode *IrrDriver::addLight(const core::vector3df &pos, float energy,
|
||||
m_suncam->updateAbsolutePosition();
|
||||
|
||||
((WaterShaderProvider *) m_shaders->m_callbacks[ES_WATER])->setSunPosition(pos);
|
||||
((SkyboxProvider *) m_shaders->m_callbacks[ES_SKYBOX])->setSunPosition(pos);
|
||||
}
|
||||
|
||||
return light;
|
||||
|
||||
@@ -217,6 +217,11 @@ Material::Material(const XMLNode *node, int index, bool deprecated)
|
||||
{
|
||||
m_graphical_effect = GE_SPHERE_MAP;
|
||||
}
|
||||
else if (s == "skybox")
|
||||
{
|
||||
printf("[sam] Coucou\n");
|
||||
m_graphical_effect = GE_SKYBOX;
|
||||
}
|
||||
else if (s == "splatting")
|
||||
{
|
||||
m_graphical_effect = GE_SPLATTING;
|
||||
@@ -801,6 +806,19 @@ void Material::setMaterialProperties(video::SMaterial *m, scene::IMeshBuffer* m
|
||||
m->SpecularColor.set(0,0,0,0);
|
||||
modes++;
|
||||
}
|
||||
|
||||
if(m_graphical_effect == GE_SKYBOX && irr_driver->isGLSL())
|
||||
{
|
||||
printf("[sam] Hello world :)\n");
|
||||
ITexture* tex = irr_driver->getTexture("cloud_mask.png");
|
||||
m->setTexture(1, tex);
|
||||
if(m->getTexture(1) == NULL)
|
||||
{
|
||||
printf("[sam] Error :( \n");
|
||||
}
|
||||
|
||||
m->MaterialType = irr_driver->getShader(ES_SKYBOX);
|
||||
}
|
||||
if (m_graphical_effect == GE_SPLATTING)
|
||||
{
|
||||
if (irr_driver->supportsSplatting())
|
||||
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
GE_WATER_SHADER,
|
||||
GE_SPHERE_MAP,
|
||||
GE_SPLATTING,
|
||||
GE_SKYBOX,
|
||||
GE_NORMAL_MAP,
|
||||
GE_CAUSTICS};
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ Shaders::Shaders()
|
||||
|
||||
m_callbacks[ES_NORMAL_MAP_LIGHTMAP] = new NormalMapProvider(true);
|
||||
m_callbacks[ES_NORMAL_MAP] = new NormalMapProvider(false);
|
||||
m_callbacks[ES_SKYBOX] = new SkyboxProvider();
|
||||
m_callbacks[ES_SPLATTING] = new SplattingProvider();
|
||||
m_callbacks[ES_WATER] = new WaterShaderProvider();
|
||||
m_callbacks[ES_GRASS] = new GrassShaderProvider();
|
||||
@@ -94,8 +95,11 @@ void Shaders::loadShaders()
|
||||
m_shaders[ES_NORMAL_MAP_LIGHTMAP] = glslmat(dir + "normalmap.vert", dir + "normalmap.frag",
|
||||
m_callbacks[ES_NORMAL_MAP_LIGHTMAP], EMT_SOLID_2_LAYER);
|
||||
|
||||
m_shaders[ES_SPLATTING] = glsl(dir + "objectpass.vert", dir + "splatting.frag",
|
||||
m_callbacks[ES_SPLATTING]);
|
||||
m_shaders[ES_SKYBOX] = glslmat(dir + "skybox.vert", dir + "skybox.frag",
|
||||
m_callbacks[ES_SKYBOX], EMT_TRANSPARENT_ALPHA_CHANNEL);
|
||||
|
||||
m_shaders[ES_SPLATTING] = glslmat(dir + "objectpass.vert", dir + "splatting.frag",
|
||||
m_callbacks[ES_SPLATTING], EMT_SOLID);
|
||||
|
||||
m_shaders[ES_WATER] = glslmat(dir + "water.vert", dir + "water.frag",
|
||||
m_callbacks[ES_WATER], EMT_TRANSPARENT_ALPHA_CHANNEL);
|
||||
|
||||
@@ -25,6 +25,7 @@ using namespace irr;
|
||||
#define FOREACH_SHADER(ACT) \
|
||||
ACT(ES_NORMAL_MAP) \
|
||||
ACT(ES_NORMAL_MAP_LIGHTMAP) \
|
||||
ACT(ES_SKYBOX) \
|
||||
ACT(ES_SPLATTING) \
|
||||
ACT(ES_WATER) \
|
||||
ACT(ES_WATER_SURFACE) \
|
||||
|
||||
Reference in New Issue
Block a user