FadingLogos: draw each logo separately
This commit is contained in:
parent
8dc61686a9
commit
aa981e928e
@ -46,13 +46,22 @@ class FadingLogos : Mode
|
|||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
mat4 view_matrix;
|
foreach (LogoParams lp; m_logos)
|
||||||
view_matrix.make_identity();
|
{
|
||||||
view_matrix.scale(ss.get_height() / cast(float)ss.get_width(), 1.0, 1.0);
|
draw_logo(lp, ss);
|
||||||
const double scale = 0.35 * ss.get_aspect() * (1080.0 / 1920.0);
|
}
|
||||||
view_matrix.scale(scale, scale, scale);
|
}
|
||||||
|
|
||||||
glUniformMatrix4fv(m_shader.view_idx, 1, GL_TRUE, view_matrix.value_ptr);
|
protected void draw_logo(LogoParams lp, ScreenSaver ss)
|
||||||
|
{
|
||||||
|
mat4 matrix;
|
||||||
|
matrix.make_identity();
|
||||||
|
matrix.scale(lp.scale, lp.scale, lp.scale);
|
||||||
|
matrix.rotatez(lp.rotation);
|
||||||
|
matrix.translate(lp.c_x, lp.c_y, 0);
|
||||||
|
const double multi_monitor_scale = 0.35 * ss.get_aspect() * (1080.0 / 1920.0);
|
||||||
|
matrix.scale(multi_monitor_scale / ss.get_aspect(), multi_monitor_scale, multi_monitor_scale);
|
||||||
|
glUniformMatrix4fv(m_shader.view_idx, 1, GL_TRUE, matrix.value_ptr);
|
||||||
|
|
||||||
for (int i = 0; i < logo.N_GENTEX; i++)
|
for (int i = 0; i < logo.N_GENTEX; i++)
|
||||||
{
|
{
|
||||||
@ -91,6 +100,7 @@ class FadingLogos : Mode
|
|||||||
lp.rotation = uniform(0.0, math.PI * 2.0);
|
lp.rotation = uniform(0.0, math.PI * 2.0);
|
||||||
lp.scale = uniform(0.2, 1.0);
|
lp.scale = uniform(0.2, 1.0);
|
||||||
m_logos ~= lp;
|
m_logos ~= lp;
|
||||||
|
m_last_create_time = ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint i = 0; i < m_logos.length; )
|
for (uint i = 0; i < m_logos.length; )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user