X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_shared.h;h=d1d11e2355fdecfd21cf07625b2b046a0dde1bcc;hb=8a12613ca05c0ceb6420751690abf2563b31f333;hp=6e6605ff80114c80e758265d8f360e56d5ccefad;hpb=5552ddb99b125f0164e80905d354608bd0a8c1a8;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.h b/model_shared.h index 6e6605ff..d1d11e23 100644 --- a/model_shared.h +++ b/model_shared.h @@ -202,7 +202,6 @@ typedef struct model_brushq1_s int *surfacepvsframes; msurface_t *surfacepvsnext; surfmesh_t *entiremesh; - surfmesh_t *surfmeshes; int numsurfedges; int *surfedges; @@ -269,6 +268,7 @@ model_brushq2_t; */ #define Q3MTEXTURERENDERFLAGS_NODRAW 1 +#define Q3MTEXTURERENDERFLAGS_SKY 2 typedef struct q3mtexture_s { @@ -353,14 +353,22 @@ typedef struct q3mface_s struct q3mtexture_s *texture; struct q3meffect_s *effect; rtexture_t *lightmaptexture; + int collisions; // performs per triangle collisions on this surface + int collisionmarkframe; // don't collide twice in one trace int type; int firstvertex; - int numvertices; int firstelement; - int numelements; int patchsize[2]; + // used for processing int markframe; + // (world only) visframe == r_framecount means it is visible this frame + int visframe; + // bounding box for culling + float mins[3]; + float maxs[3]; + int num_vertices; + int num_triangles; float *data_vertex3f; float *data_texcoordtexture2f; float *data_texcoordlightmap2f; @@ -368,7 +376,6 @@ typedef struct q3mface_s float *data_tvector3f; float *data_normal3f; float *data_color4f; - int numtriangles; int *data_element3i; int *data_neighbor3i; } @@ -506,8 +513,6 @@ typedef struct model_s void(*DrawSky)(struct entity_render_s *ent); // draw the model using lightmap/dlight shading void(*Draw)(struct entity_render_s *ent); - // draw a fake shadow for the model - void(*DrawFakeShadow)(struct entity_render_s *ent); // draw a shadow volume for the model based on light source void(*DrawShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius); // draw the lighting on a model (through stencil) @@ -535,6 +540,8 @@ extern rtexture_t *mod_shared_detailtextures[NUM_DETAILTEXTURES]; // every texture must be in a pool... extern rtexturepool_t *mod_shared_texturepool; +extern rtexture_t *mod_shared_distorttexture[64]; + // model loading extern model_t *loadmodel; extern qbyte *mod_base; @@ -602,5 +609,7 @@ skinfile_t *Mod_LoadSkinFiles(void); void Mod_FreeSkinFiles(skinfile_t *skinfile); int Mod_CountSkinFiles(skinfile_t *skinfile); +int Mod_RemoveDegenerateTriangles(int numtriangles, const int *inelement3i, int *outelement3i, const float *vertex3f); + #endif // __MODEL__