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]);
|
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[0],
|
||||||
m_monitor_info[monitor_num].axis[1],
|
m_monitor_info[monitor_num].axis[1],
|
||||||
m_monitor_info[monitor_num].axis[2]);
|
m_monitor_info[monitor_num].axis[2]);
|
||||||
@ -92,6 +93,7 @@ void Spin::initMonitorInfo()
|
|||||||
glGetFloatv(GL_MODELVIEW_MATRIX, &m_monitor_info[i].rotation[0]);
|
glGetFloatv(GL_MODELVIEW_MATRIX, &m_monitor_info[i].rotation[0]);
|
||||||
m_monitor_info[i].switch_time = getRandomSwitchTime();
|
m_monitor_info[i].switch_time = getRandomSwitchTime();
|
||||||
m_monitor_info[i].last_switch_ticks = 0;
|
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);
|
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];
|
float rotation[16];
|
||||||
int switch_time;
|
int switch_time;
|
||||||
uint32_t last_switch_ticks;
|
uint32_t last_switch_ticks;
|
||||||
|
float speed;
|
||||||
} monitor_info_t;
|
} monitor_info_t;
|
||||||
protected:
|
protected:
|
||||||
LogoBox m_logobox;
|
LogoBox m_logobox;
|
||||||
@ -29,6 +30,7 @@ class Spin : public Mode
|
|||||||
void initMonitorInfo();
|
void initMonitorInfo();
|
||||||
void getRandomAxis(float (*axis)[3]);
|
void getRandomAxis(float (*axis)[3]);
|
||||||
uint32_t getRandomSwitchTime();
|
uint32_t getRandomSwitchTime();
|
||||||
|
float getRandomSpeed();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SPIN_H */
|
#endif /* SPIN_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user