Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro5] Maksymalna ilość punktów w ALLEGRO_VERTEX

Ostatnio zmodyfikowano 2013-04-03 17:58
Autor Wiadomość
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:
C/C++
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:
C/C++
int num = 300000;
ALLEGRO_VERTEX * pixels = new ALLEGRO_VERTEX[ num ];
Wtedy wszystko działa :)
P-79856
« 1 »
  Strona 1 z 1