Ignore:
Timestamp:
Nov 21, 2009, 11:28:58 AM (10 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Indentation fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples/trifiller.c

    r3928 r3987  
    1 /*
     1/* 
    22 *  trifiller     texture mapping features
    33 *  Copyright (c) 2009 Jean-Yves Lamoureux <jylam@lnxscene.org>
     
    2828
    2929/* M_PI / cos / sin */
    30 #include <math.h> 
     30#include <math.h>
    3131
    3232
     
    3535int main(int argc, char *argv[])
    3636{
    37    
     37
    3838    /* libcaca/libcaca contexts */
    39     caca_canvas_t *cv; caca_display_t *dp;
     39    caca_canvas_t *cv;
     40    caca_display_t *dp;
    4041    caca_canvas_t *tex;
    41    
     42
    4243    /* cached canvas size */
    4344    int ww, wh, tw, th;
    44    
     45
    4546    /* logic */
    46     int quit  = 0;
     47    int quit = 0;
    4748    int update = 1;
    4849    int px, py;
    4950    float angle = 0;
    50    
    51    
     51
     52
    5253    float square[6][2] = {
    5354        {-SQUARE_SIZE, -SQUARE_SIZE},
    54         { SQUARE_SIZE, -SQUARE_SIZE},
    55         { SQUARE_SIZE, SQUARE_SIZE},
    56         {-SQUARE_SIZE,  SQUARE_SIZE},
     55        {SQUARE_SIZE, -SQUARE_SIZE},
     56        {SQUARE_SIZE, SQUARE_SIZE},
     57        {-SQUARE_SIZE, SQUARE_SIZE},
    5758    };
    5859    float uv1[6] = {
    59         0, 0, 
     60        0, 0,
    6061        1, 0,
    6162        1, 1
    6263    };
    6364    float uv2[6] = {
    64         0, 0, 
     65        0, 0,
    6566        1, 1,
    6667        0, 1
    6768    };
    68    
    69    
     69
     70
    7071    float rotated[4][2];
    7172    int coords1[6], coords2[6];
    72    
     73
    7374    /* Create displayed canvas */
    7475    cv = caca_create_canvas(0, 0);
    75     if(!cv)
     76    if (!cv)
    7677    {
    7778        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
    7879        return 1;
    7980    }
    80    
     81
    8182    /* Create texture holding canvas */
    8283    tex = caca_create_canvas(16, 16);
    83     if(!tex)
     84    if (!tex)
    8485    {
    8586        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
    8687        return 1;
    8788    }
    88    
     89
    8990    /* Open window */
    9091    dp = caca_create_display(cv);
    91     if(!dp)
     92    if (!dp)
    9293    {
    9394        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
    9495        return 1;
    9596    }
    96    
    97    
    98    
     97
     98
     99
    99100    /* Set the window title */
    100101    caca_set_display_title(dp, "trifiller");
    101    
     102
    102103    /* Frame duration */
    103104    caca_set_display_time(dp, 10000);
    104    
     105
    105106    /* Get displayed canvas size */
    106107    ww = caca_get_canvas_width(cv);
    107108    wh = caca_get_canvas_height(cv);
    108    
     109
    109110    /* Texture size */
    110111    tw = caca_get_canvas_width(tex);
    111112    th = caca_get_canvas_height(tex);
    112    
     113
    113114    /* Load texture if any */
    114     if(argc == 2)
     115    if (argc == 2)
    115116    {
    116117        struct image *im = load_image(argv[1]);
    117         if(!im)
    118         {
    119             fprintf(stderr, "%s: unable to load image '%s'\n", argv[0], argv[1]);
     118        if (!im)
     119        {
     120            fprintf(stderr, "%s: unable to load image '%s'\n", argv[0],
     121                    argv[1]);
    120122            return 1;
    121123        }
    122        
     124
    123125        caca_set_dither_algorithm(im->dither,
    124126                                  caca_get_dither_algorithm_list(NULL)[4]);
    125         caca_dither_bitmap(tex,
    126                            0, 0,
    127                            tw, th, 
    128                            im->dither, im->pixels);
     127        caca_dither_bitmap(tex, 0, 0, tw, th, im->dither, im->pixels);
    129128        unload_image(im);
    130     } 
     129    }
    131130    /* or generate one */
    132     else 
    133     {
    134        
     131    else
     132    {
     133
    135134        int i;
    136         for(i = 0; i < 16; i ++)
    137         {
    138             caca_set_color_ansi(tex, (i+1)%0xF, i%0xF);
     135        for (i = 0; i < 16; i++)
     136        {
     137            caca_set_color_ansi(tex, (i + 1) % 0xF, i % 0xF);
    139138            caca_put_str(tex, 0, i, "0123456789ABCDEF");
    140139        }
    141140    }
    142    
     141
    143142
    144143    px = 0;
    145144    py = 0;
    146    
    147     while(!quit)
     145
     146    while (!quit)
    148147    {
    149148        caca_event_t ev;
    150149        unsigned int const event_mask = CACA_EVENT_KEY_PRESS
    151         | CACA_EVENT_RESIZE
    152         | CACA_EVENT_QUIT;
     150            | CACA_EVENT_RESIZE | CACA_EVENT_QUIT;
    153151        int event;
    154        
    155         if(update)
     152
     153        if (update)
    156154            event = caca_get_event(dp, event_mask, &ev, 0);
    157155        else
    158156            event = caca_get_event(dp, event_mask, &ev, -1);
    159        
    160         while(event)
    161         {
    162             if(caca_get_event_type(&ev) & CACA_EVENT_KEY_PRESS)
    163                 switch(caca_get_event_key_ch(&ev))
    164             {
     157
     158        while (event)
     159        {
     160            if (caca_get_event_type(&ev) & CACA_EVENT_KEY_PRESS)
     161                switch (caca_get_event_key_ch(&ev))
     162                {
    165163                case 'q':
    166164                case 'Q':
     
    181179                    break;
    182180                case 'a':
    183                     angle+=1.0f;
     181                    angle += 1.0f;
    184182                    break;
    185183                case 's':
    186                     angle-=1.0f;
    187                     break;                   
    188             }
    189             else if(caca_get_event_type(&ev) == CACA_EVENT_RESIZE)
     184                    angle -= 1.0f;
     185                    break;
     186                }
     187            else if (caca_get_event_type(&ev) == CACA_EVENT_RESIZE)
    190188            {
    191189                caca_refresh_display(dp);
     
    193191                wh = caca_get_event_resize_height(&ev);
    194192                update = 1;
    195             } 
    196             else if(caca_get_event_type(&ev) & CACA_EVENT_QUIT)
     193            }
     194            else if (caca_get_event_type(&ev) & CACA_EVENT_QUIT)
    197195                quit = 1;
    198            
     196
    199197            event = caca_get_event(dp, CACA_EVENT_KEY_PRESS, &ev, 0);
    200198        }
    201        
    202        
    203        
     199
     200
     201
    204202        /* 2D Rotation around screen center */
    205203        int p;
    206         for(p=0; p<4; p++)
    207         {
    208             rotated[p][0] = square[p][0] * cos(angle*M_PI/180.0f) - square[p][1] * sin(angle*M_PI/180.0f);
    209             rotated[p][1] = square[p][0] * sin(angle*M_PI/180.0f) + square[p][1] * cos(angle*M_PI/180.0f);
    210            
    211             rotated[p][0] += ww/2 + px;
    212             rotated[p][1] += wh/2 + py;
    213         }
    214        
    215         angle+=1.0f;
    216        
    217        
     204        for (p = 0; p < 4; p++)
     205        {
     206            rotated[p][0] =
     207                square[p][0] * cos(angle * M_PI / 180.0f) -
     208                square[p][1] * sin(angle * M_PI / 180.0f);
     209            rotated[p][1] =
     210                square[p][0] * sin(angle * M_PI / 180.0f) +
     211                square[p][1] * cos(angle * M_PI / 180.0f);
     212
     213            rotated[p][0] += ww / 2 + px;
     214            rotated[p][1] += wh / 2 + py;
     215        }
     216
     217        angle += 1.0f;
     218
     219
    218220        /* Reaarange coordinates to fit libcaca's format */
    219         coords1[0] = rotated[0][0]; coords1[1] = rotated[0][1];
    220         coords1[2] = rotated[1][0]; coords1[3] = rotated[1][1];
    221         coords1[4] = rotated[2][0]; coords1[5] = rotated[2][1];
    222        
    223         coords2[0] = rotated[0][0]; coords2[1] = rotated[0][1];
    224         coords2[2] = rotated[2][0]; coords2[3] = rotated[2][1];
    225         coords2[4] = rotated[3][0]; coords2[5] = rotated[3][1];
    226        
     221        coords1[0] = rotated[0][0];
     222        coords1[1] = rotated[0][1];
     223        coords1[2] = rotated[1][0];
     224        coords1[3] = rotated[1][1];
     225        coords1[4] = rotated[2][0];
     226        coords1[5] = rotated[2][1];
     227
     228        coords2[0] = rotated[0][0];
     229        coords2[1] = rotated[0][1];
     230        coords2[2] = rotated[2][0];
     231        coords2[3] = rotated[2][1];
     232        coords2[4] = rotated[3][0];
     233        coords2[5] = rotated[3][1];
     234
    227235        /* Display two triangles */
    228         caca_fill_triangle_textured(cv,      /* canvas */
    229                                     coords1, /* triangle coordinates */
    230                                     tex,     /* texture canvas */
    231                                     uv1);    /* texture coordinates */
    232         caca_fill_triangle_textured(cv,
    233                                     coords2,
    234                                     tex,
    235                                     uv2);
    236        
     236        caca_fill_triangle_textured(cv, /* canvas */
     237                                    coords1,    /* triangle coordinates */
     238                                    tex,        /* texture canvas */
     239                                    uv1);       /* texture coordinates */
     240        caca_fill_triangle_textured(cv, coords2, tex, uv2);
     241
    237242        /* Refresh display and clear for next frame */
    238243        caca_refresh_display(dp);
    239244        caca_clear_canvas(cv);
    240        
    241     }
    242    
     245
     246    }
     247
    243248    caca_free_display(dp);
    244249    caca_free_canvas(cv);
    245250    caca_free_canvas(tex);
    246    
     251
    247252    return 0;
    248253}
Note: See TracChangeset for help on using the changeset viewer.