nuclear@1: #ifndef M3DIMPL_H_ nuclear@1: #define M3DIMPL_H_ nuclear@1: nuclear@1: #include "min3d.h" nuclear@1: nuclear@1: #define MSTACK_SIZE 16 nuclear@1: nuclear@1: struct min3d_mstack { nuclear@1: float m[MSTACK_SIZE][16]; nuclear@1: int top; nuclear@1: }; nuclear@1: nuclear@2: struct min3d_vertex { nuclear@2: float pos[4]; nuclear@2: float color[4]; nuclear@2: float normal[4]; nuclear@2: float tex[2]; nuclear@2: }; nuclear@2: nuclear@1: struct min3d_context { nuclear@1: struct m3d_image *cbuf; nuclear@1: uint16_t *zbuf; nuclear@1: nuclear@1: unsigned long state; nuclear@1: nuclear@1: int mmode; /* matrix mode */ nuclear@1: struct min3d_mstack mstack[2]; nuclear@5: nuclear@5: const float *vert_array; nuclear@5: const float *norm_array; nuclear@5: const float *col_array; nuclear@5: const float *tc_array; nuclear@5: nuclear@5: /* immediate mode state */ nuclear@5: float cur_color[4]; nuclear@5: float cur_normal[3]; nuclear@5: float cur_texcoord[2]; nuclear@3: }; nuclear@3: nuclear@3: extern struct min3d_context *m3dctx; nuclear@3: nuclear@3: void draw_point(struct min3d_vertex *v); nuclear@3: void draw_line(struct min3d_vertex *v); nuclear@3: void draw_poly(struct min3d_vertex *v, int numv); nuclear@1: nuclear@1: #endif /* M3DIMPL_H_ */