Blender V4.3
DRW_render.hh File Reference
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BKE_context.hh"
#include "BKE_layer.hh"
#include "BKE_material.h"
#include "BKE_pbvh.hh"
#include "BKE_scene.hh"
#include "BLT_translation.hh"
#include "DNA_light_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_world_types.h"
#include "GPU_framebuffer.hh"
#include "GPU_material.hh"
#include "GPU_primitive.hh"
#include "GPU_shader.hh"
#include "GPU_storage_buffer.hh"
#include "GPU_texture.hh"
#include "GPU_uniform_buffer.hh"
#include "draw_cache.hh"
#include "draw_common_c.hh"
#include "draw_view_c.hh"
#include "draw_debug_c.hh"
#include "draw_manager_profiling.hh"
#include "draw_state.hh"
#include "draw_view_data.hh"
#include "MEM_guardedalloc.h"
#include "RE_engine.h"
#include "DEG_depsgraph.hh"

Go to the source code of this file.

Classes

struct  BoundSphere
 
struct  DrawEngineDataSize
 
struct  DrawEngineType
 
struct  DRWInstanceAttrFormat
 
struct  DRWContextState
 

Namespaces

namespace  blender
 
namespace  blender::gpu
 
namespace  blender::draw
 

Macros

#define DRW_DEBUG_FILE_LINE_ARGS
 
#define DRW_VIEWPORT_LIST_SIZE(list)    (sizeof(list) == sizeof(DRWViewportEmptyList) ? 0 : (sizeof(list) / sizeof(void *)))
 
#define DRW_VIEWPORT_DATA_SIZE(ty)
 
#define DRW_TEXTURE_FREE_SAFE(tex)
 
#define DRW_UBO_FREE_SAFE(ubo)
 
#define DRW_SHADER_FREE_SAFE(shader)
 
#define DRW_shgroup_instance_format(format, ...)
 
#define DRW_shgroup_call(shgroup, geom, ob)    DRW_shgroup_call_ex(shgroup, ob, nullptr, geom, false, nullptr)
 
#define DRW_shgroup_call_obmat(shgroup, geom, obmat)    DRW_shgroup_call_ex(shgroup, nullptr, obmat, geom, false, nullptr)
 
#define DRW_shgroup_call_with_callback(shgroup, geom, ob, user_data)    DRW_shgroup_call_ex(shgroup, ob, nullptr, geom, false, user_data)
 
#define DRW_shgroup_call_no_cull(shgroup, geom, ob)    DRW_shgroup_call_ex(shgroup, ob, nullptr, geom, true, nullptr)
 
#define DRW_buffer_add_entry(buffer, ...)
 
#define DRW_shgroup_vertex_buffer(shgroup, name, vert)    DRW_shgroup_vertex_buffer_ex(shgroup, name, vert)
 
#define DRW_shgroup_vertex_buffer_ref(shgroup, name, vert)    DRW_shgroup_vertex_buffer_ref_ex(shgroup, name, vert)
 
#define DRW_shgroup_uniform_block(shgroup, name, ubo)    DRW_shgroup_uniform_block_ex(shgroup, name, ubo)
 
#define DRW_shgroup_uniform_block_ref(shgroup, name, ubo)    DRW_shgroup_uniform_block_ref_ex(shgroup, name, ubo)
 
#define DRW_shgroup_storage_block(shgroup, name, ssbo)    DRW_shgroup_storage_block_ex(shgroup, name, ssbo)
 
#define DRW_shgroup_storage_block_ref(shgroup, name, ssbo)    DRW_shgroup_storage_block_ref_ex(shgroup, name, ssbo)
 
#define DRW_PASS_CREATE(pass, state)   (pass = DRW_pass_create(#pass, state))
 
#define DRW_PASS_INSTANCE_CREATE(pass, original, state)    (pass = DRW_pass_create_instance(#pass, (original), state))
 

Typedefs

typedef struct DRWCallBuffer DRWCallBuffer
 
typedef struct DRWInterface DRWInterface
 
typedef struct DRWPass DRWPass
 
typedef struct DRWShaderLibrary DRWShaderLibrary
 
typedef struct DRWShadingGroup DRWShadingGroup
 
typedef struct DRWUniform DRWUniform
 
typedef struct DRWView DRWView
 
typedef char DRWViewportEmptyList
 
typedef bool DRWCallVisibilityFn(bool vis_in, void *user_data)
 

Enumerations

enum  DRWTextureFlag { DRW_TEX_FILTER = (1 << 0) , DRW_TEX_WRAP = (1 << 1) , DRW_TEX_COMPARE = (1 << 2) , DRW_TEX_MIPMAP = (1 << 3) }
 
enum  eDRWAttrType { DRW_ATTR_INT , DRW_ATTR_FLOAT }
 

Functions

GPUTexture * DRW_texture_pool_query_2d (int w, int h, eGPUTextureFormat format, DrawEngineType *engine_type)
 
GPUTexture * DRW_texture_pool_query_fullscreen (eGPUTextureFormat format, DrawEngineType *engine_type)
 
GPUTexture * DRW_texture_create_1d (int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_2d (int w, int h, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_2d_array (int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_3d (int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_cube (int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_cube_array (int w, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
void DRW_texture_ensure_fullscreen_2d (GPUTexture **tex, eGPUTextureFormat format, DRWTextureFlag flags)
 
void DRW_texture_ensure_2d (GPUTexture **tex, int w, int h, eGPUTextureFormat format, DRWTextureFlag flags)
 
GPUTexture * DRW_texture_pool_query_2d_ex (int w, int h, eGPUTextureFormat format, eGPUTextureUsage usage, DrawEngineType *engine_type)
 
GPUTexture * DRW_texture_pool_query_fullscreen_ex (eGPUTextureFormat format, eGPUTextureUsage usage, DrawEngineType *engine_type)
 
GPUTexture * DRW_texture_create_1d_ex (int w, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_2d_ex (int w, int h, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_2d_array_ex (int w, int h, int d, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_3d_ex (int w, int h, int d, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_cube_ex (int w, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
GPUTexture * DRW_texture_create_cube_array_ex (int w, int d, eGPUTextureFormat format, eGPUTextureUsage usage_flags, DRWTextureFlag flags, const float *fpixels)
 
void DRW_texture_ensure_fullscreen_2d_ex (GPUTexture **tex, eGPUTextureFormat format, eGPUTextureUsage usage, DRWTextureFlag flags)
 
void DRW_texture_ensure_2d_ex (GPUTexture **tex, int w, int h, eGPUTextureFormat format, eGPUTextureUsage usage, DRWTextureFlag flags)
 
void DRW_texture_generate_mipmaps (GPUTexture *tex)
 
void DRW_texture_free (GPUTexture *tex)
 
void DRW_shader_init ()
 
void DRW_shader_exit ()
 
GPUMaterialDRW_shader_from_world (World *wo, bNodeTree *ntree, eGPUMaterialEngine engine, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk)
 
GPUMaterialDRW_shader_from_material (Material *ma, bNodeTree *ntree, eGPUMaterialEngine engine, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk, GPUMaterialPassReplacementCallbackFn pass_replacement_cb=nullptr)
 
void DRW_shader_queue_optimize_material (GPUMaterial *mat)
 
void DRW_shader_free (GPUShader *shader)
 
GPUVertFormatDRW_shgroup_instance_format_array (const DRWInstanceAttrFormat attrs[], int arraysize)
 
DRWShadingGroupDRW_shgroup_create (GPUShader *shader, DRWPass *pass)
 
DRWShadingGroupDRW_shgroup_create_sub (DRWShadingGroup *shgroup)
 
DRWShadingGroupDRW_shgroup_material_create (GPUMaterial *material, DRWPass *pass)
 
DRWShadingGroupDRW_shgroup_transform_feedback_create (GPUShader *shader, DRWPass *pass, blender::gpu::VertBuf *tf_target)
 
void DRW_shgroup_add_material_resources (DRWShadingGroup *grp, GPUMaterial *material)
 
void DRW_shgroup_call_ex (DRWShadingGroup *shgroup, const Object *ob, const float(*obmat)[4], blender::gpu::Batch *geom, bool bypass_culling, void *user_data)
 
void DRW_shgroup_call_range (DRWShadingGroup *shgroup, const Object *ob, blender::gpu::Batch *geom, uint v_sta, uint v_num)
 
void DRW_shgroup_call_instance_range (DRWShadingGroup *shgroup, const Object *ob, blender::gpu::Batch *geom, uint i_sta, uint i_num)
 
void DRW_shgroup_call_compute (DRWShadingGroup *shgroup, int groups_x_len, int groups_y_len, int groups_z_len)
 
void DRW_shgroup_call_compute_ref (DRWShadingGroup *shgroup, int groups_ref[3])
 
void DRW_shgroup_call_compute_indirect (DRWShadingGroup *shgroup, GPUStorageBuf *indirect_buf)
 
void DRW_shgroup_call_procedural_points (DRWShadingGroup *sh, const Object *ob, uint point_count)
 
void DRW_shgroup_call_procedural_lines (DRWShadingGroup *sh, const Object *ob, uint line_count)
 
void DRW_shgroup_call_procedural_triangles (DRWShadingGroup *sh, const Object *ob, uint tri_count)
 
void DRW_shgroup_call_procedural_indirect (DRWShadingGroup *shgroup, GPUPrimType primitive_type, Object *ob, GPUStorageBuf *indirect_buf)
 
void DRW_shgroup_call_instances (DRWShadingGroup *shgroup, const Object *ob, blender::gpu::Batch *geom, uint count)
 
void DRW_shgroup_call_instances_with_attrs (DRWShadingGroup *shgroup, const Object *ob, blender::gpu::Batch *geom, blender::gpu::Batch *inst_attributes)
 
void DRW_shgroup_call_sculpt (DRWShadingGroup *shgroup, Object *ob, bool use_wire, bool use_mask, bool use_fset, bool use_color, bool use_uv)
 
void DRW_shgroup_call_sculpt_with_materials (DRWShadingGroup **shgroups, GPUMaterial **gpumats, int num_shgroups, const Object *ob)
 
DRWCallBufferDRW_shgroup_call_buffer (DRWShadingGroup *shgroup, GPUVertFormat *format, GPUPrimType prim_type)
 
DRWCallBufferDRW_shgroup_call_buffer_instance (DRWShadingGroup *shgroup, GPUVertFormat *format, blender::gpu::Batch *geom)
 
void DRW_buffer_add_entry_struct (DRWCallBuffer *callbuf, const void *data)
 
void DRW_buffer_add_entry_array (DRWCallBuffer *callbuf, const void *attr[], uint attr_len)
 
uint32_t DRW_object_resource_id_get (Object *ob)
 
void DRW_shgroup_state_enable (DRWShadingGroup *shgroup, DRWState state)
 
void DRW_shgroup_state_disable (DRWShadingGroup *shgroup, DRWState state)
 
void DRW_shgroup_stencil_set (DRWShadingGroup *shgroup, uint write_mask, uint reference, uint compare_mask)
 
void DRW_shgroup_stencil_mask (DRWShadingGroup *shgroup, uint mask)
 
void DRW_shgroup_barrier (DRWShadingGroup *shgroup, eGPUBarrier type)
 
void DRW_shgroup_clear_framebuffer (DRWShadingGroup *shgroup, eGPUFrameBufferBits channels, uchar r, uchar g, uchar b, uchar a, float depth, uchar stencil)
 
void DRW_shgroup_uniform_texture_ex (DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex, GPUSamplerState sampler_state)
 
void DRW_shgroup_uniform_texture_ref_ex (DRWShadingGroup *shgroup, const char *name, GPUTexture **tex, GPUSamplerState sampler_state)
 
void DRW_shgroup_uniform_texture (DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
 
void DRW_shgroup_uniform_texture_ref (DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
 
void DRW_shgroup_uniform_block_ex (DRWShadingGroup *shgroup, const char *name, const GPUUniformBuf *ubo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_uniform_block_ref_ex (DRWShadingGroup *shgroup, const char *name, GPUUniformBuf **ubo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_storage_block_ex (DRWShadingGroup *shgroup, const char *name, const GPUStorageBuf *ssbo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_storage_block_ref_ex (DRWShadingGroup *shgroup, const char *name, GPUStorageBuf **ssbo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_uniform_float (DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
 
void DRW_shgroup_uniform_vec2 (DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
 
void DRW_shgroup_uniform_vec3 (DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
 
void DRW_shgroup_uniform_vec4 (DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
 
void DRW_shgroup_uniform_bool (DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
 
void DRW_shgroup_uniform_int (DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
 
void DRW_shgroup_uniform_ivec2 (DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
 
void DRW_shgroup_uniform_ivec3 (DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
 
void DRW_shgroup_uniform_ivec4 (DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
 
void DRW_shgroup_uniform_mat3 (DRWShadingGroup *shgroup, const char *name, const float(*value)[3])
 
void DRW_shgroup_uniform_mat4 (DRWShadingGroup *shgroup, const char *name, const float(*value)[4])
 
void DRW_shgroup_uniform_image (DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
 
void DRW_shgroup_uniform_image_ref (DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
 
void DRW_shgroup_uniform_int_copy (DRWShadingGroup *shgroup, const char *name, int value)
 
void DRW_shgroup_uniform_ivec2_copy (DRWShadingGroup *shgroup, const char *name, const int *value)
 
void DRW_shgroup_uniform_ivec3_copy (DRWShadingGroup *shgroup, const char *name, const int *value)
 
void DRW_shgroup_uniform_ivec4_copy (DRWShadingGroup *shgroup, const char *name, const int *value)
 
void DRW_shgroup_uniform_bool_copy (DRWShadingGroup *shgroup, const char *name, bool value)
 
void DRW_shgroup_uniform_float_copy (DRWShadingGroup *shgroup, const char *name, float value)
 
void DRW_shgroup_uniform_vec2_copy (DRWShadingGroup *shgroup, const char *name, const float *value)
 
void DRW_shgroup_uniform_vec3_copy (DRWShadingGroup *shgroup, const char *name, const float *value)
 
void DRW_shgroup_uniform_vec4_copy (DRWShadingGroup *shgroup, const char *name, const float *value)
 
void DRW_shgroup_uniform_mat4_copy (DRWShadingGroup *shgroup, const char *name, const float(*value)[4])
 
void DRW_shgroup_vertex_buffer_ex (DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf *vertex_buffer DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_vertex_buffer_ref_ex (DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf **vertex_buffer DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_buffer_texture (DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf *vertex_buffer)
 
void DRW_shgroup_buffer_texture_ref (DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf **vertex_buffer)
 
bool DRW_shgroup_is_empty (DRWShadingGroup *shgroup)
 
DRWPassDRW_pass_create (const char *name, DRWState state)
 
DRWPassDRW_pass_create_instance (const char *name, DRWPass *original, DRWState state)
 
void DRW_pass_link (DRWPass *first, DRWPass *second)
 
void DRW_pass_foreach_shgroup (DRWPass *pass, void(*callback)(void *user_data, DRWShadingGroup *shgroup), void *user_data)
 
void DRW_pass_sort_shgroup_z (DRWPass *pass)
 
void DRW_pass_sort_shgroup_reverse (DRWPass *pass)
 
bool DRW_pass_is_empty (DRWPass *pass)
 
DRWViewDRW_view_create (const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4], DRWCallVisibilityFn *visibility_fn)
 
DRWViewDRW_view_create_sub (const DRWView *parent_view, const float viewmat[4][4], const float winmat[4][4])
 
void DRW_view_update (DRWView *view, const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4])
 
void DRW_view_update_sub (DRWView *view, const float viewmat[4][4], const float winmat[4][4])
 
const DRWViewDRW_view_default_get ()
 
void DRW_view_default_set (const DRWView *view)
 
void DRW_view_reset ()
 
void DRW_view_set_active (const DRWView *view)
 
const DRWViewDRW_view_get_active ()
 
void DRW_view_clip_planes_set (DRWView *view, float(*planes)[4], int plane_len)
 
void DRW_view_winmat_get (const DRWView *view, float mat[4][4], bool inverse)
 
void DRW_view_viewmat_get (const DRWView *view, float mat[4][4], bool inverse)
 
void DRW_view_persmat_get (const DRWView *view, float mat[4][4], bool inverse)
 
void DRW_view_frustum_corners_get (const DRWView *view, BoundBox *corners)
 
void DRW_view_frustum_planes_get (const DRWView *view, float planes[6][4])
 
float DRW_view_near_distance_get (const DRWView *view)
 
float DRW_view_far_distance_get (const DRWView *view)
 
bool DRW_view_is_persp_get (const DRWView *view)
 
bool DRW_culling_sphere_test (const DRWView *view, const BoundSphere *bsphere)
 
bool DRW_culling_box_test (const DRWView *view, const BoundBox *bbox)
 
bool DRW_culling_plane_test (const DRWView *view, const float plane[4])
 
bool DRW_culling_min_max_test (const DRWView *view, float obmat[4][4], float min[3], float max[3])
 
void DRW_culling_frustum_corners_get (const DRWView *view, BoundBox *corners)
 
void DRW_culling_frustum_planes_get (const DRWView *view, float planes[6][4])
 
const floatDRW_viewport_size_get ()
 
const floatDRW_viewport_invert_size_get ()
 
const floatDRW_viewport_pixelsize_get ()
 
DefaultFramebufferListDRW_viewport_framebuffer_list_get ()
 
DefaultTextureListDRW_viewport_texture_list_get ()
 
blender::draw::TextureFromPoolDRW_viewport_pass_texture_get (const char *pass_name)
 
void DRW_viewport_request_redraw ()
 
void DRW_render_to_image (RenderEngine *engine, Depsgraph *depsgraph)
 
void DRW_render_object_iter (void *vedata, RenderEngine *engine, Depsgraph *depsgraph, void(*callback)(void *vedata, Object *ob, RenderEngine *engine, Depsgraph *depsgraph))
 
void DRW_render_instance_buffer_finish ()
 
void DRW_render_set_time (RenderEngine *engine, Depsgraph *depsgraph, int frame, float subframe)
 
void DRW_render_viewport_size_set (const int size[2])
 
void DRW_custom_pipeline (DrawEngineType *draw_engine_type, Depsgraph *depsgraph, void(*callback)(void *vedata, void *user_data), void *user_data)
 
void DRW_custom_pipeline_begin (DrawEngineType *draw_engine_type, Depsgraph *depsgraph)
 
void DRW_custom_pipeline_end ()
 
void DRW_cache_restart ()
 
void * DRW_view_layer_engine_data_get (DrawEngineType *engine_type)
 
void ** DRW_view_layer_engine_data_ensure_ex (ViewLayer *view_layer, DrawEngineType *engine_type, void(*callback)(void *storage))
 
void ** DRW_view_layer_engine_data_ensure (DrawEngineType *engine_type, void(*callback)(void *storage))
 
DrawDataDRW_drawdata_get (ID *id, DrawEngineType *engine_type)
 
DrawDataDRW_drawdata_ensure (ID *id, DrawEngineType *engine_type, size_t size, DrawDataInitCb init_cb, DrawDataFreeCb free_cb)
 
void ** DRW_duplidata_get (void *vedata)
 
bool DRW_object_is_renderable (const Object *ob)
 
bool DRW_object_is_in_edit_mode (const Object *ob)
 
int DRW_object_visibility_in_active_context (const Object *ob)
 
bool DRW_object_use_hide_faces (const Object *ob)
 
bool DRW_object_is_visible_psys_in_active_context (const Object *object, const ParticleSystem *psys)
 
ObjectDRW_object_get_dupli_parent (const Object *ob)
 
DupliObjectDRW_object_get_dupli (const Object *ob)
 
void DRW_draw_pass (DRWPass *pass)
 
void DRW_draw_pass_subset (DRWPass *pass, DRWShadingGroup *start_group, DRWShadingGroup *end_group)
 
void DRW_draw_callbacks_pre_scene ()
 
void DRW_draw_callbacks_post_scene ()
 
void DRW_state_reset_ex (DRWState state)
 
void DRW_state_reset ()
 
void DRW_state_lock (DRWState state)
 
void DRW_select_load_id (uint id)
 
bool DRW_state_is_fbo ()
 
bool DRW_state_is_select ()
 
bool DRW_state_is_material_select ()
 
bool DRW_state_is_depth ()
 
bool DRW_state_is_image_render ()
 
bool DRW_state_is_scene_render ()
 
bool DRW_state_is_viewport_image_render ()
 
bool DRW_state_is_playback ()
 
bool DRW_state_is_navigating ()
 
bool DRW_state_is_painting ()
 
bool DRW_state_show_text ()
 
bool DRW_state_draw_support ()
 
bool DRW_state_draw_background ()
 
const DRWContextStateDRW_context_state_get ()
 
void DRW_mesh_batch_cache_get_attributes (Object *object, Mesh *mesh, blender::draw::DRW_Attributes **r_attrs, blender::draw::DRW_MeshCDMask **r_cd_needed)
 
void DRW_sculpt_debug_cb (blender::bke::pbvh::Node *node, void *user_data, const float bmin[3], const float bmax[3], PBVHNodeFlags flag)
 
bool DRW_is_viewport_compositor_enabled ()
 

Macro Definition Documentation

◆ DRW_buffer_add_entry

◆ DRW_DEBUG_FILE_LINE_ARGS

#define DRW_DEBUG_FILE_LINE_ARGS

Definition at line 61 of file DRW_render.hh.

◆ DRW_PASS_CREATE

◆ DRW_PASS_INSTANCE_CREATE

#define DRW_PASS_INSTANCE_CREATE ( pass,
original,
state )    (pass = DRW_pass_create_instance(#pass, (original), state))

Definition at line 629 of file DRW_render.hh.

Referenced by OVERLAY_edit_text_cache_init().

◆ DRW_SHADER_FREE_SAFE

◆ DRW_shgroup_call

◆ DRW_shgroup_call_no_cull

◆ DRW_shgroup_call_obmat

◆ DRW_shgroup_call_with_callback

#define DRW_shgroup_call_with_callback ( shgroup,
geom,
ob,
user_data )    DRW_shgroup_call_ex(shgroup, ob, nullptr, geom, false, user_data)

Definition at line 353 of file DRW_render.hh.

◆ DRW_shgroup_instance_format

#define DRW_shgroup_instance_format ( format,
... )
Value:
do { \
if (format == nullptr) { \
DRWInstanceAttrFormat drw_format[] = __VA_ARGS__; \
drw_format, (sizeof(drw_format) / sizeof(DRWInstanceAttrFormat))); \
} \
} while (0)
GPUVertFormat * DRW_shgroup_instance_format_array(const DRWInstanceAttrFormat attrs[], int arraysize)
format

Definition at line 309 of file DRW_render.hh.

Referenced by OVERLAY_shader_instance_formats_get().

◆ DRW_shgroup_storage_block

#define DRW_shgroup_storage_block ( shgroup,
name,
ssbo )    DRW_shgroup_storage_block_ex(shgroup, name, ssbo)

Definition at line 593 of file DRW_render.hh.

◆ DRW_shgroup_storage_block_ref

#define DRW_shgroup_storage_block_ref ( shgroup,
name,
ssbo )    DRW_shgroup_storage_block_ref_ex(shgroup, name, ssbo)

Definition at line 595 of file DRW_render.hh.

Referenced by blender::eevee::VelocityModule::bind_resources().

◆ DRW_shgroup_uniform_block

◆ DRW_shgroup_uniform_block_ref

#define DRW_shgroup_uniform_block_ref ( shgroup,
name,
ubo )    DRW_shgroup_uniform_block_ref_ex(shgroup, name, ubo)

Definition at line 591 of file DRW_render.hh.

Referenced by blender::eevee::VelocityModule::bind_resources().

◆ DRW_shgroup_vertex_buffer

#define DRW_shgroup_vertex_buffer ( shgroup,
name,
vert )    DRW_shgroup_vertex_buffer_ex(shgroup, name, vert)

◆ DRW_shgroup_vertex_buffer_ref

#define DRW_shgroup_vertex_buffer_ref ( shgroup,
name,
vert )    DRW_shgroup_vertex_buffer_ref_ex(shgroup, name, vert)

Definition at line 587 of file DRW_render.hh.

◆ DRW_TEXTURE_FREE_SAFE

#define DRW_TEXTURE_FREE_SAFE ( tex)
Value:
do { \
if (tex != nullptr) { \
DRW_texture_free(tex); \
tex = nullptr; \
} \
} while (0)

Definition at line 246 of file DRW_render.hh.

Referenced by DRW_engines_free(), DRW_globals_update(), GPENCIL_cache_init(), OVERLAY_edit_uv_draw_finish(), blender::draw::particle_batch_cache_clear_hair(), select_engine_free(), and blender::draw::volume_batch_cache_clear().

◆ DRW_UBO_FREE_SAFE

#define DRW_UBO_FREE_SAFE ( ubo)
Value:
do { \
if (ubo != nullptr) { \
GPU_uniformbuf_free(ubo); \
ubo = nullptr; \
} \
} while (0)

Definition at line 254 of file DRW_render.hh.

Referenced by DRW_engines_free(), gpencil_light_pool_free(), gpencil_material_pool_free(), and blender::draw::overlay::Instance::~Instance().

◆ DRW_VIEWPORT_DATA_SIZE

#define DRW_VIEWPORT_DATA_SIZE ( ty)
Value:
{ \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)nullptr)->fbl)), \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)nullptr)->txl)), \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)nullptr)->psl)), \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)nullptr)->stl)), \
}

Definition at line 103 of file DRW_render.hh.

◆ DRW_VIEWPORT_LIST_SIZE

#define DRW_VIEWPORT_LIST_SIZE ( list)     (sizeof(list) == sizeof(DRWViewportEmptyList) ? 0 : (sizeof(list) / sizeof(void *)))

Definition at line 99 of file DRW_render.hh.

Typedef Documentation

◆ DRWCallBuffer

typedef struct DRWCallBuffer DRWCallBuffer

Definition at line 83 of file DRW_render.hh.

◆ DRWCallVisibilityFn

typedef bool DRWCallVisibilityFn(bool vis_in, void *user_data)

Return final visibility.

Definition at line 330 of file DRW_render.hh.

◆ DRWInterface

typedef struct DRWInterface DRWInterface

Definition at line 84 of file DRW_render.hh.

◆ DRWPass

typedef struct DRWPass DRWPass

Definition at line 85 of file DRW_render.hh.

◆ DRWShaderLibrary

Definition at line 86 of file DRW_render.hh.

◆ DRWShadingGroup

typedef struct DRWShadingGroup DRWShadingGroup

Definition at line 87 of file DRW_render.hh.

◆ DRWUniform

typedef struct DRWUniform DRWUniform

Definition at line 88 of file DRW_render.hh.

◆ DRWView

typedef struct DRWView DRWView

Definition at line 89 of file DRW_render.hh.

◆ DRWViewportEmptyList

typedef char DRWViewportEmptyList

Definition at line 97 of file DRW_render.hh.

Enumeration Type Documentation

◆ DRWTextureFlag

Enumerator
DRW_TEX_FILTER 
DRW_TEX_WRAP 
DRW_TEX_COMPARE 
DRW_TEX_MIPMAP 

Definition at line 147 of file DRW_render.hh.

◆ eDRWAttrType

Enumerator
DRW_ATTR_INT 
DRW_ATTR_FLOAT 

Definition at line 296 of file DRW_render.hh.

Function Documentation

◆ DRW_buffer_add_entry_array()

◆ DRW_buffer_add_entry_struct()

◆ DRW_cache_restart()

void DRW_cache_restart ( )

Used when the render engine want to redo another cache populate inside the same render frame.

Definition at line 2184 of file draw_manager_c.cc.

References DRWManager::buffer_finish_called, drw_manager_init(), DRW_smoke_exit(), DRW_smoke_init(), DRW_volume_init(), DST, DRWManager::viewport, and DRWManager::vmempool.

Referenced by blender::eevee::Instance::render_sync(), and workbench_render_to_image().

◆ DRW_context_state_get()

const DRWContextState * DRW_context_state_get ( )

Definition at line 3046 of file draw_manager_c.cc.

References DRWManager::draw_ctx, and DST.

Referenced by basic_cache_init(), basic_cache_populate(), camera_view3d_reconstruction(), compositor_engine_update(), blender::eevee::ShadowModule::debug_end_sync(), blender::draw::overlay::Armatures::draw_armature_pose(), drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), blender::draw::DRW_curves_pos_buffer_get(), DRW_draw_cursor(), DRW_draw_cursor_2d(), DRW_draw_gizmo_2d(), DRW_draw_gizmo_3d(), DRW_draw_region_info(), DRW_engine_external_acquire_for_image_editor(), DRW_globals_update(), DRW_hair_pos_buffer_get(), DRW_object_is_visible_psys_in_active_context(), DRW_object_wire_theme_get(), blender::draw::drw_particle_get_hair_source(), blender::draw::drw_particle_update_ptcache(), blender::draw::drw_particle_update_ptcache_edit(), DRW_render_object_iter(), drw_sculpt_generate_calls(), blender::draw::DRW_shgroup_curves_create_sub(), DRW_shgroup_hair_create_sub(), blender::draw::DRW_volume_batch_cache_get_wireframes_face(), eevee_engine_init(), eevee_render_to_image(), external_cache_init(), external_cache_populate(), external_draw_scene(), external_draw_scene_do(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), external_engine_init(), external_image_space_matrix_set(), blender::draw::compositor::Context::get_compositing_region(), blender::draw::compositor::Context::get_input_texture(), blender::draw::compositor::Context::get_node_tree(), blender::draw::compositor::Context::get_render_data(), blender::draw::compositor::Context::get_scene(), blender::draw::compositor::Context::get_view_name(), GPENCIL_cache_init(), GPENCIL_engine_init(), GPENCIL_render_result_z(), GPENCIL_render_to_image(), blender::draw::image_engine::IMAGE_cache_init(), blender::draw::image_engine::IMAGE_draw_scene(), blender::draw::image_engine::ImageEngine< DrawingMode >::image_sync(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::image_sync(), blender::draw::overlay::Instance::init(), blender::workbench::DofPass::init(), blender::workbench::SceneState::init(), is_selection_visible(), motion_path_cache(), blender::eevee::Instance::object_sync(), blender::workbench::ObjectState::ObjectState(), OVERLAY_armature_cache_init(), OVERLAY_armature_cache_populate(), OVERLAY_background_cache_init(), OVERLAY_cache_populate(), OVERLAY_camera_cache_populate(), OVERLAY_draw_scene(), OVERLAY_edit_curve_cache_init(), OVERLAY_edit_curves_init(), OVERLAY_edit_gpencil_legacy_cache_init(), OVERLAY_edit_grease_pencil_cache_init(), OVERLAY_edit_grease_pencil_cache_populate(), OVERLAY_edit_mesh_cache_init(), OVERLAY_edit_mesh_cache_populate(), OVERLAY_edit_mesh_init(), OVERLAY_edit_particle_cache_init(), OVERLAY_edit_particle_cache_populate(), OVERLAY_edit_text_cache_init(), OVERLAY_edit_uv_cache_init(), overlay_edit_uv_cache_populate(), OVERLAY_edit_uv_init(), OVERLAY_empty_cache_populate(), OVERLAY_engine_init(), OVERLAY_extra_cache_populate(), OVERLAY_facing_cache_init(), OVERLAY_facing_cache_populate(), OVERLAY_fade_cache_init(), OVERLAY_fade_cache_populate(), OVERLAY_gpencil_legacy_cache_init(), OVERLAY_grease_pencil_cache_init(), overlay_grease_pencil_draw_stroke_color_name(), OVERLAY_grease_pencil_material_names(), OVERLAY_grid_init(), OVERLAY_image_camera_cache_populate(), OVERLAY_image_empty_cache_populate(), OVERLAY_image_init(), OVERLAY_lattice_cache_populate(), OVERLAY_light_cache_populate(), OVERLAY_lightprobe_cache_populate(), OVERLAY_metaball_cache_populate(), OVERLAY_mode_transfer_cache_populate(), OVERLAY_motion_path_cache_populate(), OVERLAY_next_engine_init(), OVERLAY_outline_cache_populate(), OVERLAY_paint_cache_init(), OVERLAY_paint_init(), OVERLAY_particle_cache_init(), OVERLAY_sculpt_cache_populate(), OVERLAY_sculpt_grease_pencil_cache_populate(), OVERLAY_shader_armature_degrees_of_freedom_solid(), OVERLAY_shader_armature_degrees_of_freedom_wire(), OVERLAY_shader_armature_envelope(), OVERLAY_shader_armature_shape(), OVERLAY_shader_armature_shape_wire(), OVERLAY_shader_armature_sphere(), OVERLAY_shader_armature_stick(), OVERLAY_shader_armature_wire(), OVERLAY_shader_depth_only(), OVERLAY_shader_edit_curve_handle(), OVERLAY_shader_edit_curve_point(), OVERLAY_shader_edit_curve_wire(), OVERLAY_shader_edit_curves_handle(), OVERLAY_shader_edit_gpencil_guide_point(), OVERLAY_shader_edit_gpencil_point(), OVERLAY_shader_edit_gpencil_wire(), OVERLAY_shader_edit_lattice_point(), OVERLAY_shader_edit_lattice_wire(), OVERLAY_shader_edit_mesh_analysis(), OVERLAY_shader_edit_mesh_depth(), OVERLAY_shader_edit_mesh_edge(), OVERLAY_shader_edit_mesh_face(), OVERLAY_shader_edit_mesh_facedot(), OVERLAY_shader_edit_mesh_normal(), OVERLAY_shader_edit_mesh_skin_root(), OVERLAY_shader_edit_mesh_vert(), OVERLAY_shader_edit_particle_point(), OVERLAY_shader_edit_particle_strand(), OVERLAY_shader_extra(), OVERLAY_shader_extra_grid(), OVERLAY_shader_extra_groundline(), OVERLAY_shader_extra_loose_point(), OVERLAY_shader_extra_point(), OVERLAY_shader_extra_wire(), OVERLAY_shader_facing(), OVERLAY_shader_gpencil_canvas(), OVERLAY_shader_image(), OVERLAY_shader_motion_path_line(), OVERLAY_shader_motion_path_vert(), OVERLAY_shader_outline_prepass(), OVERLAY_shader_outline_prepass_curves(), OVERLAY_shader_outline_prepass_gpencil(), OVERLAY_shader_outline_prepass_pointcloud(), OVERLAY_shader_paint_face(), OVERLAY_shader_paint_point(), OVERLAY_shader_paint_texture(), OVERLAY_shader_paint_vertcol(), OVERLAY_shader_paint_weight(), OVERLAY_shader_paint_wire(), OVERLAY_shader_particle_dot(), OVERLAY_shader_particle_shape(), OVERLAY_shader_sculpt_curves_cage(), OVERLAY_shader_sculpt_curves_selection(), OVERLAY_shader_sculpt_mask(), OVERLAY_shader_uniform_color(), OVERLAY_shader_uniform_color_pointcloud(), OVERLAY_shader_viewer_attribute_curve(), OVERLAY_shader_viewer_attribute_curves(), OVERLAY_shader_viewer_attribute_mesh(), OVERLAY_shader_viewer_attribute_pointcloud(), OVERLAY_shader_wireframe(), OVERLAY_shader_wireframe_select(), OVERLAY_speaker_cache_populate(), OVERLAY_vertex_grease_pencil_cache_populate(), OVERLAY_weight_grease_pencil_cache_populate(), OVERLAY_wireframe_cache_init(), OVERLAY_wireframe_cache_populate(), OVERLAY_wireframe_init(), blender::draw::particle_batch_cache_ensure_pos(), POSE_is_driven_by_active_armature(), blender::draw::sculpt_batches_get_ex(), select_cache_init(), select_cache_populate(), select_engine_init(), SELECT_next_engine_init(), blender::draw::color_management::viewport_color_management_set(), and workbench_render_to_image().

◆ DRW_culling_box_test()

bool DRW_culling_box_test ( const DRWView * view,
const BoundBox * bbox )
Returns
True if the given BoundBox intersect the current view frustum. bbox must be in world space.

Definition at line 425 of file draw_manager_exec.cc.

References draw_culling_box_test(), DST, view, and DRWManager::view_default.

◆ DRW_culling_frustum_corners_get()

void DRW_culling_frustum_corners_get ( const DRWView * view,
BoundBox * corners )

Definition at line 455 of file draw_manager_exec.cc.

References DST, DRWView::frustum_corners, view, and DRWManager::view_default.

◆ DRW_culling_frustum_planes_get()

void DRW_culling_frustum_planes_get ( const DRWView * view,
float planes[6][4] )

Definition at line 461 of file draw_manager_exec.cc.

References DST, view, and DRWManager::view_default.

Referenced by blender::workbench::ShadowPass::init().

◆ DRW_culling_min_max_test()

bool DRW_culling_min_max_test ( const DRWView * view,
float obmat[4][4],
float min[3],
float max[3] )

Return True if the given box intersect the current view frustum. This function will have to be replaced when world space bounding-box per objects is implemented.

Definition at line 437 of file draw_manager_exec.cc.

References aabb_get_near_far_from_plane(), DST, min, mul_v4_m4v4(), plane_point_side_v3(), transpose_m4_m4(), view, and DRWManager::view_default.

◆ DRW_culling_plane_test()

bool DRW_culling_plane_test ( const DRWView * view,
const float plane[4] )
Returns
True if the view frustum is inside or intersect the given plane. plane must be in world space.

Definition at line 431 of file draw_manager_exec.cc.

References draw_culling_plane_test(), DST, view, and DRWManager::view_default.

◆ DRW_culling_sphere_test()

bool DRW_culling_sphere_test ( const DRWView * view,
const BoundSphere * bsphere )
Returns
True if the given BoundSphere intersect the current view frustum. bsphere must be in world space.

Definition at line 419 of file draw_manager_exec.cc.

References draw_culling_sphere_test(), DST, view, and DRWManager::view_default.

Referenced by ArmatureBoneDrawStrategyBBone::culling_test(), ArmatureBoneDrawStrategyEnvelope::culling_test(), pchan_culling_test_simple(), and pchan_culling_test_with_radius_scale().

◆ DRW_custom_pipeline()

void DRW_custom_pipeline ( DrawEngineType * draw_engine_type,
Depsgraph * depsgraph,
void(* callback )(void *vedata, void *user_data),
void * user_data )

Assume a valid GL context is bound (and that the gl_context_mutex has been acquired). This function only setup DST and execute the given function.

Warning
similar to DRW_render_to_image you cannot use default lists (dfbl & dtxl).

Definition at line 2169 of file draw_manager_c.cc.

References callback, depsgraph, DRW_custom_pipeline_begin(), DRW_custom_pipeline_end(), DRW_view_data_engine_data_get_ensure(), DST, and DRWManager::view_data_active.

◆ DRW_custom_pipeline_begin()

◆ DRW_custom_pipeline_end()

◆ DRW_draw_callbacks_post_scene()

◆ DRW_draw_callbacks_pre_scene()

◆ DRW_draw_pass()

void DRW_draw_pass ( DRWPass * pass)

Definition at line 1254 of file draw_manager_exec.cc.

References drw_draw_pass_ex().

Referenced by basic_draw_scene(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::draw_viewport(), blender::draw::DRW_curves_update(), DRW_hair_update(), external_draw_scene(), GPENCIL_antialiasing_draw(), gpencil_draw_mask(), GPENCIL_draw_object(), GPENCIL_draw_scene_depth_only(), OVERLAY_antialiasing_end(), OVERLAY_armature_draw(), OVERLAY_armature_in_front_draw(), OVERLAY_background_draw(), OVERLAY_edit_curve_draw(), OVERLAY_edit_curves_draw(), OVERLAY_edit_gpencil_legacy_draw(), OVERLAY_edit_grease_pencil_draw(), OVERLAY_edit_lattice_draw(), OVERLAY_edit_mesh_draw(), overlay_edit_mesh_draw_components(), OVERLAY_edit_particle_draw(), OVERLAY_edit_text_draw(), OVERLAY_edit_uv_draw(), OVERLAY_extra_blend_draw(), OVERLAY_extra_centers_draw(), OVERLAY_extra_draw(), OVERLAY_extra_in_front_draw(), OVERLAY_facing_draw(), OVERLAY_facing_infront_draw(), OVERLAY_fade_draw(), OVERLAY_fade_infront_draw(), OVERLAY_gpencil_legacy_draw(), OVERLAY_grease_pencil_draw(), OVERLAY_grid_draw(), OVERLAY_image_background_draw(), OVERLAY_image_draw(), OVERLAY_image_in_front_draw(), OVERLAY_image_scene_background_draw(), OVERLAY_metaball_draw(), OVERLAY_metaball_in_front_draw(), OVERLAY_mode_transfer_draw(), OVERLAY_mode_transfer_infront_draw(), OVERLAY_motion_path_draw(), OVERLAY_outline_draw(), OVERLAY_paint_draw(), OVERLAY_particle_draw(), OVERLAY_pose_draw(), OVERLAY_sculpt_curves_draw(), OVERLAY_sculpt_curves_draw_wires(), OVERLAY_sculpt_draw(), OVERLAY_viewer_attribute_draw(), OVERLAY_volume_draw(), OVERLAY_wireframe_draw(), OVERLAY_wireframe_in_front_draw(), OVERLAY_xray_fade_draw(), select_debug_draw_scene(), and select_draw_scene().

◆ DRW_draw_pass_subset()

void DRW_draw_pass_subset ( DRWPass * pass,
DRWShadingGroup * start_group,
DRWShadingGroup * end_group )

Draw only a subset of shgroups. Used in special situations as grease pencil strokes.

Definition at line 1261 of file draw_manager_exec.cc.

References drw_draw_pass_ex().

◆ DRW_drawdata_ensure()

◆ DRW_drawdata_get()

◆ DRW_duplidata_get()

void ** DRW_duplidata_get ( void * vedata)

Return nullptr if not a dupli or a pointer of pointer to the engine data.

Definition at line 772 of file draw_manager_c.cc.

References DST, DRWManager::dupli_datas, DRWManager::dupli_source, ViewportEngineData::engine_type, and DRWRegisteredDrawEngine::index.

Referenced by OVERLAY_duplidata_get().

◆ DRW_is_viewport_compositor_enabled()

◆ DRW_mesh_batch_cache_get_attributes()

void DRW_mesh_batch_cache_get_attributes ( Object * object,
Mesh * mesh,
blender::draw::DRW_Attributes ** r_attrs,
blender::draw::DRW_MeshCDMask ** r_cd_needed )

◆ DRW_object_get_dupli()

◆ DRW_object_get_dupli_parent()

◆ DRW_object_is_in_edit_mode()

bool DRW_object_is_in_edit_mode ( const Object * ob)

Does ob needs to be rendered in edit mode.

When using duplicate linked meshes, objects that are not in edit-mode will be drawn as it is in edit mode, when another object with the same mesh is in edit mode. This will not be the case when one of the objects are influenced by modifiers.

Definition at line 203 of file draw_manager_c.cc.

References BKE_object_is_in_editmode(), ELEM, Object::mode, OB_CURVES, OB_MESH, OB_MODE_EDIT, and Object::type.

Referenced by drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), DRW_draw_select_id(), blender::draw::DRW_mesh_batch_cache_create_requested(), DRW_object_is_renderable(), overlay_edit_uv_cache_populate(), overlay_object_is_edit_mode(), and OVERLAY_wireframe_cache_populate().

◆ DRW_object_is_renderable()

◆ DRW_object_is_visible_psys_in_active_context()

◆ DRW_object_resource_id_get()

uint32_t DRW_object_resource_id_get ( Object * ob)

Can only be called during iteration phase.

Definition at line 790 of file draw_manager_data.cc.

References DST, DRWManager::ob_handle, and DRWManager::resource_handle.

◆ DRW_object_use_hide_faces()

◆ DRW_object_visibility_in_active_context()

◆ DRW_pass_create()

◆ DRW_pass_create_instance()

DRWPass * DRW_pass_create_instance ( const char * name,
DRWPass * original,
DRWState state )

Create an instance of the original pass that will execute the same drawcalls but with its own DRWState.

Definition at line 2439 of file draw_manager_data.cc.

References DRW_pass_create(), and state.

◆ DRW_pass_foreach_shgroup()

void DRW_pass_foreach_shgroup ( DRWPass * pass,
void(* callback )(void *user_data, DRWShadingGroup *shgroup),
void * user_data )

Definition at line 2468 of file draw_manager_data.cc.

References callback, and LISTBASE_FOREACH.

◆ DRW_pass_is_empty()

◆ DRW_pass_link()

void DRW_pass_link ( DRWPass * first,
DRWPass * second )

Link two passes so that they are both rendered if the first one is being drawn.

Definition at line 2447 of file draw_manager_data.cc.

References BLI_assert, and DRWPass::next.

◆ DRW_pass_sort_shgroup_reverse()

void DRW_pass_sort_shgroup_reverse ( DRWPass * pass)

Reverse Shading group submission order.

Definition at line 2558 of file draw_manager_data.cc.

References BLI_linklist_reverse(), and DRWShadingGroup::last.

◆ DRW_pass_sort_shgroup_z()

◆ DRW_render_instance_buffer_finish()

◆ DRW_render_object_iter()

◆ DRW_render_set_time()

void DRW_render_set_time ( RenderEngine * engine,
Depsgraph * depsgraph,
int frame,
float subframe )

◆ DRW_render_to_image()

◆ DRW_render_viewport_size_set()

void DRW_render_viewport_size_set ( const int size[2])
Warning
only use for custom pipeline. 99% of the time, you don't want to use this.

Definition at line 284 of file draw_manager_c.cc.

References DST, DRWManager::inv_size, and DRWManager::size.

◆ DRW_sculpt_debug_cb()

void DRW_sculpt_debug_cb ( blender::bke::pbvh::Node * node,
void * user_data,
const float bmin[3],
const float bmax[3],
PBVHNodeFlags flag )

◆ DRW_select_load_id()

◆ DRW_shader_exit()

◆ DRW_shader_free()

void DRW_shader_free ( GPUShader * shader)

Definition at line 488 of file draw_manager_shader.cc.

References GPU_shader_free().

◆ DRW_shader_from_material()

◆ DRW_shader_from_world()

◆ DRW_shader_init()

◆ DRW_shader_queue_optimize_material()

◆ DRW_shgroup_add_material_resources()

◆ DRW_shgroup_barrier()

void DRW_shgroup_barrier ( DRWShadingGroup * shgroup,
eGPUBarrier type )

Issue a barrier command.

Definition at line 1115 of file draw_manager_data.cc.

References drw_command_barrier().

◆ DRW_shgroup_buffer_texture()

◆ DRW_shgroup_buffer_texture_ref()

◆ DRW_shgroup_call_buffer()

◆ DRW_shgroup_call_buffer_instance()

◆ DRW_shgroup_call_compute()

void DRW_shgroup_call_compute ( DRWShadingGroup * shgroup,
int groups_x_len,
int groups_y_len,
int groups_z_len )

◆ DRW_shgroup_call_compute_indirect()

void DRW_shgroup_call_compute_indirect ( DRWShadingGroup * shgroup,
GPUStorageBuf * indirect_buf )
Note
No need for a barrier. indirect_buf is internally synchronized.

Definition at line 1110 of file draw_manager_data.cc.

References drw_command_compute_indirect().

◆ DRW_shgroup_call_compute_ref()

void DRW_shgroup_call_compute_ref ( DRWShadingGroup * shgroup,
int groups_ref[3] )
Warning
this keeps the ref to groups_ref until it actually dispatch.

Definition at line 1105 of file draw_manager_data.cc.

References drw_command_compute_ref().

◆ DRW_shgroup_call_ex()

void DRW_shgroup_call_ex ( DRWShadingGroup * shgroup,
const Object * ob,
const float(*) obmat[4],
blender::gpu::Batch * geom,
bool bypass_culling,
void * user_data )

◆ DRW_shgroup_call_instance_range()

void DRW_shgroup_call_instance_range ( DRWShadingGroup * shgroup,
const Object * ob,
blender::gpu::Batch * geom,
uint i_sta,
uint i_num )

A count of 0 instance will use the default number of instance in the batch.

Definition at line 1084 of file draw_manager_data.cc.

References BLI_assert, drw_command_draw_intance_range(), drw_command_set_select_id(), drw_resource_handle(), DST, G, G_FLAG_PICKSEL, and DRWManager::select_id.

◆ DRW_shgroup_call_instances()

void DRW_shgroup_call_instances ( DRWShadingGroup * shgroup,
const Object * ob,
blender::gpu::Batch * geom,
uint count )
Warning
Only use with Shaders that have IN_PLACE_INSTANCES defined. TODO: Should be removed.

Definition at line 1190 of file draw_manager_data.cc.

References BLI_assert, count, drw_command_draw_instance(), drw_command_set_select_id(), drw_resource_handle(), DST, G, G_FLAG_PICKSEL, and DRWManager::select_id.

Referenced by OVERLAY_edit_curve_cache_populate().

◆ DRW_shgroup_call_instances_with_attrs()

void DRW_shgroup_call_instances_with_attrs ( DRWShadingGroup * shgroup,
const Object * ob,
blender::gpu::Batch * geom,
blender::gpu::Batch * inst_attributes )

◆ DRW_shgroup_call_procedural_indirect()

◆ DRW_shgroup_call_procedural_lines()

void DRW_shgroup_call_procedural_lines ( DRWShadingGroup * sh,
const Object * ob,
uint line_count )

◆ DRW_shgroup_call_procedural_points()

void DRW_shgroup_call_procedural_points ( DRWShadingGroup * sh,
const Object * ob,
uint point_count )

◆ DRW_shgroup_call_procedural_triangles()

◆ DRW_shgroup_call_range()

void DRW_shgroup_call_range ( DRWShadingGroup * shgroup,
const Object * ob,
blender::gpu::Batch * geom,
uint v_sta,
uint v_num )

◆ DRW_shgroup_call_sculpt()

◆ DRW_shgroup_call_sculpt_with_materials()

◆ DRW_shgroup_clear_framebuffer()

void DRW_shgroup_clear_framebuffer ( DRWShadingGroup * shgroup,
eGPUFrameBufferBits channels,
uchar r,
uchar g,
uchar b,
uchar a,
float depth,
uchar stencil )

Issue a clear command.

Definition at line 1954 of file draw_manager_data.cc.

References b, and drw_command_clear().

Referenced by GPENCIL_antialiasing_init().

◆ DRW_shgroup_create()

DRWShadingGroup * DRW_shgroup_create ( GPUShader * shader,
DRWPass * pass )

Definition at line 1907 of file draw_manager_data.cc.

References drw_shgroup_create_ex(), and drw_shgroup_init().

Referenced by basic_cache_init(), blender::draw::drw_curves_cache_update_compute(), drw_hair_particle_cache_update_compute(), external_cache_init(), GPENCIL_antialiasing_init(), GPENCIL_cache_init(), gpencil_layer_cache_add(), gpencil_vfx_pass_create(), grease_pencil_layer_cache_add(), OVERLAY_antialiasing_cache_init(), OVERLAY_armature_cache_init(), OVERLAY_background_cache_init(), OVERLAY_edit_curve_cache_init(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_gpencil_legacy_cache_init(), OVERLAY_edit_grease_pencil_cache_init(), OVERLAY_edit_lattice_cache_init(), OVERLAY_edit_mesh_cache_init(), OVERLAY_edit_particle_cache_init(), OVERLAY_edit_text_cache_init(), OVERLAY_edit_uv_cache_init(), OVERLAY_extra_cache_init(), OVERLAY_facing_cache_init(), OVERLAY_fade_cache_init(), OVERLAY_gpencil_legacy_cache_init(), OVERLAY_grease_pencil_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_image_camera_cache_populate(), OVERLAY_image_empty_cache_populate(), OVERLAY_metaball_cache_init(), OVERLAY_mode_transfer_cache_populate(), OVERLAY_motion_path_cache_init(), OVERLAY_outline_cache_init(), OVERLAY_paint_cache_init(), OVERLAY_particle_cache_init(), OVERLAY_sculpt_cache_init(), OVERLAY_sculpt_curves_cache_init(), OVERLAY_viewer_attribute_cache_init(), OVERLAY_volume_cache_init(), OVERLAY_volume_extra(), OVERLAY_wireframe_cache_init(), select_cache_init(), and select_debug_engine_init().

◆ DRW_shgroup_create_sub()

◆ DRW_shgroup_instance_format_array()

◆ DRW_shgroup_is_empty()

◆ DRW_shgroup_material_create()

◆ DRW_shgroup_state_disable()

◆ DRW_shgroup_state_enable()

◆ DRW_shgroup_stencil_mask()

void DRW_shgroup_stencil_mask ( DRWShadingGroup * shgroup,
uint mask )

TODO: remove this function. Obsolete version. mask is actually reference value.

Definition at line 1949 of file draw_manager_data.cc.

References drw_command_set_stencil_mask().

Referenced by gpencil_layer_cache_add(), and grease_pencil_layer_cache_add().

◆ DRW_shgroup_stencil_set()

void DRW_shgroup_stencil_set ( DRWShadingGroup * shgroup,
uint write_mask,
uint reference,
uint compare_mask )

Reminders:

  • (compare_mask & reference) is what is tested against (compare_mask & stencil_value) stencil_value being the value stored in the stencil buffer.
  • (write-mask & reference) is what gets written if the test condition is fulfilled.

Definition at line 1941 of file draw_manager_data.cc.

References drw_command_set_stencil_mask().

◆ DRW_shgroup_storage_block_ex()

void DRW_shgroup_storage_block_ex ( DRWShadingGroup * shgroup,
const char * name,
const GPUStorageBuf *ssbo DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_shgroup_storage_block_ref_ex()

void DRW_shgroup_storage_block_ref_ex ( DRWShadingGroup * shgroup,
const char * name,
GPUStorageBuf **ssbo DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_shgroup_transform_feedback_create()

◆ DRW_shgroup_uniform_block_ex()

void DRW_shgroup_uniform_block_ex ( DRWShadingGroup * shgroup,
const char * name,
const GPUUniformBuf *ubo DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_shgroup_uniform_block_ref_ex()

void DRW_shgroup_uniform_block_ref_ex ( DRWShadingGroup * shgroup,
const char * name,
GPUUniformBuf **ubo DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_shgroup_uniform_bool()

void DRW_shgroup_uniform_bool ( DRWShadingGroup * shgroup,
const char * name,
const int * value,
int arraysize )

Definition at line 389 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT.

Referenced by GPENCIL_cache_init(), and OVERLAY_edit_uv_cache_init().

◆ DRW_shgroup_uniform_bool_copy()

◆ DRW_shgroup_uniform_float()

void DRW_shgroup_uniform_float ( DRWShadingGroup * shgroup,
const char * name,
const float * value,
int arraysize )

Definition at line 398 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_FLOAT.

Referenced by OVERLAY_edit_uv_cache_init().

◆ DRW_shgroup_uniform_float_copy()

◆ DRW_shgroup_uniform_image()

void DRW_shgroup_uniform_image ( DRWShadingGroup * shgroup,
const char * name,
const GPUTexture * tex )

◆ DRW_shgroup_uniform_image_ref()

void DRW_shgroup_uniform_image_ref ( DRWShadingGroup * shgroup,
const char * name,
GPUTexture ** tex )

◆ DRW_shgroup_uniform_int()

◆ DRW_shgroup_uniform_int_copy()

◆ DRW_shgroup_uniform_ivec2()

void DRW_shgroup_uniform_ivec2 ( DRWShadingGroup * shgroup,
const char * name,
const int * value,
int arraysize )

Definition at line 438 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT.

◆ DRW_shgroup_uniform_ivec2_copy()

void DRW_shgroup_uniform_ivec2_copy ( DRWShadingGroup * shgroup,
const char * name,
const int * value )

Definition at line 477 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT_COPY.

◆ DRW_shgroup_uniform_ivec3()

void DRW_shgroup_uniform_ivec3 ( DRWShadingGroup * shgroup,
const char * name,
const int * value,
int arraysize )

Definition at line 446 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT.

◆ DRW_shgroup_uniform_ivec3_copy()

void DRW_shgroup_uniform_ivec3_copy ( DRWShadingGroup * shgroup,
const char * name,
const int * value )

Definition at line 482 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT_COPY.

Referenced by OVERLAY_volume_extra().

◆ DRW_shgroup_uniform_ivec4()

void DRW_shgroup_uniform_ivec4 ( DRWShadingGroup * shgroup,
const char * name,
const int * value,
int arraysize )

Definition at line 454 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT.

Referenced by OVERLAY_edit_mesh_cache_init().

◆ DRW_shgroup_uniform_ivec4_copy()

void DRW_shgroup_uniform_ivec4_copy ( DRWShadingGroup * shgroup,
const char * name,
const int * value )

◆ DRW_shgroup_uniform_mat3()

void DRW_shgroup_uniform_mat3 ( DRWShadingGroup * shgroup,
const char * name,
const float(*) value[3] )

Definition at line 462 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_FLOAT.

◆ DRW_shgroup_uniform_mat4()

void DRW_shgroup_uniform_mat4 ( DRWShadingGroup * shgroup,
const char * name,
const float(*) value[4] )

Definition at line 467 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_FLOAT.

◆ DRW_shgroup_uniform_mat4_copy()

◆ DRW_shgroup_uniform_texture()

◆ DRW_shgroup_uniform_texture_ex()

void DRW_shgroup_uniform_texture_ex ( DRWShadingGroup * shgroup,
const char * name,
const GPUTexture * tex,
GPUSamplerState sampler_state )

◆ DRW_shgroup_uniform_texture_ref()

◆ DRW_shgroup_uniform_texture_ref_ex()

void DRW_shgroup_uniform_texture_ref_ex ( DRWShadingGroup * shgroup,
const char * name,
GPUTexture ** tex,
GPUSamplerState sampler_state )

◆ DRW_shgroup_uniform_vec2()

void DRW_shgroup_uniform_vec2 ( DRWShadingGroup * shgroup,
const char * name,
const float * value,
int arraysize )

Definition at line 406 of file draw_manager_data.cc.

References drw_shgroup_uniform(), and DRW_UNIFORM_FLOAT.

◆ DRW_shgroup_uniform_vec2_copy()

◆ DRW_shgroup_uniform_vec3()

void DRW_shgroup_uniform_vec3 ( DRWShadingGroup * shgroup,
const char * name,
const float * value,
int arraysize )

◆ DRW_shgroup_uniform_vec3_copy()

◆ DRW_shgroup_uniform_vec4()

void DRW_shgroup_uniform_vec4 ( DRWShadingGroup * shgroup,
const char * name,
const float * value,
int arraysize )

◆ DRW_shgroup_uniform_vec4_copy()

◆ DRW_shgroup_vertex_buffer_ex()

void DRW_shgroup_vertex_buffer_ex ( DRWShadingGroup * shgroup,
const char * name,
blender::gpu::VertBuf *vertex_buffer DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_shgroup_vertex_buffer_ref_ex()

void DRW_shgroup_vertex_buffer_ref_ex ( DRWShadingGroup * shgroup,
const char * name,
blender::gpu::VertBuf **vertex_buffer DRW_DEBUG_FILE_LINE_ARGS )

◆ DRW_state_draw_background()

bool DRW_state_draw_background ( )

Whether we should render the background

Definition at line 3035 of file draw_manager_c.cc.

References DRWManager::draw_background, DST, and DRWManager::options.

Referenced by blender::draw::overlay::Background::begin_sync(), and OVERLAY_background_cache_init().

◆ DRW_state_draw_support()

bool DRW_state_draw_support ( )

Should draw support elements Objects center, selection outline, probe data, ...

Definition at line 3028 of file draw_manager_c.cc.

References DRWManager::draw_ctx, DRW_state_is_scene_render(), DST, View3D::flag2, DRWContextState::v3d, and V3D_HIDE_OVERLAYS.

Referenced by blender::eevee::VolumeProbeModule::init(), and blender::eevee::PlanarProbeModule::set_view().

◆ DRW_state_is_depth()

◆ DRW_state_is_fbo()

◆ DRW_state_is_image_render()

◆ DRW_state_is_material_select()

bool DRW_state_is_material_select ( )

◆ DRW_state_is_navigating()

bool DRW_state_is_navigating ( )

◆ DRW_state_is_painting()

bool DRW_state_is_painting ( )

Is the user painting?

Definition at line 3016 of file draw_manager_c.cc.

References DRWManager::draw_ctx, DST, RegionView3D::rflag, DRWContextState::rv3d, and RV3D_PAINTING.

Referenced by blender::eevee::Instance::is_painting().

◆ DRW_state_is_playback()

◆ DRW_state_is_scene_render()

◆ DRW_state_is_select()

◆ DRW_state_is_viewport_image_render()

◆ DRW_state_lock()

void DRW_state_lock ( DRWState state)

◆ DRW_state_reset()

◆ DRW_state_reset_ex()

void DRW_state_reset_ex ( DRWState state)

Reset state to not interfere with other UI draw-call.

Definition at line 262 of file draw_manager_exec.cc.

References drw_state_set(), DST, DRWManager::state, and state.

Referenced by DRW_state_reset(), external_draw_scene_do_image(), and external_draw_scene_do_v3d().

◆ DRW_state_show_text()

◆ DRW_texture_create_1d()

GPUTexture * DRW_texture_create_1d ( int w,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_1d_ex()

GPUTexture * DRW_texture_create_1d_ex ( int w,
eGPUTextureFormat format,
eGPUTextureUsage usage_flags,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_2d()

GPUTexture * DRW_texture_create_2d ( int w,
int h,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_2d_array()

GPUTexture * DRW_texture_create_2d_array ( int w,
int h,
int d,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_2d_array_ex()

GPUTexture * DRW_texture_create_2d_array_ex ( int w,
int h,
int d,
eGPUTextureFormat format,
eGPUTextureUsage usage_flags,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_2d_ex()

◆ DRW_texture_create_3d()

GPUTexture * DRW_texture_create_3d ( int w,
int h,
int d,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_3d_ex()

GPUTexture * DRW_texture_create_3d_ex ( int w,
int h,
int d,
eGPUTextureFormat format,
eGPUTextureUsage usage_flags,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_cube()

GPUTexture * DRW_texture_create_cube ( int w,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_cube_array()

GPUTexture * DRW_texture_create_cube_array ( int w,
int d,
eGPUTextureFormat format,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_cube_array_ex()

GPUTexture * DRW_texture_create_cube_array_ex ( int w,
int d,
eGPUTextureFormat format,
eGPUTextureUsage usage_flags,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_create_cube_ex()

GPUTexture * DRW_texture_create_cube_ex ( int w,
eGPUTextureFormat format,
eGPUTextureUsage usage_flags,
DRWTextureFlag flags,
const float * fpixels )

◆ DRW_texture_ensure_2d()

void DRW_texture_ensure_2d ( GPUTexture ** tex,
int w,
int h,
eGPUTextureFormat format,
DRWTextureFlag flags )

Definition at line 255 of file draw_manager_texture.cc.

References DRW_texture_ensure_2d_ex(), GPU_TEXTURE_USAGE_GENERAL, tex, and w().

Referenced by GPENCIL_cache_init().

◆ DRW_texture_ensure_2d_ex()

void DRW_texture_ensure_2d_ex ( GPUTexture ** tex,
int w,
int h,
eGPUTextureFormat format,
eGPUTextureUsage usage,
DRWTextureFlag flags )

Definition at line 243 of file draw_manager_texture.cc.

References DRW_texture_create_2d_ex(), tex, and w().

Referenced by DRW_texture_ensure_2d().

◆ DRW_texture_ensure_fullscreen_2d()

◆ DRW_texture_ensure_fullscreen_2d_ex()

void DRW_texture_ensure_fullscreen_2d_ex ( GPUTexture ** tex,
eGPUTextureFormat format,
eGPUTextureUsage usage,
DRWTextureFlag flags )

◆ DRW_texture_free()

void DRW_texture_free ( GPUTexture * tex)

Definition at line 266 of file draw_manager_texture.cc.

References GPU_texture_free(), and tex.

◆ DRW_texture_generate_mipmaps()

void DRW_texture_generate_mipmaps ( GPUTexture * tex)

Definition at line 261 of file draw_manager_texture.cc.

References GPU_texture_update_mipmap_chain(), and tex.

◆ DRW_texture_pool_query_2d()

GPUTexture * DRW_texture_pool_query_2d ( int w,
int h,
eGPUTextureFormat format,
DrawEngineType * engine_type )

Textures from DRW_texture_pool_query_* have the options DRW_TEX_FILTER for color float textures, and no options for depth textures and integer textures.

Definition at line 203 of file draw_manager_texture.cc.

References DRW_texture_pool_query_2d_ex(), GPU_TEXTURE_USAGE_GENERAL, and w().

Referenced by blender::draw::compositor::TexturePool::allocate_texture(), and GPENCIL_cache_finish().

◆ DRW_texture_pool_query_2d_ex()

◆ DRW_texture_pool_query_fullscreen()

GPUTexture * DRW_texture_pool_query_fullscreen ( eGPUTextureFormat format,
DrawEngineType * engine_type )

◆ DRW_texture_pool_query_fullscreen_ex()

GPUTexture * DRW_texture_pool_query_fullscreen_ex ( eGPUTextureFormat format,
eGPUTextureUsage usage,
DrawEngineType * engine_type )

◆ DRW_view_clip_planes_set()

void DRW_view_clip_planes_set ( DRWView * view,
float(*) planes[4],
int plane_len )

This only works if DRWPasses have been tagged with DRW_STATE_CLIP_PLANES, and if the shaders have support for it (see usage of gl_ClipDistance).

Note
planes must be in world space.

Definition at line 2345 of file draw_manager_data.cc.

References BLI_assert, and MAX_CLIP_PLANES.

Referenced by drw_manager_init().

◆ DRW_view_create()

DRWView * DRW_view_create ( const float viewmat[4][4],
const float winmat[4][4],
const float(*) culling_viewmat[4],
const float(*) culling_winmat[4],
DRWCallVisibilityFn * visibility_fn )

◆ DRW_view_create_sub()

DRWView * DRW_view_create_sub ( const DRWView * parent_view,
const float viewmat[4][4],
const float winmat[4][4] )

Create a view with culling done by another view.

Definition at line 2224 of file draw_manager_data.cc.

References BLI_memblock_alloc(), DRW_view_update_sub(), DST, DRWView::parent, view, DRWData::views, and DRWManager::vmempool.

Referenced by DRW_view_create_with_zoffset().

◆ DRW_view_default_get()

◆ DRW_view_default_set()

void DRW_view_default_set ( const DRWView * view)

MUST only be called once per render and only in render mode. Sets default view.

Definition at line 2339 of file draw_manager_data.cc.

References BLI_assert, DST, and DRWManager::view_default.

Referenced by blender::draw::DRW_curves_update(), GPENCIL_render_init(), and workbench_render_to_image().

◆ DRW_view_far_distance_get()

◆ DRW_view_frustum_corners_get()

void DRW_view_frustum_corners_get ( const DRWView * view,
BoundBox * corners )
Returns
world space frustum corners.

Definition at line 2354 of file draw_manager_data.cc.

◆ DRW_view_frustum_planes_get()

void DRW_view_frustum_planes_get ( const DRWView * view,
float planes[6][4] )
Returns
world space frustum sides as planes. See draw_frustum_culling_planes_calc() for the plane order.

Definition at line 2359 of file draw_manager_data.cc.

Referenced by drw_sculpt_get_frustum_planes(), and blender::draw::sculpt_batches_get_ex().

◆ DRW_view_get_active()

const DRWView * DRW_view_get_active ( )

◆ DRW_view_is_persp_get()

◆ DRW_view_layer_engine_data_ensure()

void ** DRW_view_layer_engine_data_ensure ( DrawEngineType * engine_type,
void(* callback )(void *storage) )

◆ DRW_view_layer_engine_data_ensure_ex()

void ** DRW_view_layer_engine_data_ensure_ex ( ViewLayer * view_layer,
DrawEngineType * engine_type,
void(* callback )(void *storage) )

◆ DRW_view_layer_engine_data_get()

void * DRW_view_layer_engine_data_get ( DrawEngineType * engine_type)

◆ DRW_view_near_distance_get()

float DRW_view_near_distance_get ( const DRWView * view)

These are in view-space, so negative if in perspective. Extract near and far clip distance from the projection matrix.

Definition at line 2370 of file draw_manager_data.cc.

References DRW_view_is_persp_get(), DST, view, and DRWManager::view_default.

Referenced by GPENCIL_render_init(), GPENCIL_render_result_z(), blender::eevee::Camera::sync(), and write_render_z_output().

◆ DRW_view_persmat_get()

◆ DRW_view_reset()

void DRW_view_reset ( )
Warning
Only use in render AND only if you are going to set view_default again.

Definition at line 2332 of file draw_manager_data.cc.

References DST, DRWManager::view_active, DRWManager::view_default, and DRWManager::view_previous.

Referenced by DRW_render_gpencil(), and DRW_render_to_image().

◆ DRW_view_set_active()

◆ DRW_view_update()

void DRW_view_update ( DRWView * view,
const float viewmat[4][4],
const float winmat[4][4],
const float(*) culling_viewmat[4],
const float(*) culling_winmat[4] )

◆ DRW_view_update_sub()

void DRW_view_update_sub ( DRWView * view,
const float viewmat[4][4],
const float winmat[4][4] )

Update matrices of a view created with DRW_view_create_sub.

Definition at line 2249 of file draw_manager_data.cc.

References BLI_assert, draw_view_matrix_state_update(), and is_negative_m4().

Referenced by DRW_view_create_sub().

◆ DRW_view_viewmat_get()

◆ DRW_view_winmat_get()

◆ DRW_viewport_framebuffer_list_get()

◆ DRW_viewport_invert_size_get()

◆ DRW_viewport_pass_texture_get()

◆ DRW_viewport_pixelsize_get()

const float * DRW_viewport_pixelsize_get ( )

Definition at line 302 of file draw_manager_c.cc.

References DST, and DRWManager::pixsize.

Referenced by DRW_globals_update().

◆ DRW_viewport_request_redraw()

◆ DRW_viewport_size_get()

◆ DRW_viewport_texture_list_get()