[Allegro5] Maksymalna ilość punktów w ALLEGRO_VERTEX
Ostatnio zmodyfikowano 2013-04-03 17:58
SeaMonster131 Temat założony przez niniejszego użytkownika |
[Allegro5] Maksymalna ilość punktów w ALLEGRO_VERTEX » 2013-04-03 17:58:42 Potrzebuję wyświetlić na ekranie dużą ilość pikseli, dlatego skorzystałem z ALLEGRO_VERTEX. Wszystko byłoby okej, tylko, no właśnie, wygląda to tak, jakby było jakieś ograniczenie co do wielkości tej struktury. Np robiąc tak: int num = 57000; ALLEGRO_VERTEX pixels[ num ]; int n = 0; for( int y = 0; y < 600; ++y ) { for( int x = 0; x < 800; ++x ) { pixels[ n ].x = x; pixels[ n ].y = y; pixels[ n ].z = 0; pixels[ n ].color = al_map_rgb( rand() % 256, 1, 1 ); if( n < num ) n++; } }
al_draw_prim( pixels, NULL, NULL, 0, num, ALLEGRO_PRIM_POINT_LIST );
Wszystko jest okej, fps wynosi tam ok. 800-900 fps. Natomiast num nie może wynosić więcej niż: int num = 57678; , kiedy dam chociażby liczbę o 1 większą, jest crash aplikacji. Wie ktoś, o co może chodzić? Tak, żebym mógł wyświetlić na ekranie dużą liczbę pikseli, korzystając tylko z jednej struktury? // Ah, pół dnia szukania i w końcu rozwiązałem problem sam. Gdyby ktoś miał podobny problem, może użyć operatora new: int num = 300000; ALLEGRO_VERTEX * pixels = new ALLEGRO_VERTEX[ num ];
Wtedy wszystko działa :) |
|
« 1 » |