demotool/demo.hh

49 lines
871 B
C++
Raw Normal View History

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 ,
const uint32_t height );
2017-10-02 13:51:08 +02:00
void render( );
void handleDND(
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(
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;
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
};