Render.cpp 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "Render.h"
  2. #include <Zeit.h>
  3. // Inhalt der Render Klasse aus Render.h
  4. // Konstruktor
  5. Render::Render( Bildschirm *b )
  6. {
  7. bildschirm = b;
  8. beendet = 0;
  9. ref = 1;
  10. }
  11. // Destruktor
  12. Render::~Render()
  13. {
  14. beenden( );
  15. bildschirm->release();
  16. }
  17. // nicht constant
  18. void Render::thread()
  19. {
  20. ZeitMesser *timer = new ZeitMesser();
  21. while( !beendet )
  22. {
  23. double tickVal = timer->getSekunden();
  24. timer->messungStart();
  25. bildschirm->tick( tickVal );
  26. bildschirm->render();
  27. if( tickVal < 1.0 / 30.0 )
  28. Sleep( (int)( ( 1.0 / 30.0 - tickVal ) * 1000 ) );
  29. timer->messungEnde();
  30. }
  31. timer->release();
  32. beendet = 0;
  33. run = 0;
  34. }
  35. void Render::beenden()
  36. {
  37. beendet = 1;
  38. warteAufThread( 1000 );
  39. }
  40. // constant
  41. // Reference Counting
  42. Render *Render::getThis()
  43. {
  44. ref++;
  45. return this;
  46. }
  47. Render *Render::release()
  48. {
  49. ref--;
  50. if( !ref )
  51. delete this;
  52. return 0;
  53. }