|
Blender
V2.93
|
#include "MEM_guardedalloc.h"#include "BLI_math_base.h"#include "GPU_batch.h"#include "GPU_batch_presets.h"#include "GPU_matrix.h"#include "GPU_platform.h"#include "GPU_shader.h"#include "gpu_backend.hh"#include "gpu_context_private.hh"#include "gpu_index_buffer_private.hh"#include "gpu_shader_private.hh"#include "gpu_vertex_buffer_private.hh"#include "gpu_batch_private.hh"#include <cstring>Go to the source code of this file.
GPU geometry batch Contains VAOs + VBOs + Shader representing a drawable entity.
Definition in file gpu_batch.cc.
| GPUBatch* GPU_batch_calloc | ( | void | ) |
Definition at line 53 of file gpu_batch.cc.
References batch, blender::gpu::GPUBackend::batch_alloc(), blender::gpu::GPUBackend::get(), and GPUBatch.
Referenced by DRW_batch_request(), DRW_temp_batch_instance_request(), DRW_temp_batch_request(), and GPU_batch_create_ex().
| void GPU_batch_clear | ( | GPUBatch * | batch | ) |
Definition at line 105 of file gpu_batch.cc.
References batch, GPU_BATCH_INST_VBO_MAX_LEN, GPU_BATCH_INVALID, GPU_BATCH_OWNS_INDEX, GPU_BATCH_OWNS_INST_VBO, GPU_BATCH_OWNS_INST_VBO_ANY, GPU_BATCH_OWNS_VBO, GPU_BATCH_OWNS_VBO_ANY, GPU_BATCH_VBO_MAX_LEN, GPU_indexbuf_discard(), GPU_VERTBUF_DISCARD_SAFE, and v.
Referenced by DRW_temp_batch_instance_request(), DRW_temp_batch_request(), and GPU_batch_discard().
Definition at line 94 of file gpu_batch.cc.
References GPU_batch_init_ex(), GPU_BATCH_INVALID, GPU_BATCH_VBO_MAX_LEN, GPU_PRIM_POINTS, and v.
Referenced by DRW_instance_buffer_finish().
| GPUBatch* GPU_batch_create_ex | ( | GPUPrimType | prim_type, |
| GPUVertBuf * | verts, | ||
| GPUIndexBuf * | elem, | ||
| eGPUBatchFlag | owns_flag | ||
| ) |
Definition at line 60 of file gpu_batch.cc.
References batch, GPU_batch_calloc(), GPU_batch_init_ex(), GPUBatch, and verts.
Referenced by batch_screen_edges_get(), batch_sphere_wire(), blf_batch_draw_init(), draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_seq_fcurve_overlay(), DRW_cache_bone_arrows_get(), DRW_cache_bone_box_get(), DRW_cache_bone_box_wire_get(), DRW_cache_bone_dof_lines_get(), DRW_cache_bone_dof_sphere_get(), DRW_cache_bone_envelope_outline_get(), DRW_cache_bone_envelope_solid_get(), DRW_cache_bone_octahedral_get(), DRW_cache_bone_octahedral_wire_get(), DRW_cache_bone_point_get(), DRW_cache_bone_point_wire_outline_get(), DRW_cache_bone_stick_get(), DRW_cache_camera_distances_get(), DRW_cache_camera_frame_get(), DRW_cache_camera_tria_get(), DRW_cache_camera_tria_wire_get(), DRW_cache_camera_volume_get(), DRW_cache_camera_volume_wire_get(), DRW_cache_circle_get(), DRW_cache_cube_get(), DRW_cache_cursor_get(), DRW_cache_empty_capsule_body_get(), DRW_cache_empty_capsule_cap_get(), DRW_cache_empty_cone_get(), DRW_cache_empty_cube_get(), DRW_cache_empty_cylinder_get(), DRW_cache_empty_sphere_get(), DRW_cache_field_cone_limit_get(), DRW_cache_field_curve_get(), DRW_cache_field_force_get(), DRW_cache_field_sphere_limit_get(), DRW_cache_field_tube_limit_get(), DRW_cache_field_vortex_get(), DRW_cache_field_wind_get(), DRW_cache_fullscreen_quad_get(), DRW_cache_gpencil_face_wireframe_get(), DRW_cache_grid_get(), DRW_cache_groundline_get(), DRW_cache_light_area_disk_lines_get(), DRW_cache_light_area_square_lines_get(), DRW_cache_light_point_lines_get(), DRW_cache_light_spot_lines_get(), DRW_cache_light_spot_volume_get(), DRW_cache_light_sun_lines_get(), DRW_cache_lightprobe_cube_get(), DRW_cache_lightprobe_grid_get(), DRW_cache_lightprobe_planar_get(), DRW_cache_normal_arrow_get(), DRW_cache_particles_get_prim(), DRW_cache_plain_axes_get(), drw_cache_procedural_lines_get(), drw_cache_procedural_points_get(), drw_cache_procedural_triangles_get(), DRW_cache_quad_get(), DRW_cache_quad_wires_get(), DRW_cache_single_arrow_get(), DRW_cache_speaker_get(), DRW_cache_sphere_get(), DRW_gpencil_dummy_buffer_get(), DRW_metaball_batch_cache_get_triangles_with_normals(), DRW_metaball_batch_cache_get_wireframes_face(), drw_volume_selection_surface_cb(), drw_volume_wireframe_cb(), gpencil_sbuffer_stroke_ensure(), gpu_batch_preset_panel_drag_widget(), GPU_batch_preset_quad(), gpu_batch_sphere(), GPU_batch_tris_from_poly_2d_encoded(), GPU_batch_wire_from_poly_2d_encoded(), gpu_viewport_batch_create(), hair_batch_cache_ensure_procedural_indices(), immBeginBatch(), knifetool_draw(), lattice_batch_cache_create_overlay_batches(), nodelink_batch_init(), particle_batch_cache_ensure_procedural_indices(), stitch_draw_vbo(), ui_batch_roundbox_shadow_get(), ui_batch_roundbox_widget_get(), waveform_draw_one(), and wm_gizmo_geometryinfo_draw().
| void GPU_batch_discard | ( | GPUBatch * | batch | ) |
Definition at line 127 of file gpu_batch.cc.
References batch, and GPU_batch_clear().
Referenced by draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_seq_fcurve_overlay(), drw_debug_draw_spheres(), ED_draw_object_facemap(), GPU_batch_preset_panel_drag_widget(), gpu_batch_presets_exit(), gpu_viewport_batch_free(), gpu_viewport_batch_get(), knifetool_draw(), pygpu_batch__tp_dealloc(), stitch_draw_vbo(), waveform_draw_one(), and wm_gizmo_geometryinfo_draw().
| void GPU_batch_draw | ( | GPUBatch * | batch | ) |
Definition at line 234 of file gpu_batch.cc.
References batch, GPU_batch_draw_advanced(), and GPU_shader_bind().
Referenced by blf_batch_draw(), button2d_draw_intern(), curve_draw_stroke_3d(), draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_seq_fcurve_overlay(), draw_widgetbase_batch(), drawscredge_area_draw(), drw_debug_draw_spheres(), DRW_draw_cursor(), DRW_draw_cursor_2d(), DRW_draw_depth_object(), DRW_transform_none(), ED_draw_object_facemap(), gpu_viewport_draw_colormanaged(), icon_draw_texture(), knifetool_draw(), node_draw_link_bezier(), nodelink_batch_draw(), panel_draw_aligned_widgets(), pygpu_batch_draw(), stitch_draw_vbo(), ui_draw_but_UNITVEC(), ui_draw_dropshadow(), UI_draw_roundbox_4fv_ex(), UI_widgetbase_draw_cache_flush(), waveform_draw_one(), wm_draw_region_blend(), and wm_gizmo_geometryinfo_draw().
| void GPU_batch_draw_advanced | ( | GPUBatch * | gpu_batch, |
| int | v_first, | ||
| int | v_count, | ||
| int | i_first, | ||
| int | i_count | ||
| ) |
Definition at line 255 of file gpu_batch.cc.
References batch, BLI_assert, blender::gpu::Context::get(), min_ii(), and shader().
Referenced by blender::gpu::GLDrawList::append(), draw_geometry_execute(), GPU_batch_draw(), GPU_batch_draw_instanced(), and GPU_batch_draw_range().
| void GPU_batch_draw_instanced | ( | GPUBatch * | batch, |
| int | i_count | ||
| ) |
Definition at line 247 of file gpu_batch.cc.
References batch, BLI_assert, GPU_batch_draw_advanced(), and GPU_shader_bind().
Referenced by icon_draw_cache_texture_flush_ex(), and UI_widgetbase_draw_cache_flush().
| void GPU_batch_draw_range | ( | GPUBatch * | batch, |
| int | v_first, | ||
| int | v_count | ||
| ) |
Definition at line 240 of file gpu_batch.cc.
References batch, GPU_batch_draw_advanced(), and GPU_shader_bind().
Referenced by knifetool_draw().
| void GPU_batch_elembuf_set | ( | GPUBatch * | batch, |
| GPUIndexBuf * | elem, | ||
| bool | own_ibo | ||
| ) |
Definition at line 155 of file gpu_batch.cc.
References batch, BLI_assert, GPU_BATCH_DIRTY, GPU_BATCH_OWNS_INDEX, GPU_indexbuf_discard(), and SET_FLAG_FROM_TEST.
Referenced by DRW_ibo_request().
| void gpu_batch_exit | ( | void | ) |
Definition at line 323 of file gpu_batch.cc.
References gpu_batch_presets_exit().
Referenced by GPU_exit().
| void gpu_batch_init | ( | void | ) |
Definition at line 318 of file gpu_batch.cc.
References gpu_batch_presets_init().
Referenced by GPU_init().
| void GPU_batch_init_ex | ( | GPUBatch * | batch, |
| GPUPrimType | prim_type, | ||
| GPUVertBuf * | verts, | ||
| GPUIndexBuf * | elem, | ||
| eGPUBatchFlag | owns_flag | ||
| ) |
Definition at line 70 of file gpu_batch.cc.
References batch, BLI_assert, GPU_BATCH_DIRTY, GPU_BATCH_INIT, GPU_BATCH_OWNS_INDEX, GPU_BATCH_OWNS_VBO, GPU_BATCH_VBO_MAX_LEN, v, and verts.
Referenced by DRW_batch_requested(), GPU_batch_copy(), and GPU_batch_create_ex().
| int GPU_batch_instbuf_add_ex | ( | GPUBatch * | batch, |
| GPUVertBuf * | insts, | ||
| bool | own_vbo | ||
| ) |
Definition at line 168 of file gpu_batch.cc.
References batch, BLI_assert, GPU_BATCH_DIRTY, GPU_BATCH_INST_VBO_MAX_LEN, GPU_BATCH_OWNS_INST_VBO, SET_FLAG_FROM_TEST, and v.
Referenced by DRW_cache_pointcloud_surface_shaded_get(), DRW_instance_buffer_finish(), DRW_pointcloud_batch_cache_get_surface(), gpencil_batches_ensure(), and gpencil_sbuffer_stroke_ensure().
| void GPU_batch_instbuf_set | ( | GPUBatch * | batch, |
| GPUVertBuf * | inst, | ||
| bool | own_vbo | ||
| ) |
Definition at line 141 of file gpu_batch.cc.
References batch, BLI_assert, GPU_BATCH_DIRTY, GPU_BATCH_OWNS_INST_VBO, GPU_vertbuf_discard(), and SET_FLAG_FROM_TEST.
Referenced by blf_batch_draw_init(), drw_debug_draw_spheres(), and nodelink_batch_init().
| void GPU_batch_program_set_builtin | ( | GPUBatch * | batch, |
| eGPUBuiltinShader | shader_id | ||
| ) |
Definition at line 299 of file gpu_batch.cc.
References batch, GPU_batch_program_set_builtin_with_config(), and GPU_SHADER_CFG_DEFAULT.
Referenced by blf_batch_draw(), button2d_draw_intern(), curve_draw_stroke_3d(), draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_seq_fcurve_overlay(), draw_widgetbase_batch(), drawscredge_area_draw(), drw_debug_draw_spheres(), DRW_transform_none(), ED_draw_object_facemap(), ED_screen_draw_edges(), gpu_viewport_draw_colormanaged(), knifetool_draw(), node_draw_link_bezier(), nodelink_batch_draw(), panel_draw_aligned_widgets(), stitch_draw_vbo(), ui_draw_but_UNITVEC(), ui_draw_dropshadow(), UI_draw_roundbox_4fv_ex(), UI_widgetbase_draw_cache_flush(), waveform_draw_one(), and wm_gizmo_geometryinfo_draw().
| void GPU_batch_program_set_builtin_with_config | ( | GPUBatch * | batch, |
| eGPUBuiltinShader | shader_id, | ||
| eGPUShaderConfig | sh_cfg | ||
| ) |
Definition at line 291 of file gpu_batch.cc.
References batch, GPU_batch_set_shader(), GPU_shader_get_builtin_shader_with_config(), and shader().
Referenced by DRW_draw_depth_object(), and GPU_batch_program_set_builtin().
| void GPU_batch_program_set_imm_shader | ( | GPUBatch * | batch | ) |
Definition at line 307 of file gpu_batch.cc.
References batch, GPU_batch_set_shader(), and immGetShader().
Referenced by gpu_viewport_draw_colormanaged().
Definition at line 222 of file gpu_batch.cc.
References batch, GPU_shader_bind(), and shader().
Referenced by draw_geometry_bind(), DRW_draw_cursor(), DRW_draw_cursor_2d(), GPU_batch_program_set_builtin_with_config(), GPU_batch_program_set_imm_shader(), icon_draw_cache_texture_flush_ex(), icon_draw_texture(), immEnd(), pygpu_batch_draw(), pygpu_batch_program_set(), and wm_draw_region_blend().
| int GPU_batch_vertbuf_add_ex | ( | GPUBatch * | batch, |
| GPUVertBuf * | verts, | ||
| bool | own_vbo | ||
| ) |
Definition at line 192 of file gpu_batch.cc.
References batch, BLI_assert, GPU_BATCH_DIRTY, GPU_BATCH_OWNS_VBO, GPU_BATCH_VBO_MAX_LEN, SET_FLAG_FROM_TEST, v, and verts.
Referenced by DRW_metaball_batch_cache_get_wireframes_face(), drw_volume_wireframe_cb(), and EEVEE_motion_blur_cache_finish().