Changeset 3931 for neercs


Ignore:
Timestamp:
Nov 18, 2009, 2:02:40 PM (10 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • indentation test
File:
1 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/wm.c

    r3929 r3931  
    1 /*
     1/* 
    22 *  neercs        console-based window manager
    33 *  Copyright (c) 2006 Sam Hocevar <sam@zoy.org>
     
    2828{
    2929    caca_canvas_t *old, *new;
    30    
    31     if(w==s->w && h==s->h) return;
    32     if(w <= 0 || h <= 0) return;
    33    
     30
     31    if (w == s->w && h == s->h)
     32        return;
     33    if (w <= 0 || h <= 0)
     34        return;
     35
    3436    s->changed = 1;
    35    
     37
    3638    s->w = w;
    3739    s->h = h;
    38    
    39     /* caca_set_canvas_boundaries() is bugged as hell,
    40      * so let's resize it by hands */
     40
     41    /*
     42     * caca_set_canvas_boundaries() is bugged as hell, so let's resize it by
     43     * hands
     44     */
    4145    old = s->cv;
    4246    new = caca_create_canvas(w, h);
     
    4650    caca_free_canvas(old);
    4751    set_tty_size(s->fd, w, h);
    48    
     52
    4953    s->orig_w = s->w;
    5054    s->orig_h = s->h;
     
    5559void update_windows_props(struct screen_list *screen_list)
    5660{
    57     debug("%s, %d screens, type %d\n", __FUNCTION__, screen_list->count, screen_list->wm_type);
    58    
    59     if(!screen_list->count) return;
    60    
    61     switch(screen_list->wm_type)
    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;
     61    debug("%s, %d screens, type %d\n", __FUNCTION__, screen_list->count,
     62          screen_list->wm_type);
     63
     64    if (!screen_list->count)
     65        return;
     66
     67    switch (screen_list->wm_type)
     68    {
     69    case WM_CARD:
     70        update_windows_props_cards(screen_list);
     71        break;
     72    case WM_HSPLIT:
     73        update_windows_props_hsplit(screen_list);
     74        break;
     75    case WM_VSPLIT:
     76        update_windows_props_vsplit(screen_list);
     77        break;
     78    case WM_FULL:
     79    case WM_CUBE:
     80    default:
     81        update_windows_props_full(screen_list);
     82        break;
    7783    }
    7884}
     
    8389    int w = (screen_list->width / screen_list->count) - 1;
    8490    int h = screen_list->height - 2;
    85    
    86     for(i = 0; i < screen_list->count; i++)
    87     {
    88         screen_list->screen[i]->x = (i*w)+1;
     91
     92    for (i = 0; i < screen_list->count; i++)
     93    {
     94        screen_list->screen[i]->x = (i * w) + 1;
    8995        screen_list->screen[i]->y = 1;
    9096        screen_list->screen[i]->visible = 1;
    91         if(i != screen_list->count -1)
     97        if (i != screen_list->count - 1)
     98        {
     99            resize_screen(screen_list->screen[i], w - 1, h);
     100        }
     101        else
    92102        {
    93103            resize_screen(screen_list->screen[i],
    94                           w - 1, h);
    95         } else {
    96             resize_screen(screen_list->screen[i],
    97                           screen_list->width - i*w - 2,
    98                           h);
     104                          screen_list->width - i * w - 2, h);
    99105        }
    100106    }
     
    106112    int w = screen_list->width - 2;
    107113    int h = (screen_list->height) / screen_list->count;
    108    
    109     for(i = 0; i < screen_list->count; i++)
     114
     115    for (i = 0; i < screen_list->count; i++)
    110116    {
    111117        screen_list->screen[i]->x = 1;
    112         screen_list->screen[i]->y = (i*h) + 1;
     118        screen_list->screen[i]->y = (i * h) + 1;
    113119        screen_list->screen[i]->visible = 1;
    114         if(i != screen_list->count -1)
     120        if (i != screen_list->count - 1)
     121        {
     122            resize_screen(screen_list->screen[i], w, h - 2);
     123        }
     124        else
    115125        {
    116126            resize_screen(screen_list->screen[i],
    117                           w, h - 2);
    118         } else {
    119             resize_screen(screen_list->screen[i],
    120                           w,
    121                           screen_list->height - i*h - 2);
     127                          w, screen_list->height - i * h - 2);
    122128        }
    123129    }
     
    130136    int w = screen_list->width - 2;
    131137    int h = screen_list->height - 2;
    132    
    133     for(i = 0; i < screen_list->count; i++)
     138
     139    for (i = 0; i < screen_list->count; i++)
    134140    {
    135141        screen_list->screen[i]->visible = 0;
    136142        screen_list->screen[i]->x = 1;
    137143        screen_list->screen[i]->y = 1;
    138        
    139         resize_screen(screen_list->screen[i],
    140                       w, h);
     144
     145        resize_screen(screen_list->screen[i], w, h);
    141146    }
    142147    screen_list->screen[screen_list->pty]->visible = 1;
     
    147152{
    148153    int i;
    149     int w = (screen_list->width  - screen_list->count*3) + 1;
     154    int w = (screen_list->width - screen_list->count * 3) + 1;
    150155    int h = (screen_list->height - screen_list->count) - 1;
    151156    int x = 1;
    152157    int y = screen_list->count;
    153    
    154     for(i = 0; i < screen_list->count; i++)
     158
     159    for (i = 0; i < screen_list->count; i++)
    155160    {
    156161        screen_list->screen[i]->visible = 1;
    157162        screen_list->screen[i]->x = x;
    158163        screen_list->screen[i]->y = y;
    159        
    160         resize_screen(screen_list->screen[i],
    161                       w, h);
     164
     165        resize_screen(screen_list->screen[i], w, h);
    162166        x += 3;
    163167        y--;
     
    167171/* Window managers refresh */
    168172
    169 void wm_refresh(struct screen_list *screen_list)
    170 {
    171     switch (screen_list->wm_type) {
    172         case WM_CARD:
    173             wm_refresh_card(screen_list);
    174             break;
    175         case WM_FULL:
    176             wm_refresh_full(screen_list);
    177             break;
    178         case WM_HSPLIT:
    179             wm_refresh_hsplit(screen_list);
    180             break;
    181         case WM_VSPLIT:
    182             wm_refresh_hsplit(screen_list);
    183             break;
    184         case WM_CUBE:
    185             wm_refresh_cube(screen_list);
    186             break;
    187         default:
    188             wm_refresh_full(screen_list);
    189             break;
     173void wm_refresh(struct screen_list *screen_list)
     174{
     175    switch (screen_list->wm_type)
     176    {
     177    case WM_CARD:
     178        wm_refresh_card(screen_list);
     179        break;
     180    case WM_FULL:
     181        wm_refresh_full(screen_list);
     182        break;
     183    case WM_HSPLIT:
     184        wm_refresh_hsplit(screen_list);
     185        break;
     186    case WM_VSPLIT:
     187        wm_refresh_hsplit(screen_list);
     188        break;
     189    case WM_CUBE:
     190        wm_refresh_cube(screen_list);
     191        break;
     192    default:
     193        wm_refresh_full(screen_list);
     194        break;
    190195    }
    191196}
     
    194199{
    195200    int i;
    196    
    197     for(i = screen_list->count - 1; i >=0; i--)
    198     {
    199         if(i!=screen_list->pty && screen_list->screen[i]->visible &&
    200            (screen_list->screen[i]->changed || screen_list->changed))
     201
     202    for (i = screen_list->count - 1; i >= 0; i--)
     203    {
     204        if (i != screen_list->pty && screen_list->screen[i]->visible &&
     205            (screen_list->screen[i]->changed || screen_list->changed))
    201206        {
    202207            caca_blit(screen_list->cv,
     
    204209                      screen_list->screen[i]->y,
    205210                      screen_list->screen[i]->cv, NULL);
    206            
     211
    207212            caca_draw_cp437_box(screen_list->cv,
    208213                                screen_list->screen[i]->x - 1,
     
    210215                                screen_list->screen[i]->w + 2,
    211216                                screen_list->screen[i]->h + 2);
    212             if(screen_list->screen[i]->title)
     217            if (screen_list->screen[i]->title)
    213218                caca_printf(screen_list->cv,
    214219                            screen_list->screen[i]->x,
     
    219224        }
    220225    }
    221    
    222     if(screen_list->screen[screen_list->pty]->changed || screen_list->changed)
     226
     227    if (screen_list->screen[screen_list->pty]->changed || screen_list->changed)
    223228        caca_blit(screen_list->cv,
    224229                  screen_list->screen[screen_list->pty]->x,
    225230                  screen_list->screen[screen_list->pty]->y,
    226231                  screen_list->screen[screen_list->pty]->cv, NULL);
    227    
    228     if(screen_list->screen[screen_list->pty]->bell)
     232
     233    if (screen_list->screen[screen_list->pty]->bell)
    229234    {
    230235        caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
     
    236241        caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
    237242    }
    238    
     243
    239244    caca_draw_cp437_box(screen_list->cv,
    240245                        screen_list->screen[screen_list->pty]->x - 1,
     
    242247                        screen_list->screen[screen_list->pty]->w + 2,
    243248                        screen_list->screen[screen_list->pty]->h + 2);
    244    
    245     if(screen_list->screen[screen_list->pty]->title)
     249
     250    if (screen_list->screen[screen_list->pty]->title)
    246251    {
    247252        caca_printf(screen_list->cv,
     
    252257                    screen_list->screen[screen_list->pty]->title);
    253258    }
    254    
    255    
    256259}
    257260
     
    259262void wm_refresh_full(struct screen_list *screen_list)
    260263{
    261     if(screen_list->screen[screen_list->pty]->changed || screen_list->changed)
     264    if (screen_list->screen[screen_list->pty]->changed || screen_list->changed)
    262265        caca_blit(screen_list->cv,
    263266                  screen_list->screen[screen_list->pty]->x,
    264267                  screen_list->screen[screen_list->pty]->y,
    265268                  screen_list->screen[screen_list->pty]->cv, NULL);
    266    
    267     if(screen_list->screen[screen_list->pty]->bell)
     269
     270    if (screen_list->screen[screen_list->pty]->bell)
    268271    {
    269272        caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
     
    275278        caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
    276279    }
    277    
     280
    278281    caca_draw_cp437_box(screen_list->cv,
    279282                        screen_list->screen[screen_list->pty]->x - 1,
     
    281284                        screen_list->screen[screen_list->pty]->w + 2,
    282285                        screen_list->screen[screen_list->pty]->h + 2);
    283    
    284     if(screen_list->screen[screen_list->pty]->title)
     286
     287    if (screen_list->screen[screen_list->pty]->title)
    285288    {
    286289        caca_printf(screen_list->cv,
     
    291294                    screen_list->screen[screen_list->pty]->title);
    292295    }
    293    
    294    
    295296}
    296297
     
    298299{
    299300    int i;
    300    
    301     for(i = screen_list->count - 1; i >=0; i--)
    302     {
    303         if(i!=screen_list->pty && screen_list->screen[i]->visible &&
    304            (screen_list->screen[i]->changed || screen_list->changed))
     301
     302    for (i = screen_list->count - 1; i >= 0; i--)
     303    {
     304        if (i != screen_list->pty && screen_list->screen[i]->visible &&
     305            (screen_list->screen[i]->changed || screen_list->changed))
    305306        {
    306307            caca_blit(screen_list->cv,
     
    308309                      screen_list->screen[i]->y,
    309310                      screen_list->screen[i]->cv, NULL);
    310            
     311
    311312            caca_draw_cp437_box(screen_list->cv,
    312313                                screen_list->screen[i]->x - 1,
     
    314315                                screen_list->screen[i]->w + 2,
    315316                                screen_list->screen[i]->h + 2);
    316             if(screen_list->screen[i]->title)
     317            if (screen_list->screen[i]->title)
    317318                caca_printf(screen_list->cv,
    318319                            screen_list->screen[i]->x,
     
    323324        }
    324325    }
    325    
    326     if(screen_list->screen[screen_list->pty]->changed || screen_list->changed)
     326
     327    if (screen_list->screen[screen_list->pty]->changed || screen_list->changed)
    327328        caca_blit(screen_list->cv,
    328329                  screen_list->screen[screen_list->pty]->x,
    329330                  screen_list->screen[screen_list->pty]->y,
    330331                  screen_list->screen[screen_list->pty]->cv, NULL);
    331    
    332     if(screen_list->screen[screen_list->pty]->bell)
     332
     333    if (screen_list->screen[screen_list->pty]->bell)
    333334    {
    334335        caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
     
    340341        caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
    341342    }
    342    
     343
    343344    caca_draw_cp437_box(screen_list->cv,
    344345                        screen_list->screen[screen_list->pty]->x - 1,
     
    346347                        screen_list->screen[screen_list->pty]->w + 2,
    347348                        screen_list->screen[screen_list->pty]->h + 2);
    348    
    349     if(screen_list->screen[screen_list->pty]->title)
     349
     350    if (screen_list->screen[screen_list->pty]->title)
    350351    {
    351352        caca_printf(screen_list->cv,
     
    356357                    screen_list->screen[screen_list->pty]->title);
    357358    }
    358    
    359    
    360359}
    361360
     
    363362{
    364363    int i;
    365    
    366     for(i = screen_list->count - 1; i >=0; i--)
    367     {
    368         if(i!=screen_list->pty && screen_list->screen[i]->visible &&
    369            (screen_list->screen[i]->changed || screen_list->changed))
     364
     365    for (i = screen_list->count - 1; i >= 0; i--)
     366    {
     367        if (i != screen_list->pty && screen_list->screen[i]->visible &&
     368            (screen_list->screen[i]->changed || screen_list->changed))
    370369        {
    371370            caca_blit(screen_list->cv,
     
    373372                      screen_list->screen[i]->y,
    374373                      screen_list->screen[i]->cv, NULL);
    375            
     374
    376375            caca_draw_cp437_box(screen_list->cv,
    377376                                screen_list->screen[i]->x - 1,
     
    379378                                screen_list->screen[i]->w + 2,
    380379                                screen_list->screen[i]->h + 2);
    381             if(screen_list->screen[i]->title)
     380            if (screen_list->screen[i]->title)
    382381                caca_printf(screen_list->cv,
    383382                            screen_list->screen[i]->x,
     
    388387        }
    389388    }
    390    
    391     if(screen_list->screen[screen_list->pty]->changed || screen_list->changed)
     389
     390    if (screen_list->screen[screen_list->pty]->changed || screen_list->changed)
    392391        caca_blit(screen_list->cv,
    393392                  screen_list->screen[screen_list->pty]->x,
    394393                  screen_list->screen[screen_list->pty]->y,
    395394                  screen_list->screen[screen_list->pty]->cv, NULL);
    396    
    397     if(screen_list->screen[screen_list->pty]->bell)
     395
     396    if (screen_list->screen[screen_list->pty]->bell)
    398397    {
    399398        caca_set_color_ansi(screen_list->cv, CACA_RED, CACA_BLACK);
     
    405404        caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
    406405    }
    407    
     406
    408407    caca_draw_cp437_box(screen_list->cv,
    409408                        screen_list->screen[screen_list->pty]->x - 1,
     
    411410                        screen_list->screen[screen_list->pty]->w + 2,
    412411                        screen_list->screen[screen_list->pty]->h + 2);
    413    
    414     if(screen_list->screen[screen_list->pty]->title)
     412
     413    if (screen_list->screen[screen_list->pty]->title)
    415414    {
    416415        caca_printf(screen_list->cv,
     
    421420                    screen_list->screen[screen_list->pty]->title);
    422421    }
    423    
    424    
    425422}
    426423
    427424#if defined HAVE_CACA_TRIANGLE_TEXTURING
    428 static float get_direction(float p1x, float p1y, float p2x, float p2y, float p3x, float p3y)
     425static float
     426get_direction(float p1x, float p1y, float p2x, float p2y, float p3x, float p3y)
    429427{
    430428    float d1x, d1y, d2x, d2y;
    431    
    432         d1x = p3x - p1x;
    433         d1y = p3y - p1y;
    434         d2x = p3x - p2x;
    435         d2y = p3y - p2y;
     429
     430    d1x = p3x - p1x;
     431    d1y = p3y - p1y;
     432    d2x = p3x - p2x;
     433    d2y = p3y - p2y;
    436434    return (d1x * d2y) - (d1y * d2x);
    437435}
     
    442440{
    443441    int i;
    444    
    445     if(!screen_list->cube.in_switch) {
     442
     443    if (!screen_list->cube.in_switch)
     444    {
    446445        wm_refresh_full(screen_list);
    447446        screen_list->force_refresh = 0;
    448     } else {
    449        
     447    }
     448    else
     449    {
     450
    450451#define CUBE_TIME 1000000
    451        
    452        
    453        
     452
    454453        long long unsigned int cur_time = get_us() - screen_list->last_switch;
    455        
    456         if(cur_time >= CUBE_TIME || screen_list->count==1) {
    457             screen_list->changed = 1 ;     
     454
     455        if (cur_time >= CUBE_TIME || screen_list->count == 1)
     456        {
     457            screen_list->changed = 1;
    458458            screen_list->force_refresh = 1;
    459459            screen_list->cube.in_switch = 0;
    460         } else {
    461            
     460        }
     461        else
     462        {
     463
    462464            float cube[12][3] = {
    463                 {-1, -1,  1}, 
    464                 {1,  -1,  1}, 
    465                 {1,   1,  1},
    466                 {-1,  1,  1},
    467                
    468                 {1,  -1,  1},
    469                 {1,  -1,  -1},
    470                 {1,   1,  -1},
    471                 {1,   1, 1},
    472                
    473                 {-1,  -1,  1},
    474                 {-1,  -1,  -1},
    475                 {-1,   1,  -1},
    476                 {-1,   1, 1},
     465                {-1, -1, 1},
     466                {1, -1, 1},
     467                {1, 1, 1},
     468                {-1, 1, 1},
     469
     470                {1, -1, 1},
     471                {1, -1, -1},
     472                {1, 1, -1},
     473                {1, 1, 1},
     474
     475                {-1, -1, 1},
     476                {-1, -1, -1},
     477                {-1, 1, -1},
     478                {-1, 1, 1},
    477479            };
    478480            float cube_transformed[12][3];
     481
    479482            float cube_projected[12][2];
     483
    480484            float fov = 0.5f;
     485
    481486            float angle = 90.0f * ((float)cur_time / (float)CUBE_TIME);
    482             angle*= (M_PI/180.0f);
    483            
    484             if(screen_list->cube.side==1)
    485                 angle = -angle;
    486            
    487             for(i = 0; i < 12; i++) {
    488                
    489                 cube_transformed[i][2] = cube[i][2]*cos(angle) - cube[i][0]*sin(angle);
    490                 cube_transformed[i][0] = cube[i][2]*sin(angle) + cube[i][0]*cos(angle);
     487
     488            angle *= (M_PI / 180.0f);
     489
     490            if (screen_list->cube.side == 1)
     491                angle = -angle;
     492
     493            for (i = 0; i < 12; i++)
     494            {
     495                cube_transformed[i][2] =
     496                    cube[i][2] * cos(angle) - cube[i][0] * sin(angle);
     497                cube_transformed[i][0] =
     498                    cube[i][2] * sin(angle) + cube[i][0] * cos(angle);
    491499                cube_transformed[i][1] = cube[i][1];
    492                
     500
    493501                cube_transformed[i][2] -= 3;
    494                
    495                 cube_projected[i][0] = cube_transformed[i][0] / (cube_transformed[i][2] * fov);   
    496                 cube_projected[i][1] = cube_transformed[i][1] / (cube_transformed[i][2] * fov); 
    497                
    498                 cube_projected[i][0] /=2.0f; cube_projected[i][1] /=2.0f;
    499                 cube_projected[i][0] +=0.5f; cube_projected[i][1] +=0.5f;
    500                
     502
     503                cube_projected[i][0] =
     504                    cube_transformed[i][0] / (cube_transformed[i][2] * fov);
     505                cube_projected[i][1] =
     506                    cube_transformed[i][1] / (cube_transformed[i][2] * fov);
     507
     508                cube_projected[i][0] /= 2.0f;
     509                cube_projected[i][1] /= 2.0f;
     510                cube_projected[i][0] += 0.5f;
     511                cube_projected[i][1] += 0.5f;
     512
    501513                cube_projected[i][0] *= screen_list->width;
    502514                cube_projected[i][1] *= screen_list->height;
    503                
    504                
    505515            }
     516
    506517            caca_set_color_ansi(screen_list->cv, CACA_WHITE, CACA_BLACK);
    507518            caca_clear_canvas(screen_list->cv);
    508            
     519
    509520#if defined HAVE_CACA_TRIANGLE_TEXTURING
    510521
    511             caca_canvas_t *first =  screen_list->screen[screen_list->prevpty]->cv;
     522            caca_canvas_t *first =
     523                screen_list->screen[screen_list->prevpty]->cv;
    512524            caca_canvas_t *second = screen_list->screen[screen_list->pty]->cv;
    513            
     525
    514526            int coords[6];
     527
    515528            float uv[6];
    516            
    517            
    518             if(get_direction(cube_projected[0][0], cube_projected[0][1],
    519                              cube_projected[1][0], cube_projected[1][1],
    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;
    527                 caca_fill_triangle_textured(screen_list->cv,
    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;     
    538                 caca_fill_triangle_textured(screen_list->cv,
    539                                             coords,
    540                                             first,
    541                                             uv);
    542                 caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN, CACA_BLACK);
    543                 caca_draw_thin_line(screen_list->cv,
    544                                     cube_projected[0][0], cube_projected[0][1],
    545                                     cube_projected[1][0], cube_projected[1][1]);
    546                 caca_draw_thin_line(screen_list->cv,
    547                                     cube_projected[1][0], cube_projected[1][1],
    548                                     cube_projected[2][0], cube_projected[2][1]);
    549                 caca_draw_thin_line(screen_list->cv,
    550                                     cube_projected[2][0], cube_projected[2][1],
    551                                     cube_projected[3][0], cube_projected[3][1]);
    552                 caca_draw_thin_line(screen_list->cv,
    553                                     cube_projected[3][0], cube_projected[3][1],
    554                                     cube_projected[0][0], cube_projected[0][1]);
     529
     530
     531            if (get_direction(cube_projected[0][0], cube_projected[0][1],
     532                              cube_projected[1][0], cube_projected[1][1],
     533                              cube_projected[2][0], cube_projected[2][1]) >= 0)
     534            {
     535                coords[0] = cube_projected[0][0];
     536                coords[1] = cube_projected[0][1];
     537                coords[2] = cube_projected[1][0];
     538                coords[3] = cube_projected[1][1],
     539                    coords[4] = cube_projected[2][0];
     540                coords[5] = cube_projected[2][1], uv[0] = 1;
     541                uv[1] = 1;
     542                uv[2] = 0;
     543                uv[3] = 1;
     544                uv[4] = 0;
     545                uv[5] = 0;
     546                caca_fill_triangle_textured(screen_list->cv,
     547                                            coords, first, uv);
     548
     549                coords[0] = cube_projected[0][0];
     550                coords[1] = cube_projected[0][1];
     551                coords[2] = cube_projected[2][0];
     552                coords[3] = cube_projected[2][1],
     553                    coords[4] = cube_projected[3][0];
     554                coords[5] = cube_projected[3][1], uv[0] = 1;
     555                uv[1] = 1;
     556                uv[2] = 0;
     557                uv[3] = 0;
     558                uv[4] = 1;
     559                uv[5] = 0;
     560                caca_fill_triangle_textured(screen_list->cv,
     561                                            coords, first, uv);
     562                caca_set_color_ansi(screen_list->cv, CACA_LIGHTGREEN,
     563                                    CACA_BLACK);
     564                caca_draw_thin_line(screen_list->cv, cube_projected[0][0],
     565                                    cube_projected[0][1], cube_projected[1][0],
     566                                    cube_projected[1][1]);
     567                caca_draw_thin_line(screen_list->cv, cube_projected[1][0],
     568                                    cube_projected[1][1], cube_projected[2][0],
     569                                    cube_projected[2][1]);
     570                caca_draw_thin_line(screen_list->cv, cube_projected[2][0],
     571                                    cube_projected[2][1], cube_projected[3][0],
     572                                    cube_projected[3][1]);
     573                caca_draw_thin_line(screen_list->cv, cube_projected[3][0],
     574                                    cube_projected[3][1], cube_projected[0][0],
     575                                    cube_projected[0][1]);
    555576            }
    556            
    557            
    558            
    559             if(screen_list->cube.side)
     577            if (screen_list->cube.side)
    560578            {
    561                 if(get_direction(cube_projected[4][0], cube_projected[4][1],
    562                                  cube_projected[5][0], cube_projected[5][1],
    563                                  cube_projected[6][0], cube_projected[6][1]) >=0) {
    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);
     579                if (get_direction(cube_projected[4][0], cube_projected[4][1],
     580                                  cube_projected[5][0], cube_projected[5][1],
     581                                  cube_projected[6][0],
     582                                  cube_projected[6][1]) >= 0)
     583                {
     584                    coords[0] = cube_projected[4][0];
     585                    coords[1] = cube_projected[4][1];
     586                    coords[2] = cube_projected[5][0];
     587                    coords[3] = cube_projected[5][1],
     588                        coords[4] = cube_projected[6][0];
     589                    coords[5] = cube_projected[6][1], uv[0] = 1;
     590                    uv[1] = 1;
     591                    uv[2] = 0;
     592                    uv[3] = 1;
     593                    uv[4] = 0;
     594                    uv[5] = 0;
     595
     596
     597                    caca_fill_triangle_textured(screen_list->cv,
     598                                                coords, second, uv);
     599                    coords[0] = cube_projected[4][0];
     600                    coords[1] = cube_projected[4][1];
     601                    coords[2] = cube_projected[6][0];
     602                    coords[3] = cube_projected[6][1],
     603                        coords[4] = cube_projected[7][0];
     604                    coords[5] = cube_projected[7][1], uv[0] = 1;
     605                    uv[1] = 1;
     606                    uv[2] = 0;
     607                    uv[3] = 0;
     608                    uv[4] = 1;
     609                    uv[5] = 0;
     610                    caca_fill_triangle_textured(screen_list->cv,
     611                                                coords, second, uv);
    586612                    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]);
     613
     614                    caca_draw_thin_line(screen_list->cv,
     615                                        cube_projected[4][0],
     616                                        cube_projected[4][1],
     617                                        cube_projected[5][0],
     618                                        cube_projected[5][1]);
     619                    caca_draw_thin_line(screen_list->cv, cube_projected[5][0],
     620                                        cube_projected[5][1],
     621                                        cube_projected[6][0],
     622                                        cube_projected[6][1]);
     623                    caca_draw_thin_line(screen_list->cv, cube_projected[6][0],
     624                                        cube_projected[6][1],
     625                                        cube_projected[7][0],
     626                                        cube_projected[7][1]);
     627                    caca_draw_thin_line(screen_list->cv, cube_projected[7][0],
     628                                        cube_projected[7][1],
     629                                        cube_projected[4][0],
     630                                        cube_projected[4][1]);
    600631                }
    601                
    602                
    603             } else
     632            }
     633            else
    604634            {
    605                 if(get_direction(cube_projected[9][0], cube_projected[9][1],
    606                                  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);
     635                if (get_direction(cube_projected[9][0], cube_projected[9][1],
     636                                  cube_projected[8][0], cube_projected[8][1],
     637                                  cube_projected[10][0],
     638                                  cube_projected[10][1]) > 0.0f)
     639                {
     640                    coords[0] = cube_projected[9][0];
     641                    coords[1] = cube_projected[9][1];
     642                    coords[2] = cube_projected[8][0];
     643                    coords[3] = cube_projected[8][1],
     644                        coords[4] = cube_projected[10][0];
     645                    coords[5] = cube_projected[10][1], uv[0] = 1;
     646                    uv[1] = 1;
     647                    uv[2] = 0;
     648                    uv[3] = 1;
     649                    uv[4] = 1;
     650                    uv[5] = 0;
     651
     652                    caca_fill_triangle_textured(screen_list->cv,
     653                                                coords, second, uv);
     654
     655                    coords[0] = cube_projected[8][0];
     656                    coords[1] = cube_projected[8][1];
     657                    coords[2] = cube_projected[10][0];
     658                    coords[3] = cube_projected[10][1],
     659                        coords[4] = cube_projected[11][0];
     660                    coords[5] = cube_projected[11][1], uv[0] = 0;
     661                    uv[1] = 1;
     662                    uv[2] = 1;
     663                    uv[3] = 0;
     664                    uv[4] = 0;
     665                    uv[5] = 0;
     666
     667                    caca_fill_triangle_textured(screen_list->cv,
     668                                                coords, second, uv);
    631669                    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]);
     670                    caca_draw_thin_line(screen_list->cv,
     671                                        cube_projected[8][0],
     672                                        cube_projected[8][1],
     673                                        cube_projected[9][0],
     674                                        cube_projected[9][1]);
     675                    caca_draw_thin_line(screen_list->cv, cube_projected[9][0],
     676                                        cube_projected[9][1],
     677                                        cube_projected[10][0],
     678                                        cube_projected[10][1]);
     679                    caca_draw_thin_line(screen_list->cv, cube_projected[10][0],
     680                                        cube_projected[10][1],
     681                                        cube_projected[11][0],
     682                                        cube_projected[11][1]);
     683                    caca_draw_thin_line(screen_list->cv, cube_projected[11][0],
     684                                        cube_projected[11][1],
     685                                        cube_projected[8][0],
     686                                        cube_projected[8][1]);
    644687                }
    645688            }
    646689#else
    647 #   warning temporary : HAVE_CACA_TRIANGLE_TEXTURING is not defined
     690#warning temporary : HAVE_CACA_TRIANGLE_TEXTURING is not defined
    648691#endif
    649            
    650             screen_list->changed =1 ;     
     692
     693            screen_list->changed = 1;
    651694            screen_list->force_refresh = 1;
    652695            screen_list->cube.in_switch = 1;
    653696        }
    654        
    655     }
    656 }
    657 
     697
     698    }
     699}
Note: See TracChangeset for help on using the changeset viewer.