improvements to the rendering
This commit is contained in:
23
main.c
23
main.c
@@ -77,7 +77,6 @@ int main(){
|
|||||||
pthread_cond_signal(&cond_top);
|
pthread_cond_signal(&cond_top);
|
||||||
pthread_cond_signal(&cond_mid);
|
pthread_cond_signal(&cond_mid);
|
||||||
pthread_cond_signal(&cond_lft);
|
pthread_cond_signal(&cond_lft);
|
||||||
user_interactions();
|
|
||||||
render_pass();
|
render_pass();
|
||||||
timeout(SETTINGS_CURSES_TIMEOUT);
|
timeout(SETTINGS_CURSES_TIMEOUT);
|
||||||
|
|
||||||
@@ -97,7 +96,7 @@ int main(){
|
|||||||
pthread_cond_signal(&cond_mid);
|
pthread_cond_signal(&cond_mid);
|
||||||
pthread_cond_signal(&cond_lft);
|
pthread_cond_signal(&cond_lft);
|
||||||
status &= ~(STATUS_RUN_BACKEND);
|
status &= ~(STATUS_RUN_BACKEND);
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
|
||||||
} else {
|
} else {
|
||||||
status &= ~(STATUS_RELOAD_DIRECTORY | STATUS_DELTA_TIME);
|
status &= ~(STATUS_RELOAD_DIRECTORY | STATUS_DELTA_TIME);
|
||||||
}
|
}
|
||||||
@@ -135,6 +134,9 @@ int main(){
|
|||||||
|
|
||||||
void render_pass(){
|
void render_pass(){
|
||||||
|
|
||||||
|
if (status & STATUS_UPDATE_SCREEN_CLEAR) {
|
||||||
|
clear();
|
||||||
|
}
|
||||||
if (status & STATUS_UPDATE_SCREEN_RESIZE) {
|
if (status & STATUS_UPDATE_SCREEN_RESIZE) {
|
||||||
|
|
||||||
wresize(win_t, 1, terminal_width);
|
wresize(win_t, 1, terminal_width);
|
||||||
@@ -151,18 +153,23 @@ void render_pass(){
|
|||||||
mvwin(win_b, terminal_height-1, 0);
|
mvwin(win_b, terminal_height-1, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status & STATUS_UPDATE_SCREEN_MASK) {
|
if (status & STATUS_UPDATE_SCREEN_MASK) {
|
||||||
|
werase(win_t);
|
||||||
|
werase(win_l);
|
||||||
|
werase(win_m);
|
||||||
|
werase(win_r);
|
||||||
|
werase(win_b);
|
||||||
window_top(win_t);
|
window_top(win_t);
|
||||||
window_lft(win_l);
|
window_lft(win_l);
|
||||||
window_mid(win_m);
|
window_mid(win_m);
|
||||||
window_rgt(win_r);
|
window_rgt(win_r);
|
||||||
window_btm(win_b);
|
window_btm(win_b);
|
||||||
wrefresh(win_t);
|
wnoutrefresh(win_t);
|
||||||
wrefresh(win_l);
|
wnoutrefresh(win_l);
|
||||||
wrefresh(win_m);
|
wnoutrefresh(win_m);
|
||||||
wrefresh(win_r);
|
wnoutrefresh(win_r);
|
||||||
wrefresh(win_b);
|
wnoutrefresh(win_b);
|
||||||
|
doupdate();
|
||||||
status &= ~(STATUS_UPDATE_SCREEN_MASK);
|
status &= ~(STATUS_UPDATE_SCREEN_MASK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
window.c
15
window.c
@@ -31,7 +31,6 @@ extern pthread_mutex_t mutex_mid;
|
|||||||
extern pthread_mutex_t mutex_rgt;
|
extern pthread_mutex_t mutex_rgt;
|
||||||
|
|
||||||
void window_top(WINDOW *win){
|
void window_top(WINDOW *win){
|
||||||
werase(win);
|
|
||||||
|
|
||||||
if (pthread_mutex_trylock(&mutex_top) == 0) {
|
if (pthread_mutex_trylock(&mutex_top) == 0) {
|
||||||
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
||||||
@@ -46,11 +45,10 @@ void window_top(WINDOW *win){
|
|||||||
pthread_mutex_unlock(&mutex_top);
|
pthread_mutex_unlock(&mutex_top);
|
||||||
} else {
|
} else {
|
||||||
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void window_btm(WINDOW *win){
|
void window_btm(WINDOW *win){
|
||||||
werase(win);
|
|
||||||
|
|
||||||
if (pthread_mutex_trylock(&mutex_btm) == 0) {
|
if (pthread_mutex_trylock(&mutex_btm) == 0) {
|
||||||
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
||||||
@@ -61,11 +59,10 @@ void window_btm(WINDOW *win){
|
|||||||
/*the printing of all possible inputs are done in user_interactions */
|
/*the printing of all possible inputs are done in user_interactions */
|
||||||
} else {
|
} else {
|
||||||
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void window_lft(WINDOW *win){
|
void window_lft(WINDOW *win){
|
||||||
werase(win);
|
|
||||||
|
|
||||||
if (pthread_mutex_trylock(&mutex_lft) == 0) {
|
if (pthread_mutex_trylock(&mutex_lft) == 0) {
|
||||||
print_dir(win, 0, &lft_dir);
|
print_dir(win, 0, &lft_dir);
|
||||||
@@ -73,11 +70,10 @@ void window_lft(WINDOW *win){
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
mvwaddstr(win, terminal_height/2, terminal_width/8, "LOADING");
|
mvwaddstr(win, terminal_height/2, terminal_width/8, "LOADING");
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void window_mid(WINDOW *win){
|
void window_mid(WINDOW *win){
|
||||||
werase(win);
|
|
||||||
|
|
||||||
if (pthread_mutex_trylock(&mutex_mid) == 0) {
|
if (pthread_mutex_trylock(&mutex_mid) == 0) {
|
||||||
if (mid_dir.file_count == 0) {
|
if (mid_dir.file_count == 0) {
|
||||||
@@ -88,11 +84,10 @@ void window_mid(WINDOW *win){
|
|||||||
pthread_mutex_unlock(&mutex_mid);
|
pthread_mutex_unlock(&mutex_mid);
|
||||||
} else {
|
} else {
|
||||||
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void window_rgt(WINDOW *win){
|
void window_rgt(WINDOW *win){
|
||||||
werase(win);
|
|
||||||
|
|
||||||
if (pthread_mutex_trylock(&mutex_rgt) == 0) {
|
if (pthread_mutex_trylock(&mutex_rgt) == 0) {
|
||||||
if (!rgt_dir.current_file) {
|
if (!rgt_dir.current_file) {
|
||||||
@@ -108,6 +103,6 @@ void window_rgt(WINDOW *win){
|
|||||||
pthread_mutex_unlock(&mutex_rgt);
|
pthread_mutex_unlock(&mutex_rgt);
|
||||||
} else {
|
} else {
|
||||||
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
||||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user