render_slices_struct.h
author Tero Marttila <terom@fixme.fi>
Fri, 29 Aug 2008 23:31:17 +0300
changeset 48 1c67f512779b
parent 19 d18606bb6f20
permissions -rw-r--r--
fix doc tpyos, rename some enums, fix printf format len for non-zero terminated strings (hg status), pass args to memcache_cmd_format_header via memcache_req_*, handle zero-length STORE requests, memcache_req is_buf_ours + free, other function name typos (keymemcache_req_key), fix req state behaviour re *_DATA_* for STORE requests and FETCH/END, better memcache_server connpool events/management, modular memcache_test with a working benchmark. This is a long commit message.

#include "render_struct.h"
#include "render_png_struct.h"
#include "render_slices.h"

struct render_slices {
    // do I have to free it?
    int owned_by_me;

    // the induvidual slices
    struct render_slice {
        // the public info
        struct render_slice_info info;

        // the render info
        struct render render_info;
        
        // our offset into rowbuf
        size_t row_offset;

        // pointer back to parent
        struct render_slices *self;
    } slices[RENDER_SLICES_MAX];
    
    // how many slices are in use
    size_t num_slices;
    
    // how many slices have reported the current row as done
    size_t segments_done;

    // the a pointer to the raw memory buffer
    unsigned char *rowbuf;

    // the two rows of memory area used to a) render b) build the png
    unsigned char *rows[2];
    
    // which of the two rows is is used for png-building (default = 0, 1)
    int render_row, done_row;
    
    // the png struct
    struct render_png png_info;
};

int render_slices_init (struct render_slices *ctx, struct render *render);
void render_slices_deinit (struct render_slices *ctx);