#ifndef HARNESS_BRENDER_RENDERER_DISPATCH
 
#define HARNESS_BRENDER_RENDERER_DISPATCH
 
 
 
#include "brender/br_types.h"
 
 
 
#define MAX_STATE_STACK 32
 
 
 
struct state_matrix {
 
    br_matrix34 model_to_view;
 
    br_matrix4 view_to_screen;
 
    br_matrix34 view_to_environment;
 
 
 
    br_scalar hither_z;
 
    br_scalar yon_z;
 
};
 
 
 
typedef struct state_all {
 
    struct br_renderer* renderer;
 
    struct state_matrix matrix;
 
 
 
} state_all;
 
 
 
// Same structure as br_renderer_state
 
typedef struct harness_br_renderer {
 
    struct br_renderer_dispatch* dispatch;
 
    char* identifier;
 
    struct br_device* device;
 
 
 
    void* object_list;
 
    struct state_all state;
 
    struct state_all* default_state;
 
    struct br_renderer_state_stored* last_restored;
 
    struct br_primitive_library* plib;
 
 
 
    struct state_all state_stack[MAX_STATE_STACK];
 
    br_uint_32 stack_top;
 
    br_renderer_facility* renderer_facility;
 
 
 
} harness_br_renderer;
 
 
 
harness_br_renderer* NewHarnessBrRenderer(void);
 
 
 
#endif