Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
DRW_render.h File Reference
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_material.h"
#include "BKE_scene.h"
#include "BLT_translation.h"
#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.h"
#include "GPU_material.h"
#include "GPU_primitive.h"
#include "GPU_shader.h"
#include "GPU_storage_buffer.h"
#include "GPU_texture.h"
#include "GPU_uniform_buffer.h"
#include "draw_cache.h"
#include "draw_common.h"
#include "draw_view.h"
#include "draw_debug.h"
#include "draw_manager_profiling.h"
#include "draw_view_data.h"
#include "MEM_guardedalloc.h"
#include "RE_engine.h"
#include "DEG_depsgraph.h"

Go to the source code of this file.

Classes

struct  BoundSphere
 
struct  DrawEngineDataSize
 
struct  DrawEngineType
 
struct  DRWInstanceAttrFormat
 
struct  DRWContextState
 

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_create(vert, geom, frag, defines)    DRW_shader_create_ex(vert, geom, frag, defines, __func__)
 
#define DRW_shader_create_with_lib(vert, geom, frag, lib, defines)    DRW_shader_create_with_lib_ex(vert, geom, frag, lib, defines, __func__)
 
#define DRW_shader_create_with_shaderlib(vert, geom, frag, lib, defines)    DRW_shader_create_with_shaderlib_ex(vert, geom, frag, lib, defines, __func__)
 
#define DRW_shader_create_fullscreen(frag, defines)    DRW_shader_create_fullscreen_ex(frag, defines, __func__)
 
#define DRW_shader_create_fullscreen_with_shaderlib(frag, lib, defines)    DRW_shader_create_fullscreen_with_shaderlib_ex(frag, lib, defines, __func__)
 
#define DRW_SHADER_FREE_SAFE(shader)
 
#define DRW_SHADER_LIB_ADD(lib, lib_name)    DRW_shader_library_add_file(lib, datatoc_##lib_name##_glsl, STRINGIFY(lib_name) ".glsl")
 
#define DRW_SHADER_LIB_FREE_SAFE(lib)
 
#define DRW_STATE_DEFAULT    (DRW_STATE_WRITE_DEPTH | DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL)
 
#define DRW_STATE_BLEND_ENABLED
 
#define DRW_STATE_RASTERIZER_ENABLED
 
#define DRW_STATE_DEPTH_TEST_ENABLED
 
#define DRW_STATE_STENCIL_TEST_ENABLED    (DRW_STATE_STENCIL_ALWAYS | DRW_STATE_STENCIL_EQUAL | DRW_STATE_STENCIL_NEQUAL)
 
#define DRW_STATE_WRITE_STENCIL_ENABLED
 
#define DRW_shgroup_instance_format(format, ...)
 
#define DRW_shgroup_call(shgroup, geom, ob)    DRW_shgroup_call_ex(shgroup, ob, NULL, geom, false, NULL)
 
#define DRW_shgroup_call_obmat(shgroup, geom, obmat)    DRW_shgroup_call_ex(shgroup, NULL, obmat, geom, false, NULL)
 
#define DRW_shgroup_call_with_callback(shgroup, geom, ob, user_data)    DRW_shgroup_call_ex(shgroup, ob, NULL, geom, false, user_data)
 
#define DRW_shgroup_call_no_cull(shgroup, geom, ob)    DRW_shgroup_call_ex(shgroup, ob, NULL, geom, true, NULL)
 
#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 struct BoundSphere BoundSphere
 
typedef char DRWViewportEmptyList
 
typedef struct DrawEngineDataSize DrawEngineDataSize
 
typedef struct DrawEngineType DrawEngineType
 
typedef struct DRWInstanceAttrFormat DRWInstanceAttrFormat
 
typedef bool() DRWCallVisibilityFn(bool vis_in, void *user_data)
 
typedef struct DRWContextState DRWContextState
 

Enumerations

enum  DRWTextureFlag { DRW_TEX_FILTER = (1 << 0) , DRW_TEX_WRAP = (1 << 1) , DRW_TEX_COMPARE = (1 << 2) , DRW_TEX_MIPMAP = (1 << 3) }
 
enum  DRWState {
  DRW_STATE_NO_DRAW = 0 , DRW_STATE_WRITE_DEPTH = (1 << 0) , DRW_STATE_WRITE_COLOR = (1 << 1) , DRW_STATE_WRITE_STENCIL = (1 << 2) ,
  DRW_STATE_WRITE_STENCIL_SHADOW_PASS = (2 << 2) , DRW_STATE_WRITE_STENCIL_SHADOW_FAIL = (3 << 2) , DRW_STATE_DEPTH_ALWAYS = (1 << 4) , DRW_STATE_DEPTH_LESS = (2 << 4) ,
  DRW_STATE_DEPTH_LESS_EQUAL = (3 << 4) , DRW_STATE_DEPTH_EQUAL = (4 << 4) , DRW_STATE_DEPTH_GREATER = (5 << 4) , DRW_STATE_DEPTH_GREATER_EQUAL = (6 << 4) ,
  DRW_STATE_CULL_BACK = (1 << 7) , DRW_STATE_CULL_FRONT = (1 << 8) , DRW_STATE_STENCIL_ALWAYS = (1 << 9) , DRW_STATE_STENCIL_EQUAL = (2 << 9) ,
  DRW_STATE_STENCIL_NEQUAL = (3 << 9) , DRW_STATE_BLEND_ADD = (1 << 11) , DRW_STATE_BLEND_ADD_FULL = (2 << 11) , DRW_STATE_BLEND_ALPHA = (3 << 11) ,
  DRW_STATE_BLEND_ALPHA_PREMUL = (4 << 11) , DRW_STATE_BLEND_BACKGROUND = (5 << 11) , DRW_STATE_BLEND_OIT = (6 << 11) , DRW_STATE_BLEND_MUL = (7 << 11) ,
  DRW_STATE_BLEND_SUB = (8 << 11) , DRW_STATE_BLEND_CUSTOM = (9 << 11) , DRW_STATE_LOGIC_INVERT = (10 << 11) , DRW_STATE_BLEND_ALPHA_UNDER_PREMUL = (11 << 11) ,
  DRW_STATE_IN_FRONT_SELECT = (1 << 27) , DRW_STATE_SHADOW_OFFSET = (1 << 28) , DRW_STATE_CLIP_PLANES = (1 << 29) , DRW_STATE_FIRST_VERTEX_CONVENTION = (1 << 30) ,
  DRW_STATE_PROGRAM_POINT_SIZE = (1u << 31)
}
 
enum  eDRWAttrType { DRW_ATTR_INT , DRW_ATTR_FLOAT }
 

Functions

struct GPUTextureDRW_texture_pool_query_2d (int w, int h, eGPUTextureFormat format, DrawEngineType *engine_type)
 
struct GPUTextureDRW_texture_pool_query_fullscreen (eGPUTextureFormat format, DrawEngineType *engine_type)
 
struct GPUTextureDRW_texture_create_1d (int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
struct GPUTextureDRW_texture_create_2d (int w, int h, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
struct GPUTextureDRW_texture_create_2d_array (int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
struct GPUTextureDRW_texture_create_3d (int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
struct GPUTextureDRW_texture_create_cube (int w, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
struct GPUTextureDRW_texture_create_cube_array (int w, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
 
void DRW_texture_ensure_fullscreen_2d (struct GPUTexture **tex, eGPUTextureFormat format, DRWTextureFlag flags)
 
void DRW_texture_ensure_2d (struct GPUTexture **tex, int w, int h, eGPUTextureFormat format, DRWTextureFlag flags)
 
void DRW_texture_generate_mipmaps (struct GPUTexture *tex)
 
void DRW_texture_free (struct GPUTexture *tex)
 
struct GPUShaderDRW_shader_create_ex (const char *vert, const char *geom, const char *frag, const char *defines, const char *name)
 
struct GPUShaderDRW_shader_create_with_lib_ex (const char *vert, const char *geom, const char *frag, const char *lib, const char *defines, const char *name)
 
struct GPUShaderDRW_shader_create_with_shaderlib_ex (const char *vert, const char *geom, const char *frag, const DRWShaderLibrary *lib, const char *defines, const char *name)
 
struct GPUShaderDRW_shader_create_with_transform_feedback (const char *vert, const char *geom, const char *defines, eGPUShaderTFBType prim_type, const char **varying_names, int varying_count)
 
struct GPUShaderDRW_shader_create_fullscreen_ex (const char *frag, const char *defines, const char *name)
 
struct GPUShaderDRW_shader_create_fullscreen_with_shaderlib_ex (const char *frag, const DRWShaderLibrary *lib, const char *defines, const char *name)
 
struct GPUMaterialDRW_shader_from_world (struct World *wo, struct bNodeTree *ntree, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk)
 
struct GPUMaterialDRW_shader_from_material (struct Material *ma, struct bNodeTree *ntree, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk)
 
void DRW_shader_free (struct GPUShader *shader)
 
DRWShaderLibraryDRW_shader_library_create (void)
 
void DRW_shader_library_add_file (DRWShaderLibrary *lib, const char *lib_code, const char *lib_name)
 
char * DRW_shader_library_create_shader_string (const DRWShaderLibrary *lib, const char *shader_code)
 
void DRW_shader_library_free (DRWShaderLibrary *lib)
 
 ENUM_OPERATORS (DRWState, DRW_STATE_PROGRAM_POINT_SIZE)
 
struct GPUVertFormatDRW_shgroup_instance_format_array (const DRWInstanceAttrFormat attrs[], int arraysize)
 
DRWShadingGroupDRW_shgroup_create (struct GPUShader *shader, DRWPass *pass)
 
DRWShadingGroupDRW_shgroup_create_sub (DRWShadingGroup *shgroup)
 
DRWShadingGroupDRW_shgroup_material_create (struct GPUMaterial *material, DRWPass *pass)
 
DRWShadingGroupDRW_shgroup_transform_feedback_create (struct GPUShader *shader, DRWPass *pass, struct GPUVertBuf *tf_target)
 
void DRW_shgroup_add_material_resources (DRWShadingGroup *grp, struct GPUMaterial *material)
 
void DRW_shgroup_call_ex (DRWShadingGroup *shgroup, Object *ob, float(*obmat)[4], struct GPUBatch *geom, bool bypass_culling, void *user_data)
 
void DRW_shgroup_call_range (DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint v_sta, uint v_num)
 
void DRW_shgroup_call_instance_range (DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *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, Object *ob, uint point_count)
 
void DRW_shgroup_call_procedural_lines (DRWShadingGroup *sh, Object *ob, uint line_count)
 
void DRW_shgroup_call_procedural_triangles (DRWShadingGroup *sh, Object *ob, uint tri_count)
 
void DRW_shgroup_call_instances (DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint count)
 
void DRW_shgroup_call_instances_with_attrs (DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, struct GPUBatch *inst_attributes)
 
void DRW_shgroup_call_sculpt (DRWShadingGroup *sh, Object *ob, bool wire, bool mask)
 
void DRW_shgroup_call_sculpt_with_materials (DRWShadingGroup **sh, int num_sh, Object *ob)
 
DRWCallBufferDRW_shgroup_call_buffer (DRWShadingGroup *shgroup, struct GPUVertFormat *format, GPUPrimType prim_type)
 
DRWCallBufferDRW_shgroup_call_buffer_instance (DRWShadingGroup *shgroup, struct GPUVertFormat *format, struct GPUBatch *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 struct GPUTexture *tex, eGPUSamplerState sampler_state)
 
void DRW_shgroup_uniform_texture_ref_ex (DRWShadingGroup *shgroup, const char *name, GPUTexture **tex, eGPUSamplerState sampler_state)
 
void DRW_shgroup_uniform_texture (DRWShadingGroup *shgroup, const char *name, const struct GPUTexture *tex)
 
void DRW_shgroup_uniform_texture_ref (DRWShadingGroup *shgroup, const char *name, struct GPUTexture **tex)
 
void DRW_shgroup_uniform_block_ex (DRWShadingGroup *shgroup, const char *name, const struct GPUUniformBuf *ubo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_uniform_block_ref_ex (DRWShadingGroup *shgroup, const char *name, struct GPUUniformBuf **ubo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_storage_block_ex (DRWShadingGroup *shgroup, const char *name, const struct GPUStorageBuf *ssbo DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_storage_block_ref_ex (DRWShadingGroup *shgroup, const char *name, struct 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, struct GPUVertBuf *vertex_buffer DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_vertex_buffer_ref_ex (DRWShadingGroup *shgroup, const char *name, struct GPUVertBuf **vertex_buffer DRW_DEBUG_FILE_LINE_ARGS)
 
void DRW_shgroup_buffer_texture (DRWShadingGroup *shgroup, const char *name, struct GPUVertBuf *vertex_buffer)
 
void DRW_shgroup_buffer_texture_ref (DRWShadingGroup *shgroup, const char *name, struct GPUVertBuf **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 *userData, DRWShadingGroup *shgroup), void *userData)
 
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)
 
void DRW_view_default_set (const DRWView *view)
 
void DRW_view_reset (void)
 
void DRW_view_set_active (const DRWView *view)
 
const DRWViewDRW_view_get_active (void)
 
void DRW_view_clip_planes_set (DRWView *view, float(*planes)[4], int plane_len)
 
void DRW_view_camtexco_set (DRWView *view, float texco[4])
 
void DRW_view_camtexco_get (const DRWView *view, float r_texco[4])
 
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 (void)
 
const floatDRW_viewport_invert_size_get (void)
 
const floatDRW_viewport_screenvecs_get (void)
 
const floatDRW_viewport_pixelsize_get (void)
 
struct DefaultFramebufferListDRW_viewport_framebuffer_list_get (void)
 
struct DefaultTextureListDRW_viewport_texture_list_get (void)
 
void DRW_viewport_request_redraw (void)
 
void DRW_render_to_image (struct RenderEngine *engine, struct Depsgraph *depsgraph)
 
void DRW_render_object_iter (void *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph, void(*callback)(void *vedata, struct Object *ob, struct RenderEngine *engine, struct Depsgraph *depsgraph))
 
void DRW_render_instance_buffer_finish (void)
 
void DRW_render_set_time (struct RenderEngine *engine, struct Depsgraph *depsgraph, int frame, float subframe)
 
void DRW_render_viewport_size_set (const int size[2])
 
void DRW_custom_pipeline (DrawEngineType *draw_engine_type, struct Depsgraph *depsgraph, void(*callback)(void *vedata, void *user_data), void *user_data)
 
void DRW_cache_restart (void)
 
voidDRW_view_layer_engine_data_get (DrawEngineType *engine_type)
 
void ** DRW_view_layer_engine_data_ensure_ex (struct 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 struct Object *ob)
 
bool DRW_object_is_in_edit_mode (const struct Object *ob)
 
int DRW_object_visibility_in_active_context (const struct Object *ob)
 
bool DRW_object_use_hide_faces (const struct Object *ob)
 
bool DRW_object_is_visible_psys_in_active_context (const struct Object *object, const struct ParticleSystem *psys)
 
struct ObjectDRW_object_get_dupli_parent (const struct Object *ob)
 
struct DupliObjectDRW_object_get_dupli (const struct 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)
 
void DRW_draw_callbacks_post_scene (void)
 
void DRW_state_reset_ex (DRWState state)
 
void DRW_state_reset (void)
 
void DRW_state_lock (DRWState state)
 
void DRW_select_load_id (uint id)
 
bool DRW_state_is_fbo (void)
 
bool DRW_state_is_select (void)
 
bool DRW_state_is_material_select (void)
 
bool DRW_state_is_depth (void)
 
bool DRW_state_is_image_render (void)
 
bool DRW_state_is_scene_render (void)
 
bool DRW_state_is_opengl_render (void)
 
bool DRW_state_is_playback (void)
 
bool DRW_state_is_navigating (void)
 
bool DRW_state_show_text (void)
 
bool DRW_state_draw_support (void)
 
bool DRW_state_draw_background (void)
 
const DRWContextStateDRW_context_state_get (void)
 

Macro Definition Documentation

◆ DRW_buffer_add_entry

#define DRW_buffer_add_entry (   buffer,
  ... 
)
Value:
do { \
const void *array[] = {__VA_ARGS__}; \
DRW_buffer_add_entry_array(buffer, array, (sizeof(array) / sizeof(*array))); \
} while (0)
ccl_global float * buffer

Definition at line 486 of file DRW_render.h.

◆ DRW_DEBUG_FILE_LINE_ARGS

#define DRW_DEBUG_FILE_LINE_ARGS

Definition at line 62 of file DRW_render.h.

◆ DRW_PASS_CREATE

#define DRW_PASS_CREATE (   pass,
  state 
)    (pass = DRW_pass_create(#pass, state))

Definition at line 690 of file DRW_render.h.

◆ DRW_PASS_INSTANCE_CREATE

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

Definition at line 691 of file DRW_render.h.

◆ DRW_shader_create

#define DRW_shader_create (   vert,
  geom,
  frag,
  defines 
)     DRW_shader_create_ex(vert, geom, frag, defines, __func__)

Definition at line 228 of file DRW_render.h.

◆ DRW_shader_create_fullscreen

#define DRW_shader_create_fullscreen (   frag,
  defines 
)     DRW_shader_create_fullscreen_ex(frag, defines, __func__)

Definition at line 234 of file DRW_render.h.

◆ DRW_shader_create_fullscreen_with_shaderlib

#define DRW_shader_create_fullscreen_with_shaderlib (   frag,
  lib,
  defines 
)     DRW_shader_create_fullscreen_with_shaderlib_ex(frag, lib, defines, __func__)

Definition at line 236 of file DRW_render.h.

◆ DRW_shader_create_with_lib

#define DRW_shader_create_with_lib (   vert,
  geom,
  frag,
  lib,
  defines 
)     DRW_shader_create_with_lib_ex(vert, geom, frag, lib, defines, __func__)

Definition at line 230 of file DRW_render.h.

◆ DRW_shader_create_with_shaderlib

#define DRW_shader_create_with_shaderlib (   vert,
  geom,
  frag,
  lib,
  defines 
)     DRW_shader_create_with_shaderlib_ex(vert, geom, frag, lib, defines, __func__)

Definition at line 232 of file DRW_render.h.

◆ DRW_SHADER_FREE_SAFE

#define DRW_SHADER_FREE_SAFE (   shader)
Value:
do { \
if (shader != NULL) { \
DRW_shader_free(shader); \
shader = NULL; \
} \
} while (0)

Definition at line 254 of file DRW_render.h.

◆ DRW_SHADER_LIB_ADD

#define DRW_SHADER_LIB_ADD (   lib,
  lib_name 
)     DRW_shader_library_add_file(lib, datatoc_##lib_name##_glsl, STRINGIFY(lib_name) ".glsl")

Definition at line 270 of file DRW_render.h.

◆ DRW_SHADER_LIB_FREE_SAFE

#define DRW_SHADER_LIB_FREE_SAFE (   lib)
Value:
do { \
if (lib != NULL) { \
DRW_shader_library_free(lib); \
lib = NULL; \
} \
} while (0)
DRWShaderLibrary * lib

Definition at line 281 of file DRW_render.h.

◆ DRW_shgroup_call

#define DRW_shgroup_call (   shgroup,
  geom,
  ob 
)     DRW_shgroup_call_ex(shgroup, ob, NULL, geom, false, NULL)

If ob is NULL, unit modelmatrix is assumed and culling is bypassed.

Definition at line 414 of file DRW_render.h.

◆ DRW_shgroup_call_no_cull

#define DRW_shgroup_call_no_cull (   shgroup,
  geom,
  ob 
)     DRW_shgroup_call_ex(shgroup, ob, NULL, geom, true, NULL)

Same as DRW_shgroup_call but bypass culling even if ob is not NULL.

Definition at line 431 of file DRW_render.h.

◆ DRW_shgroup_call_obmat

#define DRW_shgroup_call_obmat (   shgroup,
  geom,
  obmat 
)     DRW_shgroup_call_ex(shgroup, NULL, obmat, geom, false, NULL)

Same as DRW_shgroup_call but override the obmat. Not culled.

Definition at line 420 of file DRW_render.h.

◆ DRW_shgroup_call_with_callback

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

Definition at line 425 of file DRW_render.h.

◆ DRW_shgroup_instance_format

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

Definition at line 381 of file DRW_render.h.

◆ DRW_shgroup_storage_block

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

Definition at line 655 of file DRW_render.h.

◆ 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 657 of file DRW_render.h.

◆ DRW_shgroup_uniform_block

#define DRW_shgroup_uniform_block (   shgroup,
  name,
  ubo 
)     DRW_shgroup_uniform_block_ex(shgroup, name, ubo)

Definition at line 651 of file DRW_render.h.

◆ 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 653 of file DRW_render.h.

◆ DRW_shgroup_vertex_buffer

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

Definition at line 647 of file DRW_render.h.

◆ 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 649 of file DRW_render.h.

◆ DRW_STATE_BLEND_ENABLED

#define DRW_STATE_BLEND_ENABLED
Value:
DRW_STATE_BLEND_ALPHA_PREMUL | DRW_STATE_BLEND_BACKGROUND | DRW_STATE_BLEND_OIT | \
@ DRW_STATE_BLEND_ALPHA
Definition: DRW_render.h:328
@ DRW_STATE_BLEND_ADD
Definition: DRW_render.h:324
@ DRW_STATE_BLEND_BACKGROUND
Definition: DRW_render.h:331
@ DRW_STATE_BLEND_SUB
Definition: DRW_render.h:334
@ DRW_STATE_BLEND_OIT
Definition: DRW_render.h:332
@ DRW_STATE_LOGIC_INVERT
Definition: DRW_render.h:337
@ DRW_STATE_BLEND_ADD_FULL
Definition: DRW_render.h:326
@ DRW_STATE_BLEND_CUSTOM
Definition: DRW_render.h:336

Definition at line 352 of file DRW_render.h.

◆ DRW_STATE_DEFAULT

Definition at line 350 of file DRW_render.h.

◆ DRW_STATE_DEPTH_TEST_ENABLED

#define DRW_STATE_DEPTH_TEST_ENABLED
Value:
@ DRW_STATE_DEPTH_LESS
Definition: DRW_render.h:310
@ DRW_STATE_DEPTH_GREATER_EQUAL
Definition: DRW_render.h:314
@ DRW_STATE_DEPTH_LESS_EQUAL
Definition: DRW_render.h:311
@ DRW_STATE_DEPTH_ALWAYS
Definition: DRW_render.h:309
@ DRW_STATE_DEPTH_GREATER
Definition: DRW_render.h:313

Definition at line 359 of file DRW_render.h.

◆ DRW_STATE_RASTERIZER_ENABLED

#define DRW_STATE_RASTERIZER_ENABLED
Value:
DRW_STATE_WRITE_STENCIL_SHADOW_PASS | DRW_STATE_WRITE_STENCIL_SHADOW_FAIL)
@ DRW_STATE_WRITE_STENCIL_SHADOW_FAIL
Definition: DRW_render.h:307
@ DRW_STATE_WRITE_DEPTH
Definition: DRW_render.h:302
@ DRW_STATE_WRITE_COLOR
Definition: DRW_render.h:303
@ DRW_STATE_WRITE_STENCIL
Definition: DRW_render.h:305

Definition at line 356 of file DRW_render.h.

◆ DRW_STATE_STENCIL_TEST_ENABLED

Definition at line 362 of file DRW_render.h.

◆ DRW_STATE_WRITE_STENCIL_ENABLED

#define DRW_STATE_WRITE_STENCIL_ENABLED
Value:
DRW_STATE_WRITE_STENCIL_SHADOW_FAIL)
@ DRW_STATE_WRITE_STENCIL_SHADOW_PASS
Definition: DRW_render.h:306

Definition at line 364 of file DRW_render.h.

◆ DRW_TEXTURE_FREE_SAFE

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

Definition at line 183 of file DRW_render.h.

◆ DRW_UBO_FREE_SAFE

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

Definition at line 191 of file DRW_render.h.

◆ DRW_VIEWPORT_DATA_SIZE

#define DRW_VIEWPORT_DATA_SIZE (   ty)
Value:
{ \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->fbl)), DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->txl)), \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->psl)), \
DRW_VIEWPORT_LIST_SIZE(*(((ty *)NULL)->stl)), \
}
#define DRW_VIEWPORT_LIST_SIZE(list)
Definition: DRW_render.h:92

Definition at line 96 of file DRW_render.h.

◆ DRW_VIEWPORT_LIST_SIZE

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

Definition at line 92 of file DRW_render.h.

Typedef Documentation

◆ BoundSphere

typedef struct BoundSphere BoundSphere

◆ DrawEngineDataSize

◆ DrawEngineType

◆ DRWCallBuffer

typedef struct DRWCallBuffer DRWCallBuffer

Definition at line 1 of file DRW_render.h.

◆ DRWCallVisibilityFn

typedef bool() DRWCallVisibilityFn(bool vis_in, void *user_data)

Return final visibility.

Definition at line 402 of file DRW_render.h.

◆ DRWContextState

◆ DRWInstanceAttrFormat

◆ DRWInterface

typedef struct DRWInterface DRWInterface

Definition at line 1 of file DRW_render.h.

◆ DRWPass

typedef struct DRWPass DRWPass

Definition at line 1 of file DRW_render.h.

◆ DRWShaderLibrary

Definition at line 1 of file DRW_render.h.

◆ DRWShadingGroup

Definition at line 1 of file DRW_render.h.

◆ DRWUniform

typedef struct DRWUniform DRWUniform

Definition at line 1 of file DRW_render.h.

◆ DRWView

typedef struct DRWView DRWView

Definition at line 1 of file DRW_render.h.

◆ DRWViewportEmptyList

typedef char DRWViewportEmptyList

Definition at line 90 of file DRW_render.h.

Enumeration Type Documentation

◆ DRWState

enum DRWState

DRWState is a bit-mask that stores the current render state and the desired render state. Based on the differences the minimum state changes can be invoked to setup the desired render state.

The Write Stencil, Stencil test, Depth test and Blend state options are mutual exclusive therefore they aren't ordered as a bit mask.

Enumerator
DRW_STATE_NO_DRAW 

To be used for compute passes.

DRW_STATE_WRITE_DEPTH 

Write mask

DRW_STATE_WRITE_COLOR 
DRW_STATE_WRITE_STENCIL 
DRW_STATE_WRITE_STENCIL_SHADOW_PASS 
DRW_STATE_WRITE_STENCIL_SHADOW_FAIL 
DRW_STATE_DEPTH_ALWAYS 

Depth test. These options are mutual exclusive and packed into 3 bits

DRW_STATE_DEPTH_LESS 
DRW_STATE_DEPTH_LESS_EQUAL 
DRW_STATE_DEPTH_EQUAL 
DRW_STATE_DEPTH_GREATER 
DRW_STATE_DEPTH_GREATER_EQUAL 
DRW_STATE_CULL_BACK 

Culling test

DRW_STATE_CULL_FRONT 
DRW_STATE_STENCIL_ALWAYS 

Stencil test. These options are mutually exclusive and packed into 2 bits.

DRW_STATE_STENCIL_EQUAL 
DRW_STATE_STENCIL_NEQUAL 
DRW_STATE_BLEND_ADD 

Blend state. These options are mutual exclusive and packed into 4 bits

DRW_STATE_BLEND_ADD_FULL 

Same as additive but let alpha accumulate without pre-multiply.

DRW_STATE_BLEND_ALPHA 

Standard alpha blending.

DRW_STATE_BLEND_ALPHA_PREMUL 

Use that if color is already pre-multiply by alpha.

DRW_STATE_BLEND_BACKGROUND 
DRW_STATE_BLEND_OIT 
DRW_STATE_BLEND_MUL 
DRW_STATE_BLEND_SUB 
DRW_STATE_BLEND_CUSTOM 

Use dual source blending. WARNING: Only one color buffer allowed.

DRW_STATE_LOGIC_INVERT 
DRW_STATE_BLEND_ALPHA_UNDER_PREMUL 
DRW_STATE_IN_FRONT_SELECT 
DRW_STATE_SHADOW_OFFSET 
DRW_STATE_CLIP_PLANES 
DRW_STATE_FIRST_VERTEX_CONVENTION 
DRW_STATE_PROGRAM_POINT_SIZE 

DO NOT USE. Assumed always enabled. Only used internally.

Definition at line 298 of file DRW_render.h.

◆ DRWTextureFlag

Enumerator
DRW_TEX_FILTER 
DRW_TEX_WRAP 
DRW_TEX_COMPARE 
DRW_TEX_MIPMAP 

Definition at line 139 of file DRW_render.h.

◆ eDRWAttrType

Enumerator
DRW_ATTR_INT 
DRW_ATTR_FLOAT 

Definition at line 368 of file DRW_render.h.

Function Documentation

◆ DRW_buffer_add_entry_array()

void DRW_buffer_add_entry_array ( DRWCallBuffer callbuf,
const void attr[],
uint  attr_len 
)

◆ DRW_buffer_add_entry_struct()

void DRW_buffer_add_entry_struct ( DRWCallBuffer callbuf,
const void data 
)

◆ DRW_cache_restart()

void DRW_cache_restart ( void  )

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

Definition at line 2099 of file draw_manager.c.

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

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

◆ DRW_context_state_get()

const DRWContextState* DRW_context_state_get ( void  )

Definition at line 2892 of file draw_manager.c.

References DRWManager::draw_ctx, and DST.

Referenced by basic_cache_init(), basic_cache_populate(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::cache_image(), blender::draw::image_engine::ImageEngine< DrawingMode >::cache_populate(), camera_view3d_reconstruction(), draw_armature_pose(), drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), DRW_cache_gpencil_face_wireframe_get(), DRW_curves_pos_buffer_get(), DRW_curves_texture_for_evaluated_attribute(), 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_hair_pos_buffer_get(), DRW_mball_batch_cache_pos_vertbuf_get(), DRW_metaball_batch_cache_get_edge_detection(), DRW_metaball_batch_cache_get_triangles_with_normals(), DRW_metaball_batch_cache_get_wireframes_face(), DRW_object_is_visible_psys_in_active_context(), DRW_object_wire_theme_get(), drw_particle_get_hair_source(), drw_particle_update_ptcache(), drw_particle_update_ptcache_edit(), DRW_render_object_iter(), drw_sculpt_generate_calls(), DRW_shgroup_curves_create_sub(), DRW_shgroup_hair_create_sub(), DRW_volume_batch_cache_get_wireframes_face(), EEVEE_bloom_init(), eevee_cache_finish(), EEVEE_cache_populate(), EEVEE_cryptomatte_cache_populate(), eevee_cryptomatte_download_buffer(), EEVEE_cryptomatte_output_accumulate(), EEVEE_cryptomatte_output_init(), EEVEE_cryptomatte_particle_hair_cache_populate(), eevee_cryptomatte_postprocess_weights(), EEVEE_cryptomatte_render_result(), EEVEE_cryptomatte_renderpasses_init(), eevee_cryptomatte_shading_group_create(), EEVEE_cryptomatte_store_metadata(), EEVEE_depth_of_field_init(), eevee_draw_scene(), eevee_engine_init(), eevee_light_setup(), EEVEE_lightprobes_cache_finish(), EEVEE_lightprobes_cache_init(), EEVEE_lightprobes_init(), EEVEE_lightprobes_refresh(), EEVEE_lookdev_cache_init(), EEVEE_lookdev_draw(), eevee_lookdev_hdri_preview_init(), EEVEE_lookdev_init(), EEVEE_materials_cache_init(), EEVEE_materials_cache_populate(), EEVEE_materials_init(), EEVEE_mist_output_init(), EEVEE_motion_blur_cache_init(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_init(), EEVEE_occlusion_init(), EEVEE_particle_hair_cache_populate(), eevee_render_result_aovs(), eevee_render_to_image(), EEVEE_renderpasses_init(), EEVEE_screen_raytrace_init(), EEVEE_shadows_init(), EEVEE_subsurface_cache_init(), EEVEE_temporal_sampling_init(), EEVEE_temporal_sampling_matrices_calc(), EEVEE_volumes_cache_init(), EEVEE_volumes_init(), 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(), GPENCIL_cache_init(), GPENCIL_cache_populate(), GPENCIL_engine_init(), GPENCIL_render_result_z(), GPENCIL_render_to_image(), gpencil_sbuffer_cache_populate(), gpencil_sbuffer_cache_populate_fast(), gpencil_sbuffer_stroke_ensure(), blender::draw::image_engine::IMAGE_cache_init(), blender::draw::image_engine::IMAGE_draw_scene(), material_opaque(), material_shadow(), material_transparent(), motion_path_cache(), blender::eevee::Instance::object_sync(), OVERLAY_armature_cache_init(), OVERLAY_armature_cache_populate(), OVERLAY_background_cache_init(), OVERLAY_cache_populate(), OVERLAY_camera_cache_populate(), OVERLAY_edit_curve_cache_init(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_curves_init(), OVERLAY_edit_gpencil_cache_init(), OVERLAY_edit_gpencil_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_populate(), OVERLAY_fade_cache_init(), OVERLAY_fade_cache_populate(), OVERLAY_gpencil_cache_init(), OVERLAY_gpencil_cache_populate(), OVERLAY_gpencil_color_names(), overlay_gpencil_draw_stroke_color_name(), 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_outline_cache_populate(), OVERLAY_paint_cache_init(), OVERLAY_paint_init(), OVERLAY_particle_cache_init(), OVERLAY_sculpt_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_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_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_selection(), OVERLAY_shader_sculpt_mask(), OVERLAY_shader_uniform_color(), OVERLAY_shader_wireframe(), OVERLAY_shader_wireframe_select(), OVERLAY_speaker_cache_populate(), OVERLAY_wireframe_cache_init(), OVERLAY_wireframe_cache_populate(), OVERLAY_wireframe_init(), particle_batch_cache_ensure_pos(), POSE_is_driven_by_active_armature(), request_attribute(), select_cache_init(), select_cache_populate(), select_engine_init(), blender::draw::color_management::viewport_color_management_set(), workbench_antialiasing_sample_count_get(), workbench_cache_hair_populate(), workbench_cache_texpaint_populate(), workbench_cavity_data_update(), workbench_cavity_samples_ubo_ensure(), workbench_color_type_get(), workbench_dof_engine_init(), workbench_in_front_history_needed(), workbench_private_data_init(), workbench_render(), workbench_render_result_z(), workbench_shadow_data_update(), and workbench_update_material_ubos().

◆ 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 422 of file draw_manager_exec.c.

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

Referenced by eevee_lightprobes_culling_test(), and workbench_shadow_object_cast_visible_shadow().

◆ DRW_culling_frustum_corners_get()

void DRW_culling_frustum_corners_get ( const DRWView view,
BoundBox corners 
)

Definition at line 452 of file draw_manager_exec.c.

References DST, view, and DRWManager::view_default.

Referenced by workbench_shadow_update().

◆ DRW_culling_frustum_planes_get()

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

Definition at line 458 of file draw_manager_exec.c.

References DST, view, and DRWManager::view_default.

Referenced by workbench_shadow_update().

◆ 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 bb per objects is implemented.

Definition at line 434 of file draw_manager_exec.c.

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

Referenced by select_cache_populate().

◆ 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 428 of file draw_manager_exec.c.

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 416 of file draw_manager_exec.c.

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

Referenced by EEVEE_shadows_draw(), pchan_culling_test_bbone(), pchan_culling_test_envelope(), pchan_culling_test_simple(), and pchan_culling_test_with_radius_scale().

◆ DRW_custom_pipeline()

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

◆ DRW_draw_callbacks_post_scene()

void DRW_draw_callbacks_post_scene ( void  )

◆ DRW_draw_callbacks_pre_scene()

void DRW_draw_callbacks_pre_scene ( void  )

◆ DRW_draw_pass()

void DRW_draw_pass ( DRWPass pass)

Definition at line 1214 of file draw_manager_exec.c.

References drw_draw_pass_ex(), DRWPass::first, DRWPass::last, DRWPass::next, and DRWPass::shgroups.

Referenced by blender::eevee::Film::accumulate(), basic_draw_scene(), blender::eevee::Film::display(), dof_dilate_tiles_pass_draw(), dof_recursive_reduce(), downsample_planar(), downsample_radiance_cb(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::draw_scene(), DRW_curves_update(), DRW_hair_update(), EEVEE_bloom_draw(), EEVEE_bloom_output_accumulate(), EEVEE_create_minmax_buffer(), EEVEE_cryptomatte_output_accumulate(), EEVEE_depth_of_field_draw(), eevee_draw_scene(), EEVEE_effects_downsample_radiance_buffer(), EEVEE_lightbake_filter_diffuse(), EEVEE_lightbake_filter_glossy(), EEVEE_lightbake_filter_visibility(), eevee_lightbake_render_world_sample(), EEVEE_lookdev_draw(), EEVEE_lut_update_ggx_brdf(), EEVEE_lut_update_ggx_btdf(), EEVEE_mist_output_accumulate(), EEVEE_motion_blur_draw(), EEVEE_occlusion_compute(), EEVEE_occlusion_draw_debug(), EEVEE_occlusion_output_accumulate(), EEVEE_reflection_compute(), EEVEE_reflection_output_accumulate(), EEVEE_render_draw(), eevee_render_draw_background(), EEVEE_renderpasses_postprocess(), EEVEE_shadow_output_accumulate(), EEVEE_shadows_draw_cascades(), EEVEE_shadows_draw_cubemap(), EEVEE_subsurface_compute(), EEVEE_subsurface_data_render(), EEVEE_subsurface_output_accumulate(), EEVEE_temporal_sampling_draw(), EEVEE_update_noise(), EEVEE_velocity_resolve(), EEVEE_volumes_compute(), EEVEE_volumes_output_accumulate(), EEVEE_volumes_resolve(), external_draw_scene(), GPENCIL_antialiasing_draw(), gpencil_draw_mask(), GPENCIL_draw_object(), GPENCIL_draw_scene_depth_only(), lightbake_render_scene_face(), lightbake_render_scene_reflected(), lightbake_render_world_face(), material_renderpass_accumulate(), max_downsample_cb(), 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_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_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_draw(), OVERLAY_volume_draw(), OVERLAY_wireframe_draw(), OVERLAY_wireframe_in_front_draw(), OVERLAY_xray_fade_draw(), blender::eevee::WorldPipeline::render(), blender::eevee::ForwardPipeline::render(), select_debug_draw_scene(), select_draw_scene(), simple_downsample_cube_cb(), workbench_antialiasing_draw_pass(), workbench_dof_downsample_level(), workbench_dof_draw_pass(), workbench_draw_sample(), workbench_transparent_draw_depth_pass(), and workbench_volume_draw_pass().

◆ 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 1221 of file draw_manager_exec.c.

References drw_draw_pass_ex().

Referenced by DRW_curves_update(), and DRW_hair_update().

◆ DRW_drawdata_ensure()

DrawData* DRW_drawdata_ensure ( ID id,
DrawEngineType engine_type,
size_t  size,
DrawDataInitCb  init_cb,
DrawDataFreeCb  free_cb 
)

◆ DRW_drawdata_get()

DrawData* DRW_drawdata_get ( ID id,
DrawEngineType engine_type 
)

◆ DRW_duplidata_get()

void** DRW_duplidata_get ( void vedata)

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

Definition at line 741 of file draw_manager.c.

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

Referenced by OVERLAY_duplidata_get().

◆ DRW_object_get_dupli()

struct DupliObject* DRW_object_get_dupli ( const struct Object ob)

◆ DRW_object_get_dupli_parent()

struct Object* DRW_object_get_dupli_parent ( const struct Object ob)

◆ DRW_object_is_in_edit_mode()

bool DRW_object_is_in_edit_mode ( const struct 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.

◆ DRW_object_is_renderable()

bool DRW_object_is_renderable ( const struct Object ob)

◆ DRW_object_is_visible_psys_in_active_context()

bool DRW_object_is_visible_psys_in_active_context ( const struct Object object,
const struct ParticleSystem psys 
)

◆ DRW_object_resource_id_get()

uint32_t DRW_object_resource_id_get ( Object ob)

Can only be called during iteration phase.

◆ DRW_object_use_hide_faces()

bool DRW_object_use_hide_faces ( const struct Object ob)

◆ DRW_object_visibility_in_active_context()

int DRW_object_visibility_in_active_context ( const struct Object ob)

Return whether this object is visible depending if we are rendering or drawing in the viewport.

◆ DRW_pass_create()

DRWPass* DRW_pass_create ( const char *  name,
DRWState  state 
)

◆ 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 2176 of file draw_manager_data.c.

References DRW_pass_create(), DRWPass::original, and state.

Referenced by EEVEE_materials_cache_init().

◆ DRW_pass_foreach_shgroup()

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

◆ DRW_pass_is_empty()

bool DRW_pass_is_empty ( DRWPass pass)

◆ 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 2184 of file draw_manager_data.c.

References BLI_assert, DRWPass::next, and NULL.

Referenced by EEVEE_materials_cache_init(), EEVEE_motion_blur_cache_init(), and blender::eevee::ForwardPipeline::sync().

◆ DRW_pass_sort_shgroup_reverse()

void DRW_pass_sort_shgroup_reverse ( DRWPass pass)

Reverse Shading group submission order.

Definition at line 2294 of file draw_manager_data.c.

References BLI_linklist_reverse(), DRWPass::first, DRWPass::last, and DRWPass::shgroups.

◆ DRW_pass_sort_shgroup_z()

void DRW_pass_sort_shgroup_z ( DRWPass pass)

◆ DRW_render_instance_buffer_finish()

void DRW_render_instance_buffer_finish ( void  )

◆ DRW_render_object_iter()

void DRW_render_object_iter ( void vedata,
struct RenderEngine engine,
struct Depsgraph depsgraph,
void(*)(void *vedata, struct Object *ob, struct RenderEngine *engine, struct Depsgraph *depsgraph callback 
)

◆ DRW_render_set_time()

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

◆ DRW_render_to_image()

void DRW_render_to_image ( struct RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ 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 280 of file draw_manager.c.

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

Referenced by eevee_lightbake_cache_create(), EEVEE_render_init(), and eevee_render_to_image().

◆ DRW_select_load_id()

void DRW_select_load_id ( uint  id)

◆ DRW_shader_create_ex()

struct GPUShader* DRW_shader_create_ex ( const char *  vert,
const char *  geom,
const char *  frag,
const char *  defines,
const char *  name 
)

Definition at line 265 of file draw_manager_shader.c.

References GPU_shader_create(), and NULL.

◆ DRW_shader_create_fullscreen_ex()

struct GPUShader* DRW_shader_create_fullscreen_ex ( const char *  frag,
const char *  defines,
const char *  name 
)

◆ DRW_shader_create_fullscreen_with_shaderlib_ex()

struct GPUShader* DRW_shader_create_fullscreen_with_shaderlib_ex ( const char *  frag,
const DRWShaderLibrary lib,
const char *  defines,
const char *  name 
)

◆ DRW_shader_create_with_lib_ex()

struct GPUShader* DRW_shader_create_with_lib_ex ( const char *  vert,
const char *  geom,
const char *  frag,
const char *  lib,
const char *  defines,
const char *  name 
)

Definition at line 271 of file draw_manager_shader.c.

References BLI_string_joinN, GPU_shader_create(), lib, MEM_freeN, NULL, and sh.

◆ DRW_shader_create_with_shaderlib_ex()

struct GPUShader* DRW_shader_create_with_shaderlib_ex ( const char *  vert,
const char *  geom,
const char *  frag,
const DRWShaderLibrary lib,
const char *  defines,
const char *  name 
)

◆ DRW_shader_create_with_transform_feedback()

struct GPUShader* DRW_shader_create_with_transform_feedback ( const char *  vert,
const char *  geom,
const char *  defines,
eGPUShaderTFBType  prim_type,
const char **  varying_names,
int  varying_count 
)

◆ DRW_shader_free()

void DRW_shader_free ( struct GPUShader shader)

Definition at line 419 of file draw_manager_shader.c.

References GPU_shader_free().

◆ DRW_shader_from_material()

struct GPUMaterial* DRW_shader_from_material ( struct Material ma,
struct bNodeTree ntree,
const uint64_t  shader_id,
const bool  is_volume_shader,
bool  deferred,
GPUCodegenCallbackFn  callback,
void thunk 
)

◆ DRW_shader_from_world()

struct GPUMaterial* DRW_shader_from_world ( struct World wo,
struct bNodeTree ntree,
const uint64_t  shader_id,
const bool  is_volume_shader,
bool  deferred,
GPUCodegenCallbackFn  callback,
void thunk 
)

◆ DRW_shader_library_add_file()

void DRW_shader_library_add_file ( DRWShaderLibrary lib,
const char *  lib_code,
const char *  lib_name 
)
Warning
Each library must be added after all its dependencies.

Definition at line 510 of file draw_manager_shader.c.

References BLI_assert, BLI_strncpy(), drw_shader_dependencies_get(), lib, DRWShaderLibrary::libs, DRWShaderLibrary::libs_deps, DRWShaderLibrary::libs_name, MAX_LIB, MAX_LIB_NAME, and NULL.

◆ DRW_shader_library_create()

DRWShaderLibrary* DRW_shader_library_create ( void  )

Definition at line 449 of file draw_manager_shader.c.

References MEM_callocN.

Referenced by eevee_shader_library_ensure().

◆ DRW_shader_library_create_shader_string()

char* DRW_shader_library_create_shader_string ( const DRWShaderLibrary lib,
const char *  shader_code 
)

◆ DRW_shader_library_free()

void DRW_shader_library_free ( DRWShaderLibrary lib)

Definition at line 454 of file draw_manager_shader.c.

References lib, and MEM_SAFE_FREE.

◆ DRW_shgroup_add_material_resources()

void DRW_shgroup_add_material_resources ( DRWShadingGroup grp,
struct GPUMaterial material 
)

◆ DRW_shgroup_barrier()

void DRW_shgroup_barrier ( DRWShadingGroup shgroup,
eGPUBarrier  type 
)

Issue a barrier command.

Definition at line 1008 of file draw_manager_data.c.

References BLI_assert, drw_command_barrier(), GPU_compute_shader_support(), and type.

Referenced by blender::eevee::Film::sync(), and blender::eevee::WorldPipeline::sync().

◆ DRW_shgroup_buffer_texture()

void DRW_shgroup_buffer_texture ( DRWShadingGroup shgroup,
const char *  name,
struct GPUVertBuf vertex_buffer 
)

◆ DRW_shgroup_buffer_texture_ref()

void DRW_shgroup_buffer_texture_ref ( DRWShadingGroup shgroup,
const char *  name,
struct GPUVertBuf **  vertex_buffer 
)

◆ DRW_shgroup_call_buffer()

DRWCallBuffer* DRW_shgroup_call_buffer ( DRWShadingGroup shgroup,
struct GPUVertFormat format,
GPUPrimType  prim_type 
)

◆ DRW_shgroup_call_buffer_instance()

DRWCallBuffer* DRW_shgroup_call_buffer_instance ( DRWShadingGroup shgroup,
struct GPUVertFormat format,
struct GPUBatch geom 
)

◆ 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 1002 of file draw_manager_data.c.

References BLI_assert, drw_command_compute_indirect(), and GPU_compute_shader_support().

◆ 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 995 of file draw_manager_data.c.

References BLI_assert, drw_command_compute_ref(), and GPU_compute_shader_support().

◆ DRW_shgroup_call_ex()

void DRW_shgroup_call_ex ( DRWShadingGroup shgroup,
Object ob,
float(*)  obmat[4],
struct GPUBatch geom,
bool  bypass_culling,
void user_data 
)

◆ DRW_shgroup_call_instance_range()

void DRW_shgroup_call_instance_range ( DRWShadingGroup shgroup,
Object ob,
struct GPUBatch geom,
uint  i_sta,
uint  i_num 
)

◆ DRW_shgroup_call_instances()

void DRW_shgroup_call_instances ( DRWShadingGroup shgroup,
Object ob,
struct GPUBatch geom,
uint  count 
)
Warning
Only use with Shaders that have IN_PLACE_INSTANCES defined. TODO: Should be removed.

Definition at line 1047 of file draw_manager_data.c.

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

Referenced by EEVEE_effects_cache_init(), EEVEE_lightbake_cache_init(), and OVERLAY_edit_curve_cache_populate().

◆ DRW_shgroup_call_instances_with_attrs()

void DRW_shgroup_call_instances_with_attrs ( DRWShadingGroup shgroup,
Object ob,
struct GPUBatch geom,
struct GPUBatch inst_attributes 
)

◆ DRW_shgroup_call_procedural_lines()

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

◆ DRW_shgroup_call_procedural_points()

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

◆ DRW_shgroup_call_procedural_triangles()

void DRW_shgroup_call_procedural_triangles ( DRWShadingGroup sh,
Object ob,
uint  tri_count 
)

◆ DRW_shgroup_call_range()

void DRW_shgroup_call_range ( DRWShadingGroup shgroup,
Object ob,
struct GPUBatch geom,
uint  v_sta,
uint  v_num 
)

◆ DRW_shgroup_call_sculpt()

void DRW_shgroup_call_sculpt ( DRWShadingGroup sh,
Object ob,
bool  wire,
bool  mask 
)

◆ DRW_shgroup_call_sculpt_with_materials()

void DRW_shgroup_call_sculpt_with_materials ( DRWShadingGroup **  sh,
int  num_sh,
Object ob 
)

◆ 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 
)

◆ DRW_shgroup_create()

DRWShadingGroup* DRW_shgroup_create ( struct GPUShader shader,
DRWPass pass 
)

Definition at line 1594 of file draw_manager_data.c.

References drw_shgroup_create_ex(), and drw_shgroup_init().

Referenced by basic_cache_init(), dof_bokeh_pass_init(), dof_dilate_tiles_pass_init(), dof_filter_pass_init(), dof_flatten_tiles_pass_init(), dof_gather_pass_init(), dof_recombine_pass_init(), dof_reduce_pass_init(), dof_scatter_pass_init(), dof_setup_pass_init(), drw_curves_cache_update_compute(), drw_curves_cache_update_transform_feedback(), drw_hair_particle_cache_update_compute(), drw_hair_particle_cache_update_transform_feedback(), eevee_create_bloom_pass(), eevee_cryptomatte_shading_group_create(), EEVEE_effects_cache_init(), EEVEE_lightbake_cache_init(), EEVEE_lightprobes_cache_finish(), EEVEE_lightprobes_cache_init(), EEVEE_lookdev_cache_init(), eevee_lookdev_hdri_preview_init(), EEVEE_lut_update_ggx_brdf(), EEVEE_lut_update_ggx_btdf(), EEVEE_materials_cache_init(), EEVEE_mist_output_init(), EEVEE_motion_blur_cache_init(), EEVEE_motion_blur_cache_populate(), EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_init(), EEVEE_renderpasses_cache_finish(), EEVEE_screen_raytrace_cache_init(), EEVEE_shadow_output_init(), EEVEE_shadows_cache_init(), EEVEE_subsurface_add_pass(), EEVEE_temporal_sampling_cache_init(), EEVEE_volumes_cache_finish(), EEVEE_volumes_cache_init(), EEVEE_volumes_cache_object_add(), EEVEE_volumes_output_init(), external_cache_init(), GPENCIL_antialiasing_init(), GPENCIL_cache_init(), gpencil_layer_cache_add(), gpencil_vfx_pass_create(), material_opaque(), material_shadow(), material_transparent(), 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_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_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_volume_cache_init(), OVERLAY_volume_extra(), OVERLAY_wireframe_cache_init(), select_cache_init(), select_debug_engine_init(), blender::eevee::Film::sync(), workbench_antialiasing_cache_init(), workbench_cavity_cache_init(), workbench_dof_cache_init(), workbench_opaque_cache_init(), workbench_outline_cache_init(), workbench_shadow_cache_init(), workbench_transparent_cache_init(), workbench_volume_modifier_cache_populate(), and workbench_volume_object_cache_populate().

◆ DRW_shgroup_create_sub()

DRWShadingGroup* DRW_shgroup_create_sub ( DRWShadingGroup shgroup)

◆ DRW_shgroup_instance_format_array()

struct GPUVertFormat* DRW_shgroup_instance_format_array ( const DRWInstanceAttrFormat  attrs[],
int  arraysize 
)

◆ DRW_shgroup_is_empty()

bool DRW_shgroup_is_empty ( DRWShadingGroup shgroup)

◆ DRW_shgroup_material_create()

DRWShadingGroup* DRW_shgroup_material_create ( struct GPUMaterial material,
DRWPass pass 
)

◆ DRW_shgroup_state_disable()

void DRW_shgroup_state_disable ( DRWShadingGroup shgroup,
DRWState  state 
)

◆ DRW_shgroup_state_enable()

void DRW_shgroup_state_enable ( DRWShadingGroup shgroup,
DRWState  state 
)

◆ 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 1630 of file draw_manager_data.c.

References drw_command_set_stencil_mask(), and mask().

Referenced by EEVEE_subsurface_add_pass(), gpencil_layer_cache_add(), workbench_opaque_cache_init(), and workbench_shadow_cache_init().

◆ 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 1622 of file draw_manager_data.c.

References drw_command_set_stencil_mask().

◆ DRW_shgroup_storage_block_ex()

void DRW_shgroup_storage_block_ex ( DRWShadingGroup shgroup,
const char *  name,
const struct 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,
struct GPUStorageBuf **ssbo  DRW_DEBUG_FILE_LINE_ARGS 
)

◆ DRW_shgroup_transform_feedback_create()

DRWShadingGroup* DRW_shgroup_transform_feedback_create ( struct GPUShader shader,
DRWPass pass,
struct GPUVertBuf tf_target 
)

◆ DRW_shgroup_uniform_block_ex()

void DRW_shgroup_uniform_block_ex ( DRWShadingGroup shgroup,
const char *  name,
const struct 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,
struct 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 
)

◆ DRW_shgroup_uniform_bool_copy()

void DRW_shgroup_uniform_bool_copy ( DRWShadingGroup shgroup,
const char *  name,
bool  value 
)

◆ DRW_shgroup_uniform_float()

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

◆ DRW_shgroup_uniform_float_copy()

void DRW_shgroup_uniform_float_copy ( DRWShadingGroup shgroup,
const char *  name,
float  value 
)

◆ 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()

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

◆ DRW_shgroup_uniform_int_copy()

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

◆ DRW_shgroup_uniform_ivec2()

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

Definition at line 409 of file draw_manager_data.c.

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 448 of file draw_manager_data.c.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT_COPY.

Referenced by EEVEE_motion_blur_cache_init().

◆ DRW_shgroup_uniform_ivec3()

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

Definition at line 417 of file draw_manager_data.c.

References drw_shgroup_uniform(), and DRW_UNIFORM_INT.

Referenced by EEVEE_lightprobes_cache_init().

◆ DRW_shgroup_uniform_ivec3_copy()

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

Definition at line 453 of file draw_manager_data.c.

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 425 of file draw_manager_data.c.

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 433 of file draw_manager_data.c.

References drw_shgroup_uniform(), and DRW_UNIFORM_FLOAT.

Referenced by EEVEE_lookdev_cache_init().

◆ DRW_shgroup_uniform_mat4()

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

◆ DRW_shgroup_uniform_mat4_copy()

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

◆ DRW_shgroup_uniform_texture()

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

◆ DRW_shgroup_uniform_texture_ex()

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

◆ DRW_shgroup_uniform_texture_ref()

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

◆ DRW_shgroup_uniform_texture_ref_ex()

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

◆ DRW_shgroup_uniform_vec2()

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

◆ DRW_shgroup_uniform_vec2_copy()

void DRW_shgroup_uniform_vec2_copy ( DRWShadingGroup shgroup,
const char *  name,
const float value 
)

◆ DRW_shgroup_uniform_vec3()

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

◆ DRW_shgroup_uniform_vec3_copy()

void DRW_shgroup_uniform_vec3_copy ( DRWShadingGroup shgroup,
const char *  name,
const float value 
)

◆ DRW_shgroup_uniform_vec4()

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

◆ DRW_shgroup_uniform_vec4_copy()

void DRW_shgroup_uniform_vec4_copy ( DRWShadingGroup shgroup,
const char *  name,
const float value 
)

◆ DRW_shgroup_vertex_buffer_ex()

void DRW_shgroup_vertex_buffer_ex ( DRWShadingGroup shgroup,
const char *  name,
struct GPUVertBuf *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,
struct GPUVertBuf **vertex_buffer  DRW_DEBUG_FILE_LINE_ARGS 
)

◆ DRW_state_draw_background()

bool DRW_state_draw_background ( void  )

Whether we should render the background

Definition at line 2881 of file draw_manager.c.

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

Referenced by eevee_draw_scene(), eevee_engine_init(), EEVEE_render_init(), and OVERLAY_background_cache_init().

◆ DRW_state_draw_support()

bool DRW_state_draw_support ( void  )

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

Definition at line 2874 of file draw_manager.c.

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

Referenced by EEVEE_lightprobes_cache_init(), and EEVEE_temporal_sampling_init().

◆ DRW_state_is_depth()

bool DRW_state_is_depth ( void  )

◆ DRW_state_is_fbo()

bool DRW_state_is_fbo ( void  )

◆ DRW_state_is_image_render()

bool DRW_state_is_image_render ( void  )

◆ DRW_state_is_material_select()

bool DRW_state_is_material_select ( void  )

Definition at line 2827 of file draw_manager.c.

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

Referenced by basic_cache_init().

◆ DRW_state_is_navigating()

bool DRW_state_is_navigating ( void  )

Is the user navigating the region.

Definition at line 2862 of file draw_manager.c.

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

Referenced by EEVEE_temporal_sampling_init(), and workbench_private_data_init().

◆ DRW_state_is_opengl_render()

bool DRW_state_is_opengl_render ( void  )

◆ DRW_state_is_playback()

bool DRW_state_is_playback ( void  )

◆ DRW_state_is_scene_render()

bool DRW_state_is_scene_render ( void  )

◆ DRW_state_is_select()

bool DRW_state_is_select ( void  )

◆ DRW_state_lock()

void DRW_state_lock ( DRWState  state)

◆ DRW_state_reset()

void DRW_state_reset ( void  )

◆ DRW_state_reset_ex()

void DRW_state_reset_ex ( DRWState  state)

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

Definition at line 261 of file draw_manager_exec.c.

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

Referenced by DRW_state_reset(), and external_draw_scene_do_v3d().

◆ DRW_state_show_text()

bool DRW_state_show_text ( void  )

◆ DRW_texture_create_1d()

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

◆ DRW_texture_create_2d()

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

◆ DRW_texture_create_2d_array()

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

◆ DRW_texture_create_3d()

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

◆ DRW_texture_create_cube()

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

◆ DRW_texture_create_cube_array()

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

◆ DRW_texture_ensure_2d()

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

◆ DRW_texture_ensure_fullscreen_2d()

void DRW_texture_ensure_fullscreen_2d ( struct GPUTexture **  tex,
eGPUTextureFormat  format,
DRWTextureFlag  flags 
)

◆ DRW_texture_free()

void DRW_texture_free ( struct GPUTexture tex)

Definition at line 171 of file draw_manager_texture.c.

References GPU_texture_free(), and tex.

Referenced by EEVEE_motion_hair_step_free().

◆ DRW_texture_generate_mipmaps()

void DRW_texture_generate_mipmaps ( struct GPUTexture tex)

Definition at line 166 of file draw_manager_texture.c.

References GPU_texture_generate_mipmap(), and tex.

◆ DRW_texture_pool_query_2d()

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

◆ DRW_texture_pool_query_fullscreen()

struct GPUTexture* DRW_texture_pool_query_fullscreen ( eGPUTextureFormat  format,
DrawEngineType engine_type 
)

◆ DRW_view_camtexco_get()

void DRW_view_camtexco_get ( const DRWView view,
float  r_texco[4] 
)

Definition at line 2085 of file draw_manager_data.c.

References copy_v4_v4(), and view.

Referenced by blender::eevee::Camera::sync().

◆ DRW_view_camtexco_set()

void DRW_view_camtexco_set ( DRWView view,
float  texco[4] 
)

Definition at line 2080 of file draw_manager_data.c.

References copy_v4_v4(), and view.

Referenced by drw_manager_init(), and EEVEE_render_view_sync().

◆ 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 2071 of file draw_manager_data.c.

References BLI_assert, MAX_CLIP_PLANES, and view.

Referenced by drw_manager_init(), EEVEE_temporal_sampling_create_view(), and lightbake_planar_ensure_view().

◆ 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] 
)

◆ DRW_view_default_get()

const DRWView* DRW_view_default_get ( void  )

◆ 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 2065 of file draw_manager_data.c.

References BLI_assert, DST, NULL, view, and DRWManager::view_default.

Referenced by eevee_lightbake_cache_create(), EEVEE_render_view_sync(), GPENCIL_render_init(), and workbench_render_matrices_init().

◆ DRW_view_far_distance_get()

float DRW_view_far_distance_get ( const DRWView view)

◆ DRW_view_frustum_corners_get()

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

Definition at line 2090 of file draw_manager_data.c.

References view.

◆ 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 2095 of file draw_manager_data.c.

References view.

Referenced by drw_sculpt_get_frustum_planes().

◆ DRW_view_get_active()

const DRWView* DRW_view_get_active ( void  )

Definition at line 348 of file draw_manager_exec.c.

References DST, and DRWManager::view_active.

Referenced by external_image_space_matrix_set().

◆ DRW_view_is_persp_get()

bool DRW_view_is_persp_get ( const DRWView view)

◆ DRW_view_layer_engine_data_ensure()

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

◆ DRW_view_layer_engine_data_ensure_ex()

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

◆ 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 2106 of file draw_manager_data.c.

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

Referenced by EEVEE_mist_output_init(), eevee_motion_blur_sync_camera(), EEVEE_shadows_draw_cascades(), EEVEE_volumes_init(), GPENCIL_render_init(), GPENCIL_render_result_z(), blender::eevee::Camera::sync(), and workbench_render_result_z().

◆ DRW_view_persmat_get()

void DRW_view_persmat_get ( const DRWView view,
float  mat[4][4],
bool  inverse 
)

◆ DRW_view_reset()

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

Definition at line 2058 of file draw_manager_data.c.

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

Referenced by DRW_render_gpencil(), DRW_render_to_image(), and EEVEE_render_view_sync().

◆ DRW_view_set_active()

void DRW_view_set_active ( const DRWView view)

◆ 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] 
)

◆ DRW_view_viewmat_get()

void DRW_view_viewmat_get ( const DRWView view,
float  mat[4][4],
bool  inverse 
)

◆ DRW_view_winmat_get()

void DRW_view_winmat_get ( const DRWView view,
float  mat[4][4],
bool  inverse 
)

◆ DRW_viewport_framebuffer_list_get()

struct DefaultFramebufferList* DRW_viewport_framebuffer_list_get ( void  )

◆ DRW_viewport_invert_size_get()

const float* DRW_viewport_invert_size_get ( void  )

◆ DRW_viewport_pixelsize_get()

const float* DRW_viewport_pixelsize_get ( void  )

Definition at line 303 of file draw_manager.c.

References DST, and DRWManager::pixsize.

Referenced by DRW_globals_update().

◆ DRW_viewport_request_redraw()

void DRW_viewport_request_redraw ( void  )

◆ DRW_viewport_screenvecs_get()

const float* DRW_viewport_screenvecs_get ( void  )

Definition at line 298 of file draw_manager.c.

References DST, and DRWManager::screenvecs.

Referenced by DRW_globals_update(), and EEVEE_lightprobes_cache_init().

◆ DRW_viewport_size_get()

const float* DRW_viewport_size_get ( void  )

◆ DRW_viewport_texture_list_get()

struct DefaultTextureList* DRW_viewport_texture_list_get ( void  )

Definition at line 638 of file draw_manager.c.

References DRW_view_data_default_texture_list_get(), DST, and DRWManager::view_data_active.

Referenced by blender::eevee::Film::accumulate(), dof_recombine_pass_init(), dof_setup_pass_init(), EEVEE_cryptomatte_output_init(), eevee_draw_scene(), EEVEE_effects_draw_init(), EEVEE_effects_init(), eevee_engine_init(), EEVEE_material_output_init(), EEVEE_mist_output_init(), EEVEE_motion_blur_cache_init(), EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_accumulate(), EEVEE_occlusion_output_init(), EEVEE_render_draw(), EEVEE_render_init(), EEVEE_renderpasses_cache_finish(), EEVEE_shadow_output_init(), EEVEE_subsurface_add_pass(), EEVEE_subsurface_draw_init(), EEVEE_subsurface_output_init(), EEVEE_temporal_sampling_cache_init(), EEVEE_velocity_resolve(), EEVEE_volumes_resolve(), GPENCIL_engine_init(), OVERLAY_antialiasing_cache_finish(), OVERLAY_antialiasing_cache_init(), OVERLAY_antialiasing_init(), OVERLAY_background_cache_init(), OVERLAY_cache_finish(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_mesh_cache_init(), OVERLAY_extra_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_outline_cache_init(), OVERLAY_outline_init(), OVERLAY_xray_depth_copy(), OVERLAY_xray_depth_infront_copy(), select_engine_framebuffer_setup(), workbench_antialiasing_cache_init(), workbench_antialiasing_draw_pass(), workbench_cache_finish(), workbench_cavity_cache_init(), workbench_dof_cache_init(), workbench_opaque_cache_init(), workbench_opaque_engine_init(), workbench_outline_cache_init(), workbench_render_framebuffers_init(), workbench_transparent_engine_init(), workbench_volume_modifier_cache_populate(), and workbench_volume_object_cache_populate().

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( DRWState  ,
DRW_STATE_PROGRAM_POINT_SIZE   
)