[SDL] Zużycie procesora
Ostatnio zmodyfikowano 2014-06-25 10:06
Marcin65 Temat założony przez niniejszego użytkownika |
[SDL] Zużycie procesora » 2014-06-24 19:52:45 Witam wszystkich, przerabiam właśnie kurs SDL i postanowiłem napisać własny program. Tu jest kod programu: #include <SDL/SDL.h>
SDL_Surface * ekran = NULL; SDL_Surface * obraz = NULL; const int width = 10, height = 10; SDL_Rect sprst; SDL_Rect dprst[ width * height ]; int main( int argc, char * args[] ) { SDL_Init( SDL_INIT_EVERYTHING ); ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); obraz = SDL_LoadBMP( "obrazek.bmp" ); sprst.x = 0; sprst.y = 0; sprst.w = 50; sprst.h = 50; while( 1 ) { int k = 0; for( int i = 1; i <= width; i++ ) { for( int j = 1; j <= height; j++ ) { dprst[ k ].x = i * 50; dprst[ k ].y = j * 50; SDL_BlitSurface( obraz, & sprst, ekran, & dprst[ k ] ); k++; } } SDL_Flip( ekran ); SDL_Delay( 10 ); } SDL_Quit(); SDL_FreeSurface( obraz ); return 0; } Jak zapewne zauważyliście jest to przerobiony przykład z czwartej lekcji kursu SDL. Program wyświetla 10 rzędów po 10 kolumn obrazu o wymiarach 50 x 50 pikseli. Zużywa przy tym 10-15% CPU. To chyba za dużo. I tu pojawia się moje pytanie. Czy wynika to z mojego niedopatrzenia? Źle napisałem pętle, nie używam odpowiednich funkcji? Przecież używam funkcji SDL_Delay po każdym obrocie pętli głównej, która odpowiada standardowemu Sleep. A może ta biblioteka jest tak wolna? Czekam na waszą odpowiedź. |
|
DejaVu |
» 2014-06-24 19:58:01 SDL-a 1.2 nie używa możliwości sprzętowych karty graficznej do renderowania czegokolwiek. SDL 2.0 używa OpenGL-a lub DirectX-a, więc wykorzystuje sprzętowe możliwości karty graficznej. Prawie każda gra czasu rzeczywistego używa cały jeden rdzeń CPU do renderowania grafiki. Wyjątkiem są sytuacje w których jest używane usypianie procesu (Sleep lub jego odpowiednik) oraz alternatywnie włączona synchronizacja pionowa ograniczająca liczbę renderowanych FPS-ów zazwyczaj do 60 klatek/sec. |
|
Marcin65 Temat założony przez niniejszego użytkownika |
» 2014-06-24 22:48:46 Dzięki za wyjaśnienie. Chyba czas najwyższy, żeby przerzucić się na nowszą wersję. Zrobicie kurs dotyczący SDL 2? Wiem, że są na innych stronach po angielsku, ale ja wolę wasze artykuły. :) |
|
MrPoxipol |
» 2014-06-24 23:17:46 Zrobicie kurs dotyczący SDL 2? Wiem, że są na innych stronach po angielsku, ale ja wolę wasze artykuły. :) |
Nie. PS Angielskiego się ucz. |
|
pekfos |
» 2014-06-25 10:06:50 Zrobicie kurs dotyczący SDL 2? Wiem, że są na innych stronach po angielsku, ale ja wolę wasze artykuły. :) | Nie. |
"Njeeee..", hehe :P Zrobimy, a może i nie zrobimy. Będzie, jak ktoś go napisze, a administracja jest teraz raczej zajęta. Jak się nie ma co się lubi, to się czyta po angielsku, ten język musisz znać w programowaniu. |
|
« 1 » |