demotool/demo.cc
2017-10-05 18:35:35 +02:00

61 lines
1.2 KiB
C++

#include "externals.hh"
#include "demo.hh"
T_Demo::T_Demo( __rd__ const uint32_t width ,
__rd__ const uint32_t height )
: width( width ) , height( height )
{ }
bool T_Demo::initialise( )
{
raymarcher = std::make_unique< T_Raymarcher >(
width , height );
dof = std::make_unique< T_DoFPass >(
raymarcher->output( ) , raymarcher->depth( ) );
bloom = std::make_unique< T_BloomPass >(
raymarcher->output( ) );
combine = std::make_unique< T_CombinePass >(
dof->output( ) , bloom->output( ) );
fxaa = std::make_unique< T_FXAAPass >(
combine->output( ) );
return true;
}
void T_Demo::makeUI( )
{
raymarcher->makeUI( );
dof->makeUI( );
bloom->makeUI( );
combine->makeUI( );
fxaa->makeUI( );
}
void T_Demo::render( )
{
raymarcher->render( );
dof->render( );
bloom->render( );
combine->render( );
fxaa->render( );
}
void T_Demo::handleDND(
__rd__ ImVec2 const& move ,
__rd__ const bool hasCtrl ,
__rd__ const bool hasShift ,
__rd__ const bool lmb // Left mouse button
)
{
raymarcher->camera( ).handleDND( move , hasCtrl , hasShift , lmb );
}
void T_Demo::handleWheel(
__rd__ const float wheel ,
__rd__ const bool hasCtrl ,
__rd__ const bool hasShift
)
{
raymarcher->camera( ).handleWheel( wheel , hasCtrl , hasShift );
}