Spin: added random speed to per-monitor info

This commit is contained in:
Josh Holtrop 2010-12-08 13:11:24 -05:00
parent bca90926a0
commit 85fabfc6cd
2 changed files with 10 additions and 1 deletions

View File

@ -46,7 +46,8 @@ bool Spin::expose (GnomeScreensaver & gs)
glLoadMatrixf(&m_monitor_info[monitor_num].rotation[0]);
glRotatef((gs.getTicks() - m_last_ticks) / 1000.0 * 360.0 / 4.0,
glRotatef((gs.getTicks() - m_last_ticks) / 1000.0
* m_monitor_info[monitor_num].speed,
m_monitor_info[monitor_num].axis[0],
m_monitor_info[monitor_num].axis[1],
m_monitor_info[monitor_num].axis[2]);
@ -92,6 +93,7 @@ void Spin::initMonitorInfo()
glGetFloatv(GL_MODELVIEW_MATRIX, &m_monitor_info[i].rotation[0]);
m_monitor_info[i].switch_time = getRandomSwitchTime();
m_monitor_info[i].last_switch_ticks = 0;
m_monitor_info[i].speed = getRandomSpeed();
}
}
@ -108,3 +110,8 @@ uint32_t Spin::getRandomSwitchTime()
{
return 2000u + (uint32_t) (rand() / (double)RAND_MAX * 3000.0);
}
float Spin::getRandomSpeed()
{
return 40.0 + rand() / (double)RAND_MAX * 150.0;
}

View File

@ -20,6 +20,7 @@ class Spin : public Mode
float rotation[16];
int switch_time;
uint32_t last_switch_ticks;
float speed;
} monitor_info_t;
protected:
LogoBox m_logobox;
@ -29,6 +30,7 @@ class Spin : public Mode
void initMonitorInfo();
void getRandomAxis(float (*axis)[3]);
uint32_t getRandomSwitchTime();
float getRandomSpeed();
};
#endif /* SPIN_H */