Ohjelmani toimii ikkunassa aivan sujuvasti mutta kun vaihtaa kokoruudulle, alkaa peli tökkiä aivan älyttömästi ja vielä käyttää prossua 100% kuormituksella. Miksi näin? Resoluutiona 800x600x32
Minä käytän yleensä sellaista halpaa tapaa kourmitukseen alentamiseksi kuin SDL_Delay(1);
Tökkii edelleen aivan kamalasti...
EDIT: mutta prossun käyttö aleni...
EDIT:EDIT: Tutkin frapsilla ja kokoruudulla (hw/sw-surfaceista huolimatta) pyörii kokoajan 3fps. Resoluutio ei vaikuta.
Onkos sinulla tehokaskin kone ja näytönohjain? SDL käyttää windowsissa directx:ää ja linuxilla (kai) OpenGL:ää
Siskoni koneella joka on 800mhz, kaikki mahdollinen integroituna ja jossa on linux, ei pystyisi kuvittelemaankaan pelaamaan mitään joka on tehty SDL:llä. SuperTux (meniköhän oikein) tökkii erittäin paljon.
>SDL käyttää windowsissa directx:ää ja
>linuxilla (kai) OpenGL:ää
SDL EI käytä laitteistokiihdytystä eli se ei käytä OpenGL tai DirectX:ää.
SDL:n kanssa voi käyttää OpenGL:ää,jolloin ohjelmasta saa nopean (olettaen, että koneessa on 3D-kiihdytystä tukeva näytönohjain)
Mitäsvarten on sitten tuo SDL_HWSURFACE-lippu jos kerta sdl ei käytä laitteiston kiihdytyksiä?
Ja koneeni on ihan riittävän tehokas... (1,8GHz AMD; Radeon9800XT; 1Gb muistia)
EDIT: Ja ikkunassa pyörii edelleenkin ihan hyvin...
Meitsi kirjoitti:
Mitäsvarten on sitten tuo SDL_HWSURFACE-lippu jos kerta sdl ei käytä laitteiston kiihdytyksiä?
Se tarkoittaa ainoastaan sitä, että piirtopinta sijaitsee näytönohjaimen muistissa RAM:n sijaan. Tämä nopeuttaa kyllä jonkin verran, mutta EI käytä hyödyksi näytönohjaimen huipputehokasta grafiikkaprosessoria toisin kuin OpenGL.
Markus kirjoitti:
...mutta EI käytä hyödyksi näytönohjaimen huipputehokasta grafiikkaprosessoria toisin kuin OpenGL.
No, en tiiä Windowsista, mutta Linuxissa SAA monille SDL functioille laitteistokiihdytyksen. Itselläni saan normaali ja alpha kanavaisen bittikartan piirron kiihdytettyä. Muistaakseni tämä hoituu tekemällä ympäristämuuttuja, tämmöne koodi vaik mainii (linuxissa siis)
#ifdef __linux__ putenv("SDL_VIDEODRIVER=dga"); #endif
sama koodi windoosas mut toho driverii tulee kait directx
Täs o tietoi linuxille, joita voi kuiteski hyödyntää windoosaa: http://www.linuxdevcenter.com/pub/a/linux/2003/
Sekä täs o lista kaikista SDL:llän ympäristömuuttujist:
ftp://ptah.lnf.kth.se/pub/misc/sdl-env-vars
Lisäys:
JOUDUIN ottaa asiasta selvää, sillä itellä on niin tuhnu kone et tarviin kaiken mahollisen kiihdytyksen, ja ny toimii omat softat paremmi :) Kun vaa kaikki ny lukis tän postin ja tekis muutokset SDL ohjelmiinsa... :D
Markus: Käyttääpäs, ainakin windowsilla se käyttää directx:ää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.