Fps.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #include "Fps.h"
  2. #include <Bild.h>
  3. #include <Prozess.h>
  4. #include <Schrift.h>
  5. #include <Text.h>
  6. using namespace Framework;
  7. // Inhalt der Fps Klasse aus Fps.h
  8. // Konstruktor
  9. Fps::Fps()
  10. {
  11. pr = new Prozess();
  12. i = 0;
  13. fpsCount = 0;
  14. nowFps = 0;
  15. nowCpu = 0;
  16. nowMem = 0;
  17. schrift = 0;
  18. sFarbe = 0;
  19. ref = 1;
  20. }
  21. // Destruktor
  22. Fps::~Fps()
  23. {
  24. delete pr;
  25. if( schrift )
  26. schrift = schrift->release();
  27. }
  28. // nicht constant
  29. void Fps::setSchriftZ( Schrift *schrift ) // setzt die Schrift
  30. {
  31. if( this->schrift )
  32. this->schrift = this->schrift->release();
  33. this->schrift = schrift;
  34. rend = 1;
  35. }
  36. void Fps::setSFarbe( int f ) // setzt die Schrift Farbe
  37. {
  38. sFarbe = f;
  39. rend = 1;
  40. }
  41. bool Fps::tick( double tickval ) // tick
  42. {
  43. i += tickval * 60;
  44. if( i >= 60 )
  45. {
  46. nowFps = fpsCount;
  47. nowCpu = (int)pr->getCPU();
  48. nowMem = (int)(pr->getMem() / 1024);
  49. fpsCount = 0;
  50. i -= 60;
  51. rend = 1;
  52. }
  53. bool ret = rend;
  54. rend = 0;
  55. return ret;
  56. }
  57. void Fps::render( Bild &zrObj ) // zeichnet nach zrObj
  58. {
  59. fpsCount++;
  60. if( schrift && sFarbe )
  61. {
  62. Text renderT( "FPS: " );
  63. renderT.append( nowFps );
  64. renderT.append( "\nCPU: " );
  65. renderT.append( nowCpu );
  66. renderT.append( "%\nMem: " );
  67. renderT.append( nowMem );
  68. renderT.append( "kb" );
  69. schrift->setDrawPosition( 10, 10 );
  70. schrift->setSchriftSize( 12 );
  71. schrift->renderText( &renderT, zrObj, sFarbe );
  72. }
  73. }
  74. // constant
  75. int Fps::getFps() const // gibt fps zurück
  76. {
  77. return nowFps;
  78. }
  79. int Fps::getCpu() const // gibt die Cpu zurück
  80. {
  81. return nowCpu;
  82. }
  83. int Fps::getMem() const // gibt den Arbeitsspeicher zurück
  84. {
  85. return nowMem;
  86. }
  87. Schrift *Fps::getSchrift() const // gibt die Schrift zurück
  88. {
  89. return schrift ? schrift->getThis() : 0;
  90. }
  91. Schrift *Fps::zSchrift() const
  92. {
  93. return schrift;
  94. }
  95. int Fps::getFarbe() const // gibt die Farbe zurück
  96. {
  97. return sFarbe;
  98. }
  99. // Reference Counting
  100. Fps *Fps::getThis()
  101. {
  102. ref++;
  103. return this;
  104. }
  105. Fps *Fps::release()
  106. {
  107. ref--;
  108. if( !ref )
  109. delete this;
  110. return 0;
  111. }