Ignore:
Timestamp:
Nov 21, 2015, 2:25:14 PM (9 years ago)
Author:
alain
Message:

Update graphical applications.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/applications/raycast/raycast.c

    r712 r724  
    99///////////////////////
    1010
    11 unsigned char*           buf[2];             // one image per buffer
    12 void *                   sts[2];             // for fbf_cma
    13 unsigned int             cur_buf;            // current buffer
     11unsigned char*           buf;                // one image buffer
     12void *                   sts;                // buffer status
    1413volatile unsigned int    slice_x;            // slice index (shared)
    1514volatile unsigned int    slice_count;        // slice count (shared)
     
    8483    sqt_lock_init( &slice_done_lock, w , h , p );
    8584
    86     // Allocate buffers
    87     buf[0] = malloc(FBUF_X_SIZE * FBUF_Y_SIZE);
    88     buf[1] = malloc(FBUF_X_SIZE * FBUF_Y_SIZE);
    89     sts[0] = malloc(64);
    90     sts[1] = malloc(64);
     85    // Allocate buffer and status for CMA
     86    buf = malloc(FBUF_X_SIZE * FBUF_Y_SIZE);
     87    sts = malloc(64);
    9188
    92     // Initialize frame buffer and start Chained buffer DMA
     89    // Get frame buffer ownership
    9390    giet_fbf_alloc();
    94     giet_fbf_cma_alloc();
    95     giet_fbf_cma_init_buf(buf[0], buf[1], sts[0], sts[1]);
    96     giet_fbf_cma_start(FBUF_X_SIZE * FBUF_Y_SIZE);
    97     cur_buf = 0;
     91   
     92    // Get a CMA channel for one single user buffer
     93    giet_fbf_cma_alloc( 1 );
     94   
     95    // Register the user buffer and status
     96    giet_fbf_cma_init_buf( 0 , buf , sts );
     97
     98    // Start Chained buffer DMA
     99    giet_fbf_cma_start();
    98100
    99101    // Load textures
     
    122124    }
    123125
    124 
    125 
    126126    // Game main loop : display one frame
    127127    // and get one player move per iteration
    128128    while ( game.exit == 0 )
    129129    {
    130         // initialise synchronisation variables
    131         // this actually allows the render threads to make useful work
     130        // check user buffer empty
     131        giet_fbf_cma_check( 0 );
     132
     133        // re-initialise synchronisation variables
     134        // to start parallel synthesis
    132135        slice_count = 0;
    133136        slice_x     = 0;
    134137
    135         // contribute to build current buffer
     138        // contribute to synthesis
    136139        unsigned int slice;
    137140        while ( dispRenderSlice( &slice ) );
     
    140143        while (slice_count < FBUF_X_SIZE)  giet_tty_printf(" ");
    141144
    142         // Flip buffer
    143         giet_fbf_cma_display(cur_buf);
    144         cur_buf = 1 - cur_buf;
     145        // display image
     146        giet_fbf_cma_display( 0 );
    145147
    146148        // get new player position [x,y,dir]
Note: See TracChangeset for help on using the changeset viewer.