Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_cache.c
| Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | static struct DRWShapeCache { | ||||
| GPUBatch *drw_procedural_tris; | GPUBatch *drw_procedural_tris; | ||||
| GPUBatch *drw_cursor; | GPUBatch *drw_cursor; | ||||
| GPUBatch *drw_cursor_only_circle; | GPUBatch *drw_cursor_only_circle; | ||||
| GPUBatch *drw_fullscreen_quad; | GPUBatch *drw_fullscreen_quad; | ||||
| GPUBatch *drw_quad; | GPUBatch *drw_quad; | ||||
| GPUBatch *drw_quad_wires; | GPUBatch *drw_quad_wires; | ||||
| GPUBatch *drw_grid; | GPUBatch *drw_grid; | ||||
| GPUBatch *drw_sphere; | GPUBatch *drw_sphere; | ||||
| GPUBatch *drw_sphere_nor; | |||||
jbakker: remove this on it is not used anymore | |||||
| GPUBatch *drw_plain_axes; | GPUBatch *drw_plain_axes; | ||||
| GPUBatch *drw_single_arrow; | GPUBatch *drw_single_arrow; | ||||
| GPUBatch *drw_cube; | GPUBatch *drw_cube; | ||||
| GPUBatch *drw_circle; | GPUBatch *drw_circle; | ||||
| GPUBatch *drw_normal_arrow; | GPUBatch *drw_normal_arrow; | ||||
| GPUBatch *drw_empty_cube; | GPUBatch *drw_empty_cube; | ||||
| GPUBatch *drw_empty_sphere; | GPUBatch *drw_empty_sphere; | ||||
| GPUBatch *drw_empty_cylinder; | GPUBatch *drw_empty_cylinder; | ||||
| ▲ Show 20 Lines • Show All 379 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| float x = sinf(lat) * cosf(lon); | float x = sinf(lat) * cosf(lon); | ||||
| float y = cosf(lat); | float y = cosf(lat); | ||||
| float z = sinf(lat) * sinf(lon); | float z = sinf(lat) * sinf(lon); | ||||
| GPU_vertbuf_vert_set(vbo, *v_ofs, &(Vert){{x, y, z}, VCLASS_EMPTY_SCALED}); | GPU_vertbuf_vert_set(vbo, *v_ofs, &(Vert){{x, y, z}, VCLASS_EMPTY_SCALED}); | ||||
| (*v_ofs)++; | (*v_ofs)++; | ||||
| } | } | ||||
| GPUBatch *DRW_cache_sphere_get(void) | GPUBatch *DRW_cache_sphere_wire_get(void) | ||||
| { | { | ||||
| if (!SHC.drw_sphere) { | if (!SHC.drw_sphere) { | ||||
| const int lat_res = 32; | const int lat_res = 32; | ||||
| const int lon_res = 24; | const int lon_res = 24; | ||||
| GPUVertFormat format = extra_vert_format(); | GPUVertFormat format = extra_vert_format(); | ||||
| GPUVertBuf *vbo = GPU_vertbuf_create_with_format(&format); | GPUVertBuf *vbo = GPU_vertbuf_create_with_format(&format); | ||||
| int v_len = (lat_res - 1) * lon_res * 6; | int v_len = (lat_res - 1) * lon_res * 6; | ||||
| Show All 21 Lines | for (int i = 0; i < lon_res; i++, lon += lon_inc) { | ||||
| } | } | ||||
| } | } | ||||
| SHC.drw_sphere = GPU_batch_create_ex(GPU_PRIM_TRIS, vbo, NULL, GPU_BATCH_OWNS_VBO); | SHC.drw_sphere = GPU_batch_create_ex(GPU_PRIM_TRIS, vbo, NULL, GPU_BATCH_OWNS_VBO); | ||||
| } | } | ||||
| return SHC.drw_sphere; | return SHC.drw_sphere; | ||||
| } | } | ||||
| GPUBatch *DRW_cache_sphere_get(void) | |||||
| { | |||||
| if (!SHC.drw_sphere_nor) { | |||||
| SHC.drw_sphere_nor = gpu_batch_sphere(32, 24); | |||||
| } | |||||
| return SHC.drw_sphere_nor; | |||||
| } | |||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /** \name Common | /** \name Common | ||||
| * \{ */ | * \{ */ | ||||
| static void circle_verts( | static void circle_verts( | ||||
| GPUVertBuf *vbo, int *vert_idx, int segments, float radius, float z, int flag) | GPUVertBuf *vbo, int *vert_idx, int segments, float radius, float z, int flag) | ||||
| ▲ Show 20 Lines • Show All 2,932 Lines • Show Last 20 Lines | |||||
remove this on it is not used anymore