MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / drawScene

Method drawScene

source/MRViewer/MRViewer.cpp:1910–1960  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1908}
1909
1910void Viewer::drawScene( FramebufferData* framebuffer )
1911{
1912 MR_TIMER;
1913 if ( alphaSortEnabled_ )
1914 alphaSorter_->clearTransparencyTextures();
1915
1916 int numTransparent = 0;
1917 for ( auto& viewport : viewport_list )
1918 viewport.preDraw();
1919
1920 signals_->preDrawPostViewportSignal();
1921
1922 bool depthPeeling = isDepthPeelingEnabled();
1923
1924 for ( const auto& viewport : viewport_list )
1925 {
1926 viewport.recursiveDraw( SceneRoot::get(), DepthFunction::Default, AffineXf3f(), RenderModelPassMask::Opaque, alphaSortEnabled_ );
1927 viewport.recursiveDraw( SceneRoot::get(), DepthFunction::Default, AffineXf3f(), RenderModelPassMask::VolumeRendering, alphaSortEnabled_ );
1928 if ( !depthPeeling )
1929 viewport.recursiveDraw( SceneRoot::get(), DepthFunction::Default, AffineXf3f(), RenderModelPassMask::Transparent, alphaSortEnabled_, &numTransparent );
1930 }
1931
1932 bool depthPeelerPostDrawNeeded = false;
1933 if ( depthPeeling )
1934 {
1935 depthPeelerPostDrawNeeded = depthPeeler_->doPasses( framebuffer );
1936 }
1937
1938 signals_->drawSignal();
1939
1940 if ( depthPeelerPostDrawNeeded )
1941 {
1942 depthPeeler_->draw();
1943 }
1944
1945 if ( numTransparent > 0 && alphaSortEnabled_ )
1946 {
1947 alphaSorter_->drawTransparencyTextureToScreen();
1948 alphaSorter_->clearTransparencyTextures();
1949 }
1950 // draw after alpha texture
1951 for ( const auto& viewport : viewport_list )
1952 viewport.recursiveDraw( SceneRoot::get(), DepthFunction::Default, AffineXf3f(), RenderModelPassMask::NoDepthTest, alphaSortEnabled_ );
1953
1954 signals_->postDrawPreViewportSignal();
1955
1956 for ( const auto& viewport : viewport_list )
1957 viewport.postDraw();
1958
1959 resetRedraw_();
1960}
1961
1962void Viewer::setupScene()
1963{

Callers

nothing calls this directly

Calls 8

preDrawMethod · 0.80
recursiveDrawMethod · 0.80
doPassesMethod · 0.80
postDrawMethod · 0.80
getFunction · 0.50
drawMethod · 0.45

Tested by

no test coverage detected