Render.cpp 868 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "Render.h"
  2. #include <Zeit.h>
  3. // Inhalt der Render Klasse aus Render.h
  4. // Konstruktor
  5. Render::Render( Bildschirm *b )
  6. : Thread()
  7. {
  8. bildschirm = b;
  9. beendet = 0;
  10. }
  11. // Destruktor
  12. Render::~Render()
  13. {
  14. bildschirm->release();
  15. }
  16. // nicht constant
  17. void Render::thread()
  18. {
  19. ZeitMesser *timer = new ZeitMesser();
  20. while( !beendet )
  21. {
  22. double tickVal = timer->getSekunden();
  23. timer->messungStart();
  24. bildschirm->tick( tickVal );
  25. bildschirm->render();
  26. if( tickVal < 1.0 / 30.0 )
  27. Sleep( (int)( ( 1.0 / 30.0 - tickVal ) * 1000 ) );
  28. timer->messungEnde();
  29. }
  30. timer->release();
  31. beendet = 0;
  32. run = 0;
  33. }
  34. void Render::beenden()
  35. {
  36. beendet = 1;
  37. warteAufThread( 1000 );
  38. }
  39. // löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread
  40. Thread *Render::release()
  41. {
  42. if( ref == 2 && run )
  43. beenden();
  44. return Thread::release();
  45. }