2017-10-02 13:51:08 +02:00
|
|
|
#pragma once
|
|
|
|
|
2017-11-15 20:36:08 +01:00
|
|
|
#include "opcomp.hh"
|
2017-10-02 13:51:08 +02:00
|
|
|
|
2017-11-15 23:09:52 +01:00
|
|
|
namespace ops { class T_OpContext; }
|
|
|
|
|
2017-10-02 13:51:08 +02:00
|
|
|
|
|
|
|
struct T_Demo
|
|
|
|
{
|
2017-11-15 23:09:52 +01:00
|
|
|
T_Demo( ) = default;
|
|
|
|
|
2017-10-02 13:51:08 +02:00
|
|
|
NO_COPY( T_Demo );
|
|
|
|
NO_MOVE( T_Demo );
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------
|
|
|
|
|
2017-11-15 23:09:52 +01:00
|
|
|
bool initialise( const uint32_t width ,
|
2017-11-14 22:04:00 +01:00
|
|
|
const uint32_t height );
|
2017-10-02 13:51:08 +02:00
|
|
|
void render( );
|
|
|
|
|
|
|
|
void handleDND(
|
2017-11-14 22:04:00 +01:00
|
|
|
ImVec2 const& move ,
|
|
|
|
const bool hasCtrl ,
|
|
|
|
const bool hasShift ,
|
|
|
|
const bool lmb // Left mouse button
|
2017-10-02 13:51:08 +02:00
|
|
|
);
|
|
|
|
void handleWheel(
|
2017-11-14 22:04:00 +01:00
|
|
|
const float wheel ,
|
|
|
|
const bool hasCtrl ,
|
|
|
|
const bool hasShift
|
2017-10-02 13:51:08 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------
|
|
|
|
|
2017-10-07 17:39:38 +02:00
|
|
|
bool playing = false;
|
|
|
|
|
2017-11-15 23:09:52 +01:00
|
|
|
private:
|
|
|
|
uint32_t width;
|
|
|
|
uint32_t height;
|
|
|
|
|
2017-11-14 22:04:00 +01:00
|
|
|
T_OwnPtr< ops::T_OpProgram > program;
|
|
|
|
T_OwnPtr< ops::T_OpContext > context;
|
2017-10-07 17:39:38 +02:00
|
|
|
|
|
|
|
bool playingPrevious = false;
|
|
|
|
float lastFrame;
|
2017-11-15 23:09:52 +01:00
|
|
|
|
|
|
|
bool runInit( ops::T_OpProgram& program );
|
2017-10-02 13:51:08 +02:00
|
|
|
};
|