diff options
Diffstat (limited to 'source/blender/draw/intern/draw_cache_extract.h')
-rw-r--r-- | source/blender/draw/intern/draw_cache_extract.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_cache_extract.h b/source/blender/draw/intern/draw_cache_extract.h index 5f77dac98be..a0679ba6442 100644 --- a/source/blender/draw/intern/draw_cache_extract.h +++ b/source/blender/draw/intern/draw_cache_extract.h @@ -55,6 +55,7 @@ typedef struct DRW_MeshCDMask { uint32_t sculpt_vcol : 8; uint32_t orco : 1; uint32_t tan_orco : 1; + uint32_t sculpt_overlays : 1; /** Edit uv layer is from the base edit mesh as * modifiers could remove it. (see T68857) */ uint32_t edit_uv : 1; @@ -103,6 +104,7 @@ typedef struct MeshBufferCache { GPUVertBuf *uv; GPUVertBuf *tan; GPUVertBuf *vcol; + GPUVertBuf *sculpt_data; GPUVertBuf *orco; /* Only for edit mode. */ GPUVertBuf *edit_data; /* extend */ @@ -140,6 +142,8 @@ typedef struct MeshBufferCache { GPUIndexBuf *edituv_points; GPUIndexBuf *edituv_fdots; } ibo; + /* Index buffer per material. These are subranges of `ibo.tris` */ + GPUIndexBuf **tris_per_mat; } MeshBufferCache; typedef enum DRWBatchFlag { @@ -170,6 +174,7 @@ typedef enum DRWBatchFlag { MBC_WIRE_LOOPS = (1 << 24), MBC_WIRE_LOOPS_UVS = (1 << 25), MBC_SKIN_ROOTS = (1 << 26), + MBC_SCULPT_OVERLAYS = (1 << 27), } DRWBatchFlag; #define MBC_EDITUV \ @@ -219,6 +224,7 @@ typedef struct MeshBatchCache { GPUBatch *wire_edges; /* Individual edges with face normals. */ GPUBatch *wire_loops; /* Loops around faces. no edges between selected faces */ GPUBatch *wire_loops_uvs; /* Same as wire_loops but only has uvs. */ + GPUBatch *sculpt_overlays; } batch; GPUBatch **surface_per_mat; |