Changeset 3929
- Timestamp:
- Nov 18, 2009, 1:28:38 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
neercs/trunk/src/wm.c
r3927 r3929 28 28 { 29 29 caca_canvas_t *old, *new; 30 30 31 31 if(w==s->w && h==s->h) return; 32 32 if(w <= 0 || h <= 0) return; 33 33 34 34 s->changed = 1; 35 35 36 36 s->w = w; 37 37 s->h = h; 38 38 39 39 /* caca_set_canvas_boundaries() is bugged as hell, 40 40 * so let's resize it by hands */ … … 46 46 caca_free_canvas(old); 47 47 set_tty_size(s->fd, w, h); 48 48 49 49 s->orig_w = s->w; 50 50 s->orig_h = s->h; … … 58 58 59 59 if(!screen_list->count) return; 60 60 61 61 switch(screen_list->wm_type) 62 62 { 63 case WM_CARD:64 update_windows_props_cards(screen_list);65 break;66 case WM_HSPLIT:67 update_windows_props_hsplit(screen_list);68 break;69 case WM_VSPLIT:70 update_windows_props_vsplit(screen_list);71 break;72 case WM_FULL:73 case WM_CUBE:74 default:75 update_windows_props_full(screen_list);76 break;63 case WM_CARD: 64 update_windows_props_cards(screen_list); 65 break; 66 case WM_HSPLIT: 67 update_windows_props_hsplit(screen_list); 68 break; 69 case WM_VSPLIT: 70 update_windows_props_vsplit(screen_list); 71 break; 72 case WM_FULL: 73 case WM_CUBE: 74 default: 75 update_windows_props_full(screen_list); 76 break; 77 77 } 78 78 } … … 83 83 int w = (screen_list->width / screen_list->count) - 1; 84 84 int h = screen_list->height - 2; 85 85 86 86 for(i = 0; i < screen_list->count; i++) 87 87 { … … 106 106 int w = screen_list->width - 2; 107 107 int h = (screen_list->height) / screen_list->count; 108 108 109 109 for(i = 0; i < screen_list->count; i++) 110 110 { … … 130 130 int w = screen_list->width - 2; 131 131 int h = screen_list->height - 2; 132 132 133 133 for(i = 0; i < screen_list->count; i++) 134 134 { … … 136 136 screen_list->screen[i]->x = 1; 137 137 screen_list->screen[i]->y = 1; 138 138 139 139 resize_screen(screen_list->screen[i], 140 140 w, h); … … 151 151 int x = 1; 152 152 int y = screen_list->count; 153 153 154 154 for(i = 0; i < screen_list->count; i++) 155 155 { … … 157 157 screen_list->screen[i]->x = x; 158 158 screen_list->screen[i]->y = y; 159 159 160 160 resize_screen(screen_list->screen[i], 161 161 w, h); … … 442 442 { 443 443 int i; 444 444 445 445 if(!screen_list->cube.in_switch) { 446 446 wm_refresh_full(screen_list); … … 449 449 450 450 #define CUBE_TIME 1000000 451 451 452 452 453 453 … … 485 485 angle = -angle; 486 486 487 488 487 for(i = 0; i < 12; i++) { 489 488 490 489 cube_transformed[i][2] = cube[i][2]*cos(angle) - cube[i][0]*sin(angle); 491 490 cube_transformed[i][0] = cube[i][2]*sin(angle) + cube[i][0]*cos(angle); … … 503 502 cube_projected[i][1] *= screen_list->height; 504 503 505 504 506 505 } 506 caca_set_color_ansi(screen_list->cv, CACA_WHITE, CACA_BLACK); 507 507 caca_clear_canvas(screen_list->cv); 508 508 509 509 #if defined HAVE_CACA_TRIANGLE_TEXTURING 510 510 511 caca_canvas_t *first = screen_list->screen[screen_list->prevpty]->cv; 511 512 caca_canvas_t *second = screen_list->screen[screen_list->pty]->cv; 512 513 514 int coords[6]; 515 float uv[6]; 516 517 513 518 if(get_direction(cube_projected[0][0], cube_projected[0][1], 514 519 cube_projected[1][0], cube_projected[1][1], 515 520 cube_projected[2][0], cube_projected[2][1]) >=0) { 521 coords[0] = cube_projected[0][0]; coords[1] = cube_projected[0][1]; 522 coords[2] = cube_projected[1][0]; coords[3] = cube_projected[1][1], 523 coords[4] = cube_projected[2][0]; coords[5] = cube_projected[2][1], 524 uv[0] = 1; uv[1] = 1; 525 uv[2] = 0; uv[3] = 1; 526 uv[4] = 0; uv[5] = 0; 516 527 caca_fill_triangle_textured(screen_list->cv, 517 cube_projected[0][0], cube_projected[0][1], 518 cube_projected[1][0], cube_projected[1][1], 519 cube_projected[2][0], cube_projected[2][1], 520 1, 1, 521 0, 1, 522 0, 0, 523 first); 528 coords, 529 first, 530 uv); 531 532 coords[0] = cube_projected[0][0]; coords[1] = cube_projected[0][1]; 533 coords[2] = cube_projected[2][0]; coords[3] = cube_projected[2][1], 534 coords[4] = cube_projected[3][0]; coords[5] = cube_projected[3][1], 535 uv[0] = 1; uv[1] = 1; 536 uv[2] = 0; uv[3] = 0; 537 uv[4] = 1; uv[5] = 0; 524 538 caca_fill_triangle_textured(screen_list->cv, 525 cube_projected[0][0], cube_projected[0][1], 526 cube_projected[2][0], cube_projected[2][1], 527 cube_projected[3][0], cube_projected[3][1], 528 1, 1, 529 0, 0, 530 1, 0, 531 first); 532 533 539 coords, 540 first, 541 uv); 534 542 caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK); 535 543 caca_draw_thin_line(screen_list->cv, … … 554 562 cube_projected[5][0], cube_projected[5][1], 555 563 cube_projected[6][0], cube_projected[6][1]) >=0) { 556 caca_fill_triangle_textured(screen_list->cv, 557 cube_projected[4][0], cube_projected[4][1], 558 cube_projected[5][0], cube_projected[5][1], 559 cube_projected[6][0], cube_projected[6][1], 560 1, 1, 561 0, 1, 562 0, 0, 563 second); 564 caca_fill_triangle_textured(screen_list->cv, 565 cube_projected[4][0], cube_projected[4][1], 566 cube_projected[6][0], cube_projected[6][1], 567 cube_projected[7][0], cube_projected[7][1], 568 1, 1, 569 0, 0, 570 1, 0, 571 second); 572 caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK); 573 574 caca_draw_thin_line(screen_list->cv, 575 cube_projected[4][0], cube_projected[4][1], 576 cube_projected[5][0], cube_projected[5][1]); 577 caca_draw_thin_line(screen_list->cv, 578 cube_projected[5][0], cube_projected[5][1], 579 cube_projected[6][0], cube_projected[6][1]); 580 caca_draw_thin_line(screen_list->cv, 581 cube_projected[6][0], cube_projected[6][1], 582 cube_projected[7][0], cube_projected[7][1]); 583 caca_draw_thin_line(screen_list->cv, 584 cube_projected[7][0], cube_projected[7][1], 585 cube_projected[4][0], cube_projected[4][1]); 564 coords[0] = cube_projected[4][0]; coords[1] = cube_projected[4][1]; 565 coords[2] = cube_projected[5][0]; coords[3] = cube_projected[5][1], 566 coords[4] = cube_projected[6][0]; coords[5] = cube_projected[6][1], 567 uv[0] = 1; uv[1] = 1; 568 uv[2] = 0; uv[3] = 1; 569 uv[4] = 0; uv[5] = 0; 570 571 572 caca_fill_triangle_textured(screen_list->cv, 573 coords, 574 second, 575 uv); 576 coords[0] = cube_projected[4][0]; coords[1] = cube_projected[4][1]; 577 coords[2] = cube_projected[6][0]; coords[3] = cube_projected[6][1], 578 coords[4] = cube_projected[7][0]; coords[5] = cube_projected[7][1], 579 uv[0] = 1; uv[1] = 1; 580 uv[2] = 0; uv[3] = 0; 581 uv[4] = 1; uv[5] = 0; 582 caca_fill_triangle_textured(screen_list->cv, 583 coords, 584 second, 585 uv); 586 caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK); 587 588 caca_draw_thin_line(screen_list->cv, 589 cube_projected[4][0], cube_projected[4][1], 590 cube_projected[5][0], cube_projected[5][1]); 591 caca_draw_thin_line(screen_list->cv, 592 cube_projected[5][0], cube_projected[5][1], 593 cube_projected[6][0], cube_projected[6][1]); 594 caca_draw_thin_line(screen_list->cv, 595 cube_projected[6][0], cube_projected[6][1], 596 cube_projected[7][0], cube_projected[7][1]); 597 caca_draw_thin_line(screen_list->cv, 598 cube_projected[7][0], cube_projected[7][1], 599 cube_projected[4][0], cube_projected[4][1]); 586 600 } 587 601 … … 591 605 if(get_direction(cube_projected[9][0], cube_projected[9][1], 592 606 cube_projected[8][0], cube_projected[8][1], 593 cube_projected[10][0], cube_projected[10][1])) { 594 caca_fill_triangle_textured(screen_list->cv, 595 cube_projected[9][0], cube_projected[9][1], 596 cube_projected[8][0], cube_projected[8][1], 597 cube_projected[10][0], cube_projected[10][1], 598 1, 1, 599 0, 1, 600 1, 0, 601 second); 602 caca_fill_triangle_textured(screen_list->cv, 603 cube_projected[8][0], cube_projected[8][1], 604 cube_projected[10][0], cube_projected[10][1], 605 cube_projected[11][0], cube_projected[11][1], 606 0, 1, 607 1, 0, 608 0, 0, 609 second); 610 caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK); 611 caca_draw_thin_line(screen_list->cv, 612 cube_projected[8][0], cube_projected[8][1], 613 cube_projected[9][0], cube_projected[9][1]); 614 caca_draw_thin_line(screen_list->cv, 615 cube_projected[9][0], cube_projected[9][1], 616 cube_projected[10][0], cube_projected[10][1]); 617 caca_draw_thin_line(screen_list->cv, 618 cube_projected[10][0], cube_projected[10][1], 619 cube_projected[11][0], cube_projected[11][1]); 620 caca_draw_thin_line(screen_list->cv, 621 cube_projected[11][0], cube_projected[11][1], 622 cube_projected[8][0], cube_projected[8][1]); 607 cube_projected[10][0], cube_projected[10][1]) > 0.0f) { 608 coords[0] = cube_projected[9][0]; coords[1] = cube_projected[9][1]; 609 coords[2] = cube_projected[8][0]; coords[3] = cube_projected[8][1], 610 coords[4] = cube_projected[10][0]; coords[5] = cube_projected[10][1], 611 uv[0] = 1; uv[1] = 1; 612 uv[2] = 0; uv[3] = 1; 613 uv[4] = 1; uv[5] = 0; 614 615 caca_fill_triangle_textured(screen_list->cv, 616 coords, 617 second, 618 uv); 619 620 coords[0] = cube_projected[8][0]; coords[1] = cube_projected[8][1]; 621 coords[2] = cube_projected[10][0]; coords[3] = cube_projected[10][1], 622 coords[4] = cube_projected[11][0]; coords[5] = cube_projected[11][1], 623 uv[0] = 0; uv[1] = 1; 624 uv[2] = 1; uv[3] = 0; 625 uv[4] = 0; uv[5] = 0; 626 627 caca_fill_triangle_textured(screen_list->cv, 628 coords, 629 second, 630 uv); 631 caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK); 632 caca_draw_thin_line(screen_list->cv, 633 cube_projected[8][0], cube_projected[8][1], 634 cube_projected[9][0], cube_projected[9][1]); 635 caca_draw_thin_line(screen_list->cv, 636 cube_projected[9][0], cube_projected[9][1], 637 cube_projected[10][0], cube_projected[10][1]); 638 caca_draw_thin_line(screen_list->cv, 639 cube_projected[10][0], cube_projected[10][1], 640 cube_projected[11][0], cube_projected[11][1]); 641 caca_draw_thin_line(screen_list->cv, 642 cube_projected[11][0], cube_projected[11][1], 643 cube_projected[8][0], cube_projected[8][1]); 623 644 } 624 645 } 646 #else 647 # warning temporary : HAVE_CACA_TRIANGLE_TEXTURING is not defined 625 648 #endif 626 649
Note: See TracChangeset
for help on using the changeset viewer.