X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=model_shared.h;h=8b73377e53f1c6ce1fae104337d6bf13858e6b99;hb=1b6062f6c60a2525501e1133052d87307ee02e36;hp=c16742bb38f1ad3e15fa2343ddb70b7cc60c975a;hpb=59a48380a9f57b995d90772d5b6ecb896892bc26;p=xonotic%2Fdarkplaces.git diff --git a/model_shared.h b/model_shared.h index c16742bb..8b73377e 100644 --- a/model_shared.h +++ b/model_shared.h @@ -101,27 +101,20 @@ typedef struct blendweights_s } blendweights_t; -typedef struct r_vertexposition_s -{ - // 12 bytes - float vertex3f[3]; -} -r_vertexposition_t; - typedef struct r_vertexgeneric_s { - // 24 bytes + // 36 bytes float vertex3f[3]; - unsigned char color4ub[4]; + float color4f[4]; float texcoord2f[2]; } r_vertexgeneric_t; typedef struct r_vertexmesh_s { - // 68 bytes + // 80 bytes float vertex3f[3]; - unsigned char color4ub[4]; + float color4f[4]; float texcoordtexture2f[2]; float texcoordlightmap2f[2]; float svector3f[3]; @@ -190,9 +183,8 @@ typedef struct surfmesh_s qboolean isanimated; // vertex and index buffers for rendering - r_vertexposition_t *vertexposition; r_vertexmesh_t *vertexmesh; - r_meshbuffer_t *vertexpositionbuffer; + r_meshbuffer_t *vertex3fbuffer; r_meshbuffer_t *vertexmeshbuffer; } surfmesh_t; @@ -244,9 +236,8 @@ typedef struct shadowmesh_s size_t vbooffset_texcoord2f; // vertex/index buffers for rendering // (created by Mod_ShadowMesh_Finish if possible) - r_vertexposition_t *vertexposition; r_vertexmesh_t *vertexmesh; // usually NULL - r_meshbuffer_t *vertexpositionbuffer; + r_meshbuffer_t *vertex3fbuffer; r_meshbuffer_t *vertexmeshbuffer; // usually NULL } shadowmesh_t; @@ -454,6 +445,7 @@ typedef struct q3shaderinfo_s // dp-specific additions: // shadow control + qboolean dpnortlight; qboolean dpshadow; qboolean dpnoshadow; @@ -483,6 +475,9 @@ typedef struct q3shaderinfo_s // gloss float specularscalemod; float specularpowermod; + + // rtlightning ambient addition + float rtlightambient; #define Q3SHADERINFO_COMPARE_END specularpowermod } q3shaderinfo_t; @@ -621,6 +616,9 @@ typedef struct texture_s // gloss float specularscalemod; float specularpowermod; + + // diffuse and ambient + float rtlightambient; } texture_t; @@ -1031,6 +1029,8 @@ typedef struct model_s void (*TracePoint)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, int hitsupercontentsmask); // find the supercontents value at a point in this model int (*PointSuperContents)(struct model_s *model, int frame, const vec3_t point); + // trace a line against geometry in this model and report correct texture (used by r_shadow_bouncegrid) + void (*TraceLineAgainstSurfaces)(struct model_s *model, const struct frameblend_s *frameblend, const struct skeleton_s *skeleton, struct trace_s *trace, const vec3_t start, const vec3_t end, int hitsupercontentsmask); // fields belonging to some types of model model_sprite_t sprite; model_brush_t brush; @@ -1105,13 +1105,6 @@ qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qbool extern cvar_t r_mipskins; extern cvar_t r_mipnormalmaps; -typedef struct skeleton_s -{ - const dp_model_t *model; - matrix4x4_t *relativetransforms; -} -skeleton_t; - typedef struct skinfileitem_s { struct skinfileitem_s *next;