lazy load stars file only if stars render enabled

This commit is contained in:
ZappoMan 2013-07-10 16:06:23 -07:00
parent 3c150c3ec6
commit 78c62f29c3
3 changed files with 9 additions and 5 deletions

View file

@ -1654,8 +1654,6 @@ void Application::init() {
_headMouseX = _mouseX = _glWidget->width() / 2; _headMouseX = _mouseX = _glWidget->width() / 2;
_headMouseY = _mouseY = _glWidget->height() / 2; _headMouseY = _mouseY = _glWidget->height() / 2;
_stars.readInput(STAR_FILE, STAR_CACHE_FILE, 0);
_myAvatar.init(); _myAvatar.init();
_myAvatar.setPosition(START_LOCATION); _myAvatar.setPosition(START_LOCATION);
_myCamera.setMode(CAMERA_MODE_FIRST_PERSON); _myCamera.setMode(CAMERA_MODE_FIRST_PERSON);
@ -1681,7 +1679,6 @@ void Application::init() {
printLog("Loaded settings.\n"); printLog("Loaded settings.\n");
sendAvatarVoxelURLMessage(_myAvatar.getVoxels()->getVoxelURL()); sendAvatarVoxelURLMessage(_myAvatar.getVoxels()->getVoxelURL());
} }
@ -2238,6 +2235,9 @@ void Application::displaySide(Camera& whichCamera) {
glMateriali(GL_FRONT, GL_SHININESS, 96); glMateriali(GL_FRONT, GL_SHININESS, 96);
if (_renderStarsOn->isChecked()) { if (_renderStarsOn->isChecked()) {
if (!_stars.getFileLoaded()) {
_stars.readInput(STAR_FILE, STAR_CACHE_FILE, 0);
}
// should be the first rendering pass - w/o depth buffer / lighting // should be the first rendering pass - w/o depth buffer / lighting
// compute starfield alpha based on distance from atmosphere // compute starfield alpha based on distance from atmosphere

View file

@ -14,7 +14,7 @@
#undef __interface__Starfield_impl__ #undef __interface__Starfield_impl__
Stars::Stars() : Stars::Stars() :
_controller(0l) { _controller(0l), _fileLoaded(false) {
_controller = new starfield::Controller; _controller = new starfield::Controller;
} }
@ -23,7 +23,8 @@ Stars::~Stars() {
} }
bool Stars::readInput(const char* url, const char* cacheFile, unsigned limit) { bool Stars::readInput(const char* url, const char* cacheFile, unsigned limit) {
return _controller->readInput(url, cacheFile, limit); _fileLoaded = _controller->readInput(url, cacheFile, limit);
return _fileLoaded;
} }
bool Stars::setResolution(unsigned k) { bool Stars::setResolution(unsigned k) {

View file

@ -65,6 +65,7 @@ class Stars {
float changeLOD(float factor, float changeLOD(float factor,
float overalloc = 0.25, float realloc = 0.15); float overalloc = 0.25, float realloc = 0.15);
bool getFileLoaded() const { return _fileLoaded; };
private: private:
// don't copy/assign // don't copy/assign
Stars(Stars const&); // = delete; Stars(Stars const&); // = delete;
@ -73,6 +74,8 @@ class Stars {
// variables // variables
starfield::Controller* _controller; starfield::Controller* _controller;
bool _fileLoaded;
}; };