- // LordHavoc: moved this here to clean up things that relied on prvm_prog_list too much
- // FIXME: make VM_CL_R_Polygon functions use Debug_Polygon functions?
- vmpolygons_t vmpolygons;
-
- // copies of some vars that were former read from sv
+ // polygonbegin, polygonvertex, polygonend state
+ // the polygon is buffered here until polygonend commits it to the relevant
+ // CL_Mesh entity, because important decisions depend on the vertex data
+ // provided (e.g. whether the polygon is transparent), we can't really do much
+ // with it until we have all of the data...
+
+ /// this tracks the last polygonbegin's choice of
+ /// CL_Mesh_CSQC or CL_Mesh_UI for this polygon
+ struct model_s *polygonbegin_model;
+ /// indicates if polygonbegin should be interpreted as 2d
+ /// (clearscene sets this to false, renderscene sets this to true, drawpic
+ /// also sets this to true)
+ /// note that in FTEQW polygonbegin with 2 args is handled very differently,
+ /// where the behavior is always 3D unless DRAWFLAG_2D is passed, but
+ /// DRAWFLAG_2D conflicts with our DRAWFLAG_SCREEN.
+ qbool polygonbegin_guess2d;
+ // the texture name and drawflags provided to polygonbegin
+ char polygonbegin_texname[MAX_QPATH];
+ int polygonbegin_drawflags;
+ // the vertex data
+ int polygonbegin_numvertices;
+ int polygonbegin_maxvertices;
+ float *polygonbegin_vertexdata;
+
+ /// copies of some vars that were former read from sv