#pragma once #include "opcomp.hh" namespace ops { class T_OpContext; } struct T_Demo { T_Demo( ) = default; NO_COPY( T_Demo ); NO_MOVE( T_Demo ); // --------------------------------------------------------------------- bool initialise( const uint32_t width , const uint32_t height ); void render( ); void handleDND( ImVec2 const& move , const bool hasCtrl , const bool hasShift , const bool lmb // Left mouse button ); void handleWheel( const float wheel , const bool hasCtrl , const bool hasShift ); // --------------------------------------------------------------------- bool playing = false; private: uint32_t width; uint32_t height; T_OwnPtr< ops::T_OpProgram > program; T_OwnPtr< ops::T_OpContext > context; bool playingPrevious = false; float lastFrame; bool runInit( ops::T_OpProgram& program ); };