Previous 199869 Revisions Next

r28720 Wednesday 19th March, 2014 at 13:31:50 UTC by Oliver Stöneberg
renamed old poly_manager to legacy_poly_manager
[src/emu/video]poly.c poly.h vooddefs.h
[src/mame/drivers]atarisy4.c namcos23.c
[src/mame/includes]galastrm.h model2.h model3.h
[src/mame/video]gaelco3d.c gticlub.c k001005.h midzeus.c midzeus2.c model2.c

trunk/src/emu/video/vooddefs.h
r28719r28720
17151715   tmu_shared_state    tmushare;               /* TMU shared state */
17161716   banshee_info        banshee;                /* Banshee state */
17171717
1718   poly_manager *      poly;                   /* polygon manager */
1718   legacy_poly_manager * poly;                 /* polygon manager */
17191719   stats_block *       thread_stats;           /* per-thread statistics */
17201720
17211721   voodoo_stats        stats;                  /* internal statistics */
trunk/src/emu/video/poly.c
r28719r28720
123123/* polygon_info describes a single polygon, which includes the poly_params */
124124struct polygon_info
125125{
126   poly_manager *      poly;                   /* pointer back to the poly manager */
126   legacy_poly_manager *      poly;                   /* pointer back to the poly manager */
127127   void *              dest;                   /* pointer to the destination we are rendering to */
128128   void *              extra;                  /* extra data pointer */
129129   UINT8               numparams;              /* number of parameters for this polygon  */
r28719r28720
136136
137137
138138/* full poly manager description */
139struct poly_manager
139struct legacy_poly_manager
140140{
141141   /* queue management */
142142   osd_work_queue *    queue;                  /* work queue */
r28719r28720
194194
195195static void **allocate_array(running_machine &machine, size_t *itemsize, UINT32 itemcount);
196196static void *poly_item_callback(void *param, int threadid);
197static void poly_state_presave(poly_manager *poly);
197static void poly_state_presave(legacy_poly_manager *poly);
198198
199199
200200
r28719r28720
274274    object, blocking if we run out
275275-------------------------------------------------*/
276276
277INLINE polygon_info *allocate_polygon(poly_manager *poly, int miny, int maxy)
277INLINE polygon_info *allocate_polygon(legacy_poly_manager *poly, int miny, int maxy)
278278{
279279   /* wait for a work item if we have to */
280280   if (poly->polygon_next + 1 > poly->polygon_count)
r28719r28720
308308    manager
309309-------------------------------------------------*/
310310
311poly_manager *poly_alloc(running_machine &machine, int max_polys, size_t extra_data_size, UINT8 flags)
311legacy_poly_manager *poly_alloc(running_machine &machine, int max_polys, size_t extra_data_size, UINT8 flags)
312312{
313   poly_manager *poly;
313   legacy_poly_manager *poly;
314314
315315   /* allocate the manager itself */
316   poly = auto_alloc_clear(machine, poly_manager);
316   poly = auto_alloc_clear(machine, legacy_poly_manager);
317317   poly->flags = flags;
318318
319319   /* allocate polygons */
r28719r28720
348348    poly_free - free a polygon manager
349349-------------------------------------------------*/
350350
351void poly_free(poly_manager *poly)
351void poly_free(legacy_poly_manager *poly)
352352{
353353#if KEEP_STATISTICS
354354{
r28719r28720
387387    to complete
388388-------------------------------------------------*/
389389
390void poly_wait(poly_manager *poly, const char *debug_reason)
390void poly_wait(legacy_poly_manager *poly, const char *debug_reason)
391391{
392392   osd_ticks_t time;
393393
r28719r28720
431431    extra data for the next polygon
432432-------------------------------------------------*/
433433
434void *poly_get_extra_data(poly_manager *poly)
434void *poly_get_extra_data(legacy_poly_manager *poly)
435435{
436436   /* wait for a work item if we have to */
437437   if (poly->extra_next + 1 > poly->extra_count)
r28719r28720
460460    triangle given 3 vertexes
461461-------------------------------------------------*/
462462
463UINT32 poly_render_triangle(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3)
463UINT32 poly_render_triangle(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3)
464464{
465465   float dxdy_v1v2, dxdy_v1v3, dxdy_v2v3;
466466   const poly_vertex *tv;
r28719r28720
643643    triangles in a fan
644644-------------------------------------------------*/
645645
646UINT32 poly_render_triangle_fan(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
646UINT32 poly_render_triangle_fan(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
647647{
648648   UINT32 pixels = 0;
649649   int vertnum;
r28719r28720
660660    render of an object, given specific extents
661661-------------------------------------------------*/
662662
663UINT32 poly_render_triangle_custom(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int startscanline, int numscanlines, const poly_extent *extents)
663UINT32 poly_render_triangle_custom(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int startscanline, int numscanlines, const poly_extent *extents)
664664{
665665   INT32 curscan, scaninc;
666666   polygon_info *polygon;
r28719r28720
756756    given 4 vertexes
757757-------------------------------------------------*/
758758
759UINT32 poly_render_quad(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3, const poly_vertex *v4)
759UINT32 poly_render_quad(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3, const poly_vertex *v4)
760760{
761761   poly_edge fedgelist[3], bedgelist[3];
762762   const poly_edge *ledge, *redge;
r28719r28720
976976    quads in a fan
977977-------------------------------------------------*/
978978
979UINT32 poly_render_quad_fan(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
979UINT32 poly_render_quad_fan(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
980980{
981981   UINT32 pixels = 0;
982982   int vertnum;
r28719r28720
998998    to 32 vertices
999999-------------------------------------------------*/
10001000
1001UINT32 poly_render_polygon(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
1001UINT32 poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v)
10021002{
10031003   poly_edge fedgelist[MAX_POLYGON_VERTS - 1], bedgelist[MAX_POLYGON_VERTS - 1];
10041004   const poly_edge *ledge, *redge;
r28719r28720
13511351    ensure everything is synced before saving
13521352-------------------------------------------------*/
13531353
1354static void poly_state_presave(poly_manager *poly)
1354static void poly_state_presave(legacy_poly_manager *poly)
13551355{
13561356   poly_wait(poly, "pre-save");
13571357}
trunk/src/emu/video/poly.h
r28719r28720
5555***************************************************************************/
5656
5757/* opaque reference to the poly manager */
58struct poly_manager;
58struct legacy_poly_manager;
5959
6060
6161/* input vertex data */
r28719r28720
9797/* ----- initialization/teardown ----- */
9898
9999/* allocate a new poly manager that can render triangles */
100poly_manager *poly_alloc(running_machine &machine, int max_polys, size_t extra_data_size, UINT8 flags);
100legacy_poly_manager *poly_alloc(running_machine &machine, int max_polys, size_t extra_data_size, UINT8 flags);
101101
102102/* free a poly manager */
103void poly_free(poly_manager *poly);
103void poly_free(legacy_poly_manager *poly);
104104
105105
106106
107107/* ----- common functions ----- */
108108
109109/* wait until all polygons in the queue have been rendered */
110void poly_wait(poly_manager *poly, const char *debug_reason);
110void poly_wait(legacy_poly_manager *poly, const char *debug_reason);
111111
112112/* get a pointer to the extra data for the next polygon */
113void *poly_get_extra_data(poly_manager *poly);
113void *poly_get_extra_data(legacy_poly_manager *poly);
114114
115115
116116
117117/* ----- core triangle rendering ----- */
118118
119119/* render a single triangle given 3 vertexes */
120UINT32 poly_render_triangle(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3);
120UINT32 poly_render_triangle(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3);
121121
122122/* render a set of triangles in a fan */
123UINT32 poly_render_triangle_fan(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
123UINT32 poly_render_triangle_fan(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
124124
125125/* perform a custom render of an object, given specific extents */
126UINT32 poly_render_triangle_custom(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int startscanline, int numscanlines, const poly_extent *extents);
126UINT32 poly_render_triangle_custom(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int startscanline, int numscanlines, const poly_extent *extents);
127127
128128
129129
130130/* ----- core quad rendering ----- */
131131
132132/* render a single quad given 4 vertexes */
133UINT32 poly_render_quad(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3, const poly_vertex *v4);
133UINT32 poly_render_quad(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, const poly_vertex *v1, const poly_vertex *v2, const poly_vertex *v3, const poly_vertex *v4);
134134
135135/* render a set of quads in a fan */
136UINT32 poly_render_quad_fan(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
136UINT32 poly_render_quad_fan(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
137137
138138
139139
140140/* ----- core polygon rendering ----- */
141141
142142/* render a single polygon up to 32 vertices */
143UINT32 poly_render_polygon(poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
143UINT32 poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectangle &cliprect, poly_draw_scanline_func callback, int paramcount, int numverts, const poly_vertex *v);
144144
145145
146146
trunk/src/mame/drivers/namcos23.c
r28719r28720
13311331
13321332struct render_t
13331333{
1334   poly_manager *polymgr;
1334   legacy_poly_manager *polymgr;
13351335   int cur;
13361336   int poly_count;
13371337   int count[2];
trunk/src/mame/drivers/atarisy4.c
r28719r28720
4040   required_shared_ptr<UINT16> m_m68k_ram;
4141   UINT16 *m_shared_ram[2];
4242   required_shared_ptr<UINT16> m_screen_ram;
43   poly_manager *m_poly;
43   legacy_poly_manager *m_poly;
4444   DECLARE_WRITE16_MEMBER(gpu_w);
4545   DECLARE_READ16_MEMBER(gpu_r);
4646   DECLARE_READ16_MEMBER(m68k_shared_0_r);
trunk/src/mame/includes/model2.h
r28719r28720
9595   int m_jnet_time_out;
9696   UINT32 m_geo_read_start_address;
9797   UINT32 m_geo_write_start_address;
98   poly_manager *m_poly;
98   legacy_poly_manager *m_poly;
9999   raster_state *m_raster;
100100   geo_state *m_geo;
101101   bitmap_rgb32 m_sys24_bitmap;
trunk/src/mame/includes/model3.h
r28719r28720
101101   VECTOR3 m_parallel_light;
102102   float m_parallel_light_intensity;
103103   float m_ambient_light_intensity;
104   poly_manager *m_poly;
104   legacy_poly_manager *m_poly;
105105   int m_list_depth;
106106   int m_tick;
107107   int m_debug_layer_disable;
trunk/src/mame/includes/galastrm.h
r28719r28720
5555   struct tempsprite *m_sprite_ptr_pre;
5656   bitmap_ind16 m_tmpbitmaps;
5757   bitmap_ind16 m_polybitmap;
58   poly_manager *m_poly;
58   legacy_poly_manager *m_poly;
5959   int m_rsxb;
6060   int m_rsyb;
6161   int m_rsxoffs;
trunk/src/mame/video/midzeus2.c
r28719r28720
5757 *
5858 *************************************/
5959
60static poly_manager *poly;
60static legacy_poly_manager *poly;
6161static UINT8 log_fifo;
6262
6363static UINT32 zeus_fifo[20];
trunk/src/mame/video/midzeus.c
r28719r28720
5757 *
5858 *************************************/
5959
60static poly_manager *poly;
60static legacy_poly_manager *poly;
6161static UINT8 log_fifo;
6262
6363static UINT32 zeus_fifo[20];
trunk/src/mame/video/gticlub.c
r28719r28720
213213
214214static int K001005_bitmap_page = 0;
215215
216static poly_manager *poly;
216static legacy_poly_manager *poly;
217217static poly_vertex prev_v[4];
218218
219219static UINT32 fog_r, fog_g, fog_b;
trunk/src/mame/video/k001005.h
r28719r28720
7777
7878   int m_bitmap_page;
7979
80   poly_manager *m_poly;
80   legacy_poly_manager *m_poly;
8181   poly_vertex m_prev_v[4];
8282   int m_prev_poly_type;
8383
trunk/src/mame/video/model2.c
r28719r28720
924924
925925static void model2_3d_render( model2_state *state, bitmap_rgb32 &bitmap, triangle *tri, const rectangle &cliprect )
926926{
927   poly_manager *poly = state->m_poly;
927   legacy_poly_manager *poly = state->m_poly;
928928   poly_extra_data *extra = (poly_extra_data *)poly_get_extra_data(poly);
929929   UINT8       renderer;
930930
trunk/src/mame/video/gaelco3d.c
r28719r28720
1212#include "includes/gaelco3d.h"
1313#include "cpu/tms32031/tms32031.h"
1414#include "video/rgbutil.h"
15#include "video/poly.h"
1615
1716
1817#define MAX_POLYGONS        4096

Previous 199869 Revisions Next


© 1997-2024 The MAME Team