m_animate_time_old = getTimeMs();
// load background settings
- bool console_color_set = !g_settings->get("console_color").empty();
s32 console_alpha = g_settings->getS32("console_alpha");
+ m_background_color.setAlpha(clamp_u8(console_alpha));
// load the background texture depending on settings
- m_background_color.setAlpha(clamp_u8(console_alpha));
- if (console_color_set)
- {
+ ITextureSource *tsrc = client->getTextureSource();
+ if (tsrc->isKnownSourceImage("background_chat.jpg")) {
+ m_background = tsrc->getTexture("background_chat.jpg");
+ m_background_color.setRed(255);
+ m_background_color.setGreen(255);
+ m_background_color.setBlue(255);
+ } else {
v3f console_color = g_settings->getV3F("console_color");
m_background_color.setRed(clamp_u8(myround(console_color.X)));
m_background_color.setGreen(clamp_u8(myround(console_color.Y)));
m_background_color.setBlue(clamp_u8(myround(console_color.Z)));
}
- else
- {
- m_background = env->getVideoDriver()->getTexture(getTexturePath("background_chat.jpg").c_str());
- m_background_color.setRed(255);
- m_background_color.setGreen(255);
- m_background_color.setBlue(255);
- }
m_font = g_fontengine->getFont(FONT_SIZE_UNSPECIFIED, FM_Mono);
#include "ISceneManager.h"
#include "ICameraSceneNode.h"
#include "S3DVertex.h"
-#include "tile.h" // getTexturePath
+#include "tile.h"
#include "noise.h" // easeCurve
#include "main.h" // g_profiler
#include "profiler.h"
#include "camera.h" // CameraModes
//! constructor
-Sky::Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id):
+Sky::Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id,
+ ITextureSource *tsrc):
scene::ISceneNode(parent, mgr, id),
m_visible(true),
m_fallback_bg_color(255,255,255,255),
m_materials[1].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
m_materials[2] = mat;
- m_materials[2].setTexture(0, mgr->getVideoDriver()->getTexture(
- getTexturePath("sunrisebg.png").c_str()));
+ m_materials[2].setTexture(0, tsrc->getTexture("sunrisebg.png"));
m_materials[2].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
//m_materials[2].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
- m_sun_texture = mgr->getVideoDriver()->getTexture(
- getTexturePath("sun.png").c_str());
- m_moon_texture = mgr->getVideoDriver()->getTexture(
- getTexturePath("moon.png").c_str());
- m_sun_tonemap = mgr->getVideoDriver()->getTexture(
- getTexturePath("sun_tonemap.png").c_str());
- m_moon_tonemap = mgr->getVideoDriver()->getTexture(
- getTexturePath("moon_tonemap.png").c_str());
+ m_sun_texture = tsrc->isKnownSourceImage("sun.png") ?
+ tsrc->getTexture("sun.png") : NULL;
+ m_moon_texture = tsrc->isKnownSourceImage("moon.png") ?
+ tsrc->getTexture("moon.png") : NULL;
+ m_sun_tonemap = tsrc->isKnownSourceImage("sun_tonemap.png") ?
+ tsrc->getTexture("sun_tonemap.png") : NULL;
+ m_moon_tonemap = tsrc->isKnownSourceImage("moon_tonemap.png") ?
+ tsrc->getTexture("moon_tonemap.png") : NULL;
if (m_sun_texture){
m_materials[3] = mat;
#define SKY_MATERIAL_COUNT 5
#define SKY_STAR_COUNT 200
+class ITextureSource;
+
// Skybox, rendered with zbuffer turned off, before all other nodes.
class Sky : public scene::ISceneNode
{
public:
//! constructor
- Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id);
+ Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id,
+ ITextureSource *tsrc);
virtual void OnRegisterSceneNode();