]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - render.h
implemented a fallback case for r_glsl_skeletal 1 when dynamicvertex
[xonotic/darkplaces.git] / render.h
index f694bcfeefac24532f061afb3140a1dae1cee25f..4b353f7039de4403671763e9e5f4e7ad790431ac 100644 (file)
--- a/render.h
+++ b/render.h
@@ -246,6 +246,11 @@ typedef struct rsurfacestate_s
        // (in other words, the model has been animated in software)
        qboolean                    forcecurrenttextureupdate; // set for RSurf_ActiveCustomEntity to force R_GetCurrentTexture to recalculate the texture parameters (such as entity alpha)
        qboolean                    modelgeneratedvertex;
+       // skeletal animation can be done by entity (animcache) or per batch,
+       // batch may be non-skeletal even if entity is skeletal, indicating that
+       // the dynamicvertex code path had to apply skeletal manually for a case
+       // where gpu-skinning is not possible, for this reason batch has its own
+       // variables
        int                         entityskeletalnumtransforms; // how many transforms are used for this mesh
        float                      *entityskeletaltransform3x4; // use gpu-skinning shader on this mesh
        float                      *modelvertex3f;
@@ -338,6 +343,8 @@ typedef struct rsurfacestate_s
        unsigned short             *batchelement3s;
        const r_meshbuffer_t       *batchelement3s_indexbuffer;
        size_t                      batchelement3s_bufferoffset;
+       int                         batchskeletalnumtransforms;
+       float                      *batchskeletaltransform3x4;
        // rendering pass processing arrays in GL11 and GL13 paths
        float                      *passcolor4f;
        const r_meshbuffer_t       *passcolor4f_vertexbuffer;