MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / DrawLoading

Method DrawLoading

PanzerChasm/menu_drawer_gl.cpp:605–678  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

603}
604
605void MenuDrawerGL::DrawLoading( const float progress )
606{
607 const float progress_corrected= std::min( std::max( progress, 0.0f ), 1.0f );
608
609 Vertex vertices[ 8u ];
610
611 const int scale= int( menu_scale_ );
612 const int x0= ( int(viewport_size_.Width ()) - int(loading_texture_.Width()) * scale ) / 2;
613 const int mid_tc= int( std::round( float(loading_texture_.Width()) * progress_corrected ) );
614 const int x1= x0 + scale * mid_tc;
615 const int y= ( int(viewport_size_.Height()) - int(loading_texture_.Height()) / 2 * scale ) / 2;
616
617 vertices[0].xy[0]= x0;
618 vertices[0].xy[1]= y;
619 vertices[0].tex_coord[0]= 0;
620 vertices[0].tex_coord[1]= loading_texture_.Height ();
621
622 vertices[1].xy[0]= x1;
623 vertices[1].xy[1]= y;
624 vertices[1].tex_coord[0]= mid_tc;
625 vertices[1].tex_coord[1]= loading_texture_.Height();
626
627 vertices[2].xy[0]= x1;
628 vertices[2].xy[1]= y + int(loading_texture_.Height() >> 1u) * scale;
629 vertices[2].tex_coord[0]= mid_tc;
630 vertices[2].tex_coord[1]= loading_texture_.Height () >> 1u;
631
632 vertices[3].xy[0]= x0;
633 vertices[3].xy[1]= y + int(loading_texture_.Height() >> 1u) * scale;
634 vertices[3].tex_coord[0]= 0;
635 vertices[3].tex_coord[1]= loading_texture_.Height () >> 1u;
636
637 vertices[4].xy[0]= x1;
638 vertices[4].xy[1]= y;
639 vertices[4].tex_coord[0]= mid_tc;
640 vertices[4].tex_coord[1]= loading_texture_.Height () >> 1u;
641
642 vertices[5].xy[0]= x0 + int(loading_texture_.Width()) * scale;
643 vertices[5].xy[1]= y;
644 vertices[5].tex_coord[0]= loading_texture_.Width ();
645 vertices[5].tex_coord[1]= loading_texture_.Height() >> 1u;
646
647 vertices[6].xy[0]= x0 + int(loading_texture_.Width()) * scale;
648 vertices[6].xy[1]= y + int(loading_texture_.Height() >> 1u) * scale;
649 vertices[6].tex_coord[0]= loading_texture_.Width ();
650 vertices[6].tex_coord[1]= 0;
651
652 vertices[7].xy[0]= x1;
653 vertices[7].xy[1]= y + int(loading_texture_.Height() >> 1u) * scale;
654 vertices[7].tex_coord[0]= mid_tc;
655 vertices[7].tex_coord[1]= 0;
656
657 polygon_buffer_.VertexSubData( vertices , sizeof(vertices), 0u );
658
659 // Draw
660 r_OGLStateManager::UpdateState( g_gl_state );
661
662 menu_picture_shader_.Bind();

Callers 1

DrawLoadingFrameMethod · 0.45

Calls 3

WidthMethod · 0.80
HeightMethod · 0.80
BindMethod · 0.80

Tested by

no test coverage detected