Spin: added random speed to per-monitor info
This commit is contained in:
parent
bca90926a0
commit
85fabfc6cd
@ -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;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user