Forum: sdl cpuanvändning

Forum huvudsida -> Programmering -> sdl cpuanvändning

Sidor: 1

Till botten

achnorr 19:24 - 26:e Maj 2008 | Post #1
Medlem
Inlägg: 82


Skicka PM
vad gör man för fel om cpuanvändningenalltid går upp till max i vartenda program man gör?(c++ och sdl).

  1. int main( int argc, char* args[] )
  2. {
  3. bool quit = false;
  4. picture = IMG_Load("hej.jpg"); if(picture == NULL){return 0;}
  5. screen = SDL_SetVideoMode(1280,1024,32,SDL_SWSURFACE |SDL_DOUBLEBUF| SDL_FULLSCREEN);
  6.  
  7.  
  8. while(quit == false)
  9. {
  10.  
  11. while(SDL_PollEvent( &event ))
  12. {
  13. if( ( event.type == SDL_KEYDOWN ) && ( event.key.keysym.sym == SDLK_RETURN ) ) {quit = true;}
  14. }
  15.  
  16. DisplayImage(screen,picture,0,0);
  17. SDL_Flip(screen);
  18. }
  19.  
  20. return 0;
  21. }


-------------------------
Ohhoo*



Nissebosselasse 19:33 - 26:e Maj 2008 | Post #2
Medlem
Inlägg: 490


Skicka PM
Testa och lägg in en SDL_Delay (0) i loopen.

-------------------------
http://pushingcows.se
Gula Nallen



achnorr 19:41 - 26:e Maj 2008 | Post #3
Medlem
Inlägg: 82


Skicka PM
då blir väl resten av programmet lidande? om jag tex har bakgrundsbilder, gubbar och lite av allt möjligt hoppande omkring märks det väl av att det ligger en liten delay med. dessutom måste det väl vara delay på några millisekunder(eller vad det är för mått) för att ge ngn verkan?

-------------------------
Ohhoo*



Nissebosselasse 19:52 - 26:e Maj 2008 | Post #4
Medlem
Inlägg: 490


Skicka PM
Nu vet jag inte hur det är med andra operativsystem, men under Window så innebär en Sleep av noll millisekunder bara att man (d.v.s. programmet) ger ifrån sig sin resterande tilldelade tid (alla program får ju en viss tid att köra på innan Windows växlar över till nästa process). Det blir alltså ingen delay i egentlig mening.

-------------------------
http://pushingcows.se
Gula Nallen



achnorr 19:54 - 26:e Maj 2008 | Post #5
Medlem
Inlägg: 82


Skicka PM
funkar inte iaf Smiley

-------------------------
Ohhoo*



achnorr 21:34 - 26:e Maj 2008 | Post #6
Medlem
Inlägg: 82


Skicka PM
ngn som har ett annat förslag ?

-------------------------
Ohhoo*



Independence 22:11 - 26:e Maj 2008 | Post #7
Administratör
Inlägg: 1800


Skicka PM
Kör med sleep på några ms i loopen, kanske 10 eller nåt, och sen ser du till att inte rita om allting om det redan ritats inom ett visst intervall (typ rate-limit på FPS, mer än ~25 FPS sägs vara onödigt har jag för mig).

-------------------------

Vi är riddarna som säger fiskbulle!





viblo 22:24 - 27:e Maj 2008 | Post #8
Medlem
Inlägg: 25


Skicka PM
    Citat av achnorr:
då blir väl resten av programmet lidande? om jag tex har bakgrundsbilder, gubbar och lite av allt möjligt hoppande omkring märks det väl av att det ligger en liten delay med. dessutom måste det väl vara delay på några millisekunder(eller vad det är för mått) för att ge ngn verkan?


Du kan inte ha kakan kvar och samtidigt äta upp denSmiley Om du vill att datorn ska köra din loop så fort som möjligt så är det klart att den kommer använda så mycket som möjligt av sin kraft för att göra det.

-------------------------
Ingen signatur!



achnorr 16:20 - 28:e Maj 2008 | Post #9
Medlem
Inlägg: 82


Skicka PM
jovisst xD
testade indys förslag och det funkade bra

-------------------------
Ohhoo*



Sidor: 1

Forum huvudsida -> Programmering -> sdl cpuanvändning
Atom feed

Du får inte posta i den här tråden | Till toppen