RenderThread.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef RenderThread_H
  2. #define RenderThread_H
  3. #include "Thread.h"
  4. namespace Framework
  5. {
  6. class Bildschirm; // Bildschirm.h
  7. class ZeitMesser; // ZeitMesser.h
  8. class Bild; // Bild.h
  9. class RenderTh : private Thread
  10. {
  11. private:
  12. bool stoppen;
  13. Bildschirm *bildschirm;
  14. ZeitMesser *zeit;
  15. double renderTickZeit;
  16. void *renderParameter;
  17. void *tickParameter;
  18. void ( *renderFunktion )( void *, void *, Bild * );
  19. void ( *tickFunktion )( void *, void *, double );
  20. bool pause;
  21. CRITICAL_SECTION cs;
  22. int maxFps;
  23. int ref;
  24. public:
  25. // Konstruktor
  26. __declspec( dllexport ) RenderTh();
  27. // Destruktor
  28. __declspec( dllexport ) ~RenderTh();
  29. // nicht constant
  30. __declspec( dllexport ) void lock();
  31. __declspec( dllexport ) void unlock();
  32. __declspec( dllexport ) void setBildschirm( Bildschirm *bildschirm ); // setzt den Bildschirm
  33. __declspec( dllexport ) void thread() override; // Render Schleife
  34. __declspec( dllexport ) void beginn(); // beginnt rendering
  35. __declspec( dllexport ) void beenden(); // beendet den Thread
  36. __declspec( dllexport ) void setMaxFps( int fps ); // setzt die Anzahl der Bilder pro Sekunde
  37. __declspec( dllexport ) void setPause( bool p ); // Renderpause
  38. __declspec( dllexport ) void setRenderFunktion( void ( *rF )( void *, void *, Bild * ) ); // setzt die Rückruf Funktion beim Rendern
  39. __declspec( dllexport ) void setTickFunktion( void ( *tF )( void *, void *, double ) ); // setzt die Rückruf Funktion beim Tick
  40. __declspec( dllexport ) void setRenderFunktionParameter( void *p ); // setzt den Parameter der Rückruf Funktion beim Rendern
  41. __declspec( dllexport ) void setTickFunktionParameter( void *p ); // setzt den Parameter der Rückruf Funktion beim Tick
  42. // constant
  43. __declspec( dllexport ) Bildschirm *getBildschirm() const; // gibt den Bildschirm zurück
  44. __declspec( dllexport ) Bildschirm *zBildschirm() const;
  45. __declspec( dllexport ) double getRenderTickZeit() const; // gibt die Zeit zurück, die zum Rendern und zum Tick benötigt wird
  46. // Reference Counting
  47. __declspec( dllexport ) RenderTh *getThis();
  48. __declspec( dllexport ) RenderTh *release();
  49. };
  50. }
  51. #endif