Chce stworzyć prosty ProgressBar typu MARQUEE w OpenGL, jednak mam problem przy kodzie rysującym jego 'wartość'.
Otóż przy pierwszym 'przejściu' wygląda On tak:
Natomiast przy kolejnych tak:
Oto kod odnośnie 'wartości' ProgressBar'a:
//In right
for(int i = 0; i <= sizeof(position)/sizeof(int); i++)
{
position[i] += value;
if(start == 1)position[i] = x + i;
if(position[i] >= (x + width))position[i] = x + 1; //Jestem prawie pewien, że tu jest blad
glBegin(GL_LINES);// Rysujemy linie
glVertex3f(position[i], y, -1); // początek linii
glVertex3f(position[i], y + (height - 1), -1); // punkt końcowy lini
glEnd();
}
start = 0;
position[i] to tablica przechowująca wartość dla każdej kreski
(bo z nich składa się pasek (patrz obraz 'Przed.png') i jest rozmiaru 25 elementów ale to nie ma znaczenia).
Kreski są rysowane jedna przy drugiej i gdy jedna z nich przekroczy wartość to jest przenoszona na początek ProgressBar'a.
if(position[i] >= (x + width))position[i] = x + 1; //Jestem prawie pewien, że tu jest blad
I to jest ten moment w którym kreski się od siebie oddalają.
Błąd występuje gdy value jest większe niż 1 (w przykładach użyłem wartości 5).
Nie wiem jak temu zapobiec.
PS: W tym temacie http://4programmers.net/Forum/C_i_C++/215831-wysrodkowanie_tekstu_opengl chodziło mi o środkowanie tekstu w przycisku.
Co myślicie o tym przycisku (jak się prezentuje graficznie)?