Files
eepp/src/test/eetest.hpp
Martín Lucas Golini 1250eb967b Replacement of PlusCallback in favor of std::functional ( just for lambdas ).
--HG--
branch : dev-functional
2018-07-17 10:31:34 -03:00

262 lines
4.7 KiB
C++

#ifndef EE_EETEST_HPP
#define EE_EETEST_HPP
#include <eepp/ee.hpp>
namespace Demo_Test {
enum CollisionTypes {
BALL_TYPE,
BLOCKING_SENSOR_TYPE,
CATCH_SENSOR_TYPE
};
struct Emitter {
int queue;
int blocked;
cVect position;
};
class EETest : private Thread {
public:
typedef std::function<void()> SceneCb;
void init();
void update();
void end();
void process();
void render();
void input();
void particlesCallback(Particle* P, ParticleSystem* Me);
void particlesThread();
void particles();
void updateParticles();
void loadTextures();
void cmdSetPartsNum ( const std::vector < String >& params );
Clock cElapsed;
Time PSElapsed;
private:
Engine * EE;
EE::Window::Window * mWindow;
TextureFactory* TF;
System::Log* Log;
EE::Window::Input* KM;
bool side, aside;
Float ang, scale, alpha, Ang;
Time et;
Int32 x, y;
Uint32 lasttick;
std::vector<Uint32> TN;
std::vector<Texture *> TNP;
std::vector<TextureRegion*> Tiles;
std::vector<ParticleSystem> PS;
Vector2i Mouse;
Vector2f Mousef;
Sprite SP;
Sprite CL1, CL2;
Font * TTF;
Primitives PR;
bool iL1, iL2;
Float HWidth, HHeight;
Music * Mus;
SoundManager SndMng;
bool DrawBack;
Console Con;
virtual void run();
Vector2f Point;
std::string MyPath;
bool ShowParticles;
TileMap Map;
Uint8 Screen;
SceneCb Scenes[6];
void screen1();
void screen2();
void screen3();
void screen4();
void screen5();
Zip * PakTest;
std::vector<Uint8> tmpv;
std::vector<Uint8> MySong;
Interpolation2d WP;
Int32 PartsNum;
Uint32 Cursor[1];
Texture * CursorP[1];
std::string mInfo;
bool MultiViewportMode;
BatchRenderer Batch;
Float AnimVal;
bool AnimSide;
View Views[2];
ShaderProgram * mShaderProgram;
ShaderProgram * mBlur;
Float mBlurFactor;
bool mUseShaders;
bool mJoyEnabled;
bool mMusEnabled;
bool mDebugUI;
Uint32 mLastFPSLimit;
bool mWasMinimized;
String mBuda;
ResourceLoader mResLoad;
void onTextureLoaded( ResourceLoader * ObjLoaded );
void createUI();
void createShaders();
void loadFonts();
ResourceLoader mFontLoader;
void onFontLoaded( ResourceLoader * ObjLoaded );
JoystickManager * JM;
Float mAxisX;
Float mAxisY;
TextureAtlasLoader * mTGL;
Sprite mBlindy;
FrameBuffer * mFBO;
VertexBuffer * mVBO;
Clock mFTE;
Translator mTranslator;
void createCommonDialog();
void onItemClick( const Event * Event );
void onMainClick( const Event * Event );
void onQuitClick( const Event * Event );
void onCloseClick( const Event * Event );
void onButtonClick( const Event * Event );
void onValueChange( const Event * Event );
void onSliderValueChange( const Event * Event );
void onWinMouseUp( const Event * Event );
void createDecoratedWindow();
void createUIThemeTextureAtlas();
UINode * C;
UIScrollBar * mScrollBar;
UITextView * mTextBoxValue;
UISlider * mSlider;
UIProgressBar * mProgressBar;
UIListBox * mListBox;
UIPopUpMenu * Menu;
UIWindow * mUIWindow;
MapEditor * mMapEditor;
TextureAtlasEditor * mETGEditor;
Text mEEText;
Text mFBOText;
Text mInfoText;
std::string mThemeName;
Space * mSpace;
#ifndef EE_PLATFORM_TOUCH
Body * mMouseBody;
cVect mMousePoint;
cVect mMousePoint_last;
Constraint * mMouseJoint;
#else
Body * mMouseBody[ EE_MAX_FINGERS ];
cVect mMousePoint[ EE_MAX_FINGERS ];
cVect mMousePoint_last[ EE_MAX_FINGERS ];
Constraint * mMouseJoint[ EE_MAX_FINGERS ];
#endif
void physicsCreate();
void physicsUpdate();
void physicsDestroy();
void setScreen( Uint32 num );
cpBool blockerBegin( Arbiter *arb, Space *space, void *unused );
void blockerSeparate( Arbiter *arb, Space *space, void *unused );
void postStepRemove( Space *space, void * tshape, void *unused );
cpBool catcherBarBegin( Arbiter *arb, Space *space, void *unused );
void demo1Create();
void demo1Update();
void demo1Destroy();
void demo2Create();
void demo2Update();
void demo2Destroy();
void showMenu();
Emitter emitterInstance;
void changeDemo( Uint32 num );
struct physicDemo {
SceneCb init;
SceneCb update;
SceneCb destroy;
};
std::vector<physicDemo> mDemo;
Uint32 mCurDemo;
Sprite * mBoxSprite;
Sprite * mCircleSprite;
UITheme * mTheme;
bool mTerrainUp;
UIPushButton * mShowMenu;
UIPushButton * mTerrainBut;
UIRelativeLayout * relLay;
DrawableGroup drawableGroup;
void createMapEditor();
void onMapEditorClose();
void onETGEditorClose();
void createETGEditor();
void createJointAndBody();
void destroyBody();
void onShowMenu( const Event * Event );
void onWindowResize( EE::Window::Window * win );
void createBaseUI();
void createNewUI();
};
}
#endif