ncurses, wolne odrysowywanie tablicy

0

Cześć. Piszę aplikacje wielowątkową. Parę wątków operuje na tablicy, natomiast jeden ją wypisuje na tablicy. Pozwala to zobaczyć, jak elementy przemieszczają sie po "mapie". Niemniej ekran non stop miga - bo ciągle się przerysowuje tablica i jest to całkiem wolne. Jak lepiej to rysować w ncurses ? Kłopot pewnie w tym, że odrysowuje całą tablice i kasuje zawartość ekranu, ale wątek wypisujący nie wie de facto które elementy się zmieniły.

Poniżej obecny kod wątku rysowniczego :

void* painterThread(void* _arg){
  int i,j;
  while(true){
	clear();
    for(i=0;i<_map.rowCount;i++){
	  for(j=0;j<_map.colCount;j++){
		int z = _map.map[i][j];
		 printw("%d",z);
	    }
		printw("\n");
	 }
     refresh();
  }
  return NULL;
}

Dziękuję za czas i pomoc.

0

Wpadłem na pomysł, żeby wątek rysujący wypisał tablice tylko raz a potem tablice zostawić do kontroli kolizji i poszukiwania obiektów, natomiast, żeby wątek rysujący operował na kolejce komunikatów z wątków zmieniajacych tablicę i wykonywał tylko erase oraz mvaddch - co o tym myślicie ? Jest to dobre podejście, czy raczej zrobilibyście to inaczej ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1