Blender  V2.93
Classes | Typedefs | Enumerations | Functions
DRW_engine.h File Reference
#include "BLI_sys_types.h"
#include "DNA_object_enums.h"
#include "DRW_engine_types.h"

Go to the source code of this file.

Classes

struct  DRWUpdateContext
 

Typedefs

typedef struct DRWUpdateContext DRWUpdateContext
 
typedef enum eDRWSelectStage eDRWSelectStage
 
typedef bool(* DRW_SelectPassFn) (eDRWSelectStage stage, void *user_data)
 
typedef bool(* DRW_ObjectFilterFn) (struct Object *ob, void *user_data)
 

Enumerations

enum  eDRWSelectStage { DRW_SELECT_PASS_PRE = 1 , DRW_SELECT_PASS_POST }
 

Functions

void DRW_engines_register (void)
 
void DRW_engines_free (void)
 
bool DRW_engine_render_support (struct DrawEngineType *draw_engine_type)
 
void DRW_engine_register (struct DrawEngineType *draw_engine_type)
 
void DRW_engine_viewport_data_size_get (const void *engine_type, int *r_fbl_len, int *r_txl_len, int *r_psl_len, int *r_stl_len)
 
void DRW_notify_view_update (const DRWUpdateContext *update_ctx)
 
void DRW_draw_view (const struct bContext *C)
 
void DRW_draw_region_engine_info (int xoffset, int *yoffset, int line_height)
 
void DRW_draw_render_loop_ex (struct Depsgraph *depsgraph, struct RenderEngineType *engine_type, struct ARegion *region, struct View3D *v3d, struct GPUViewport *viewport, const struct bContext *evil_C)
 
void DRW_draw_render_loop (struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, struct GPUViewport *viewport)
 
void DRW_draw_render_loop_offscreen (struct Depsgraph *depsgraph, struct RenderEngineType *engine_type, struct ARegion *region, struct View3D *v3d, const bool is_image_render, const bool draw_background, const bool do_color_management, struct GPUOffScreen *ofs, struct GPUViewport *viewport)
 
void DRW_draw_render_loop_2d_ex (struct Depsgraph *depsgraph, struct ARegion *region, struct GPUViewport *viewport, const struct bContext *evil_C)
 
void DRW_draw_select_loop (struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, bool use_obedit_skip, bool draw_surface, bool use_nearest, const struct rcti *rect, DRW_SelectPassFn select_pass_fn, void *select_pass_user_data, DRW_ObjectFilterFn object_filter_fn, void *object_filter_user_data)
 
void DRW_draw_depth_loop (struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, struct GPUViewport *viewport)
 
void DRW_draw_depth_loop_gpencil (struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, struct GPUViewport *viewport)
 
void DRW_draw_depth_object (struct Scene *scene, struct ARegion *region, struct View3D *v3d, struct GPUViewport *viewport, struct Object *object)
 
void DRW_draw_select_id (struct Depsgraph *depsgraph, struct ARegion *region, struct View3D *v3d, const struct rcti *rect)
 
bool DRW_render_check_grease_pencil (struct Depsgraph *depsgraph)
 
void DRW_render_gpencil (struct RenderEngine *engine, struct Depsgraph *depsgraph)
 
struct DRWInstanceDataListDRW_instance_data_list_create (void)
 
void DRW_instance_data_list_free (struct DRWInstanceDataList *idatalist)
 
void DRW_uniform_attrs_pool_free (struct GHash *table)
 
void DRW_render_context_enable (struct Render *render)
 
void DRW_render_context_disable (struct Render *render)
 
void DRW_opengl_context_create (void)
 
void DRW_opengl_context_destroy (void)
 
void DRW_opengl_context_enable (void)
 
void DRW_opengl_context_disable (void)
 
void DRW_cache_free_old_batches (struct Main *bmain)
 
void DRW_opengl_context_enable_ex (bool restore)
 
void DRW_opengl_context_disable_ex (bool restore)
 
void DRW_opengl_render_context_enable (void *re_gl_context)
 
void DRW_opengl_render_context_disable (void *re_gl_context)
 
void DRW_gpu_render_context_enable (void *re_gpu_context)
 
void DRW_gpu_render_context_disable (void *re_gpu_context)
 
void DRW_deferred_shader_remove (struct GPUMaterial *mat)
 
struct DrawDataListDRW_drawdatalist_from_id (struct ID *id)
 
void DRW_drawdata_free (struct ID *id)
 

Typedef Documentation

◆ DRW_ObjectFilterFn

typedef bool(* DRW_ObjectFilterFn) (struct Object *ob, void *user_data)

Definition at line 79 of file DRW_engine.h.

◆ DRW_SelectPassFn

typedef bool(* DRW_SelectPassFn) (eDRWSelectStage stage, void *user_data)

Definition at line 78 of file DRW_engine.h.

◆ DRWUpdateContext

◆ eDRWSelectStage

Enumeration Type Documentation

◆ eDRWSelectStage

Enumerator
DRW_SELECT_PASS_PRE 
DRW_SELECT_PASS_POST 

Definition at line 74 of file DRW_engine.h.

Function Documentation

◆ DRW_cache_free_old_batches()

void DRW_cache_free_old_batches ( struct Main bmain)

◆ DRW_deferred_shader_remove()

void DRW_deferred_shader_remove ( struct GPUMaterial mat)

◆ DRW_draw_depth_loop()

void DRW_draw_depth_loop ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
GPUViewport viewport 
)

◆ DRW_draw_depth_loop_gpencil()

void DRW_draw_depth_loop_gpencil ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
GPUViewport viewport 
)

Converted from ED_view3d_draw_depth_gpencil (legacy drawing).

Definition at line 2626 of file draw_manager.c.

References depsgraph, draw_engine_gpencil_type, drw_draw_depth_loop_impl(), drw_state_prepare_clean_for_draw(), DST, and use_drw_engine().

Referenced by ED_view3d_depth_override().

◆ DRW_draw_depth_object()

void DRW_draw_depth_object ( Scene scene,
ARegion region,
View3D v3d,
GPUViewport viewport,
Object object 
)

◆ DRW_draw_region_engine_info()

void DRW_draw_region_engine_info ( int  xoffset,
int *  yoffset,
int  line_height 
)

◆ DRW_draw_render_loop()

void DRW_draw_render_loop ( struct Depsgraph depsgraph,
struct ARegion region,
struct View3D v3d,
struct GPUViewport viewport 
)

◆ DRW_draw_render_loop_2d_ex()

void DRW_draw_render_loop_2d_ex ( struct Depsgraph depsgraph,
struct ARegion region,
struct GPUViewport viewport,
const struct bContext evil_C 
)

◆ DRW_draw_render_loop_ex()

void DRW_draw_render_loop_ex ( struct Depsgraph depsgraph,
struct RenderEngineType engine_type,
struct ARegion region,
struct View3D v3d,
struct GPUViewport viewport,
const struct bContext evil_C 
)

◆ DRW_draw_render_loop_offscreen()

void DRW_draw_render_loop_offscreen ( struct Depsgraph depsgraph,
RenderEngineType engine_type,
ARegion region,
View3D v3d,
const bool  is_image_render,
const bool  draw_background,
const bool  do_color_management,
GPUOffScreen ofs,
GPUViewport viewport 
)

◆ DRW_draw_select_id()

void DRW_draw_select_id ( struct Depsgraph depsgraph,
struct ARegion region,
struct View3D v3d,
const struct rcti rect 
)

Referenced by DRW_select_buffer_read().

◆ DRW_draw_select_loop()

void DRW_draw_select_loop ( struct Depsgraph depsgraph,
struct ARegion region,
struct View3D v3d,
bool  use_obedit_skip,
bool  draw_surface,
bool  use_nearest,
const struct rcti rect,
DRW_SelectPassFn  select_pass_fn,
void *  select_pass_user_data,
DRW_ObjectFilterFn  object_filter_fn,
void *  object_filter_user_data 
)

Referenced by view3d_opengl_select().

◆ DRW_draw_view()

void DRW_draw_view ( const struct bContext C)

◆ DRW_drawdata_free()

void DRW_drawdata_free ( struct ID id)

Definition at line 944 of file draw_manager.c.

References BLI_freelistN(), DRW_drawdatalist_from_id(), LISTBASE_FOREACH, and NULL.

Referenced by object_free_data(), and world_free_data().

◆ DRW_drawdatalist_from_id()

struct DrawDataList* DRW_drawdatalist_from_id ( struct ID id)

◆ DRW_engine_register()

void DRW_engine_register ( struct DrawEngineType draw_engine_type)

Definition at line 2918 of file draw_manager.c.

References BLI_addtail(), and DRW_engines.

Referenced by DRW_engines_register(), and RE_engines_register().

◆ DRW_engine_render_support()

bool DRW_engine_render_support ( struct DrawEngineType draw_engine_type)

Definition at line 2913 of file draw_manager.c.

References DrawEngineType::render_to_image.

Referenced by RE_engine_is_opengl().

◆ DRW_engine_viewport_data_size_get()

void DRW_engine_viewport_data_size_get ( const void *  engine_type,
int *  r_fbl_len,
int *  r_txl_len,
int *  r_psl_len,
int *  r_stl_len 
)

◆ DRW_engines_free()

void DRW_engines_free ( void  )

◆ DRW_engines_register()

void DRW_engines_register ( void  )

Definition at line 2923 of file draw_manager.c.

References BKE_curve_batch_cache_dirty_tag_cb, BKE_curve_batch_cache_free_cb, BKE_gpencil_batch_cache_dirty_tag_cb, BKE_gpencil_batch_cache_free_cb, BKE_hair_batch_cache_dirty_tag_cb, BKE_hair_batch_cache_free_cb, BKE_lattice_batch_cache_dirty_tag_cb, BKE_lattice_batch_cache_free_cb, BKE_mball_batch_cache_dirty_tag_cb, BKE_mball_batch_cache_free_cb, BKE_mesh_batch_cache_dirty_tag_cb, BKE_mesh_batch_cache_free_cb, BKE_particle_batch_cache_dirty_tag_cb, BKE_particle_batch_cache_free_cb, BKE_pointcloud_batch_cache_dirty_tag_cb, BKE_pointcloud_batch_cache_free_cb, BKE_volume_batch_cache_dirty_tag_cb, BKE_volume_batch_cache_free_cb, RenderEngineType::draw_engine, draw_engine_basic_type, draw_engine_gpencil_type, draw_engine_image_type, draw_engine_overlay_type, draw_engine_select_type, DRW_curve_batch_cache_dirty_tag(), DRW_curve_batch_cache_free(), DRW_engine_register(), DRW_engine_viewport_eevee_type, DRW_engine_viewport_external_type, DRW_engine_viewport_workbench_type, DRW_gpencil_batch_cache_dirty_tag(), DRW_gpencil_batch_cache_free(), DRW_hair_batch_cache_dirty_tag(), DRW_hair_batch_cache_free(), DRW_lattice_batch_cache_dirty_tag(), DRW_lattice_batch_cache_free(), DRW_mball_batch_cache_dirty_tag(), DRW_mball_batch_cache_free(), DRW_mesh_batch_cache_dirty_tag(), DRW_mesh_batch_cache_free(), DRW_particle_batch_cache_dirty_tag(), DRW_particle_batch_cache_free(), DRW_pointcloud_batch_cache_dirty_tag(), DRW_pointcloud_batch_cache_free(), DRW_volume_batch_cache_dirty_tag(), DRW_volume_batch_cache_free(), and RE_engines_register().

Referenced by RE_engines_init().

◆ DRW_gpu_render_context_disable()

void DRW_gpu_render_context_disable ( void *  re_gpu_context)

◆ DRW_gpu_render_context_enable()

void DRW_gpu_render_context_enable ( void *  re_gpu_context)

Definition at line 3153 of file draw_manager.c.

References BLI_assert, BLI_thread_is_main(), and GPU_context_active_set().

◆ DRW_instance_data_list_create()

struct DRWInstanceDataList* DRW_instance_data_list_create ( void  )

◆ DRW_instance_data_list_free()

void DRW_instance_data_list_free ( struct DRWInstanceDataList idatalist)

◆ DRW_notify_view_update()

void DRW_notify_view_update ( const DRWUpdateContext update_ctx)

◆ DRW_opengl_context_create()

void DRW_opengl_context_create ( void  )

◆ DRW_opengl_context_destroy()

void DRW_opengl_context_destroy ( void  )

◆ DRW_opengl_context_disable()

void DRW_opengl_context_disable ( void  )

◆ DRW_opengl_context_disable_ex()

void DRW_opengl_context_disable_ex ( bool  restore)

◆ DRW_opengl_context_enable()

void DRW_opengl_context_enable ( void  )

◆ DRW_opengl_context_enable_ex()

void DRW_opengl_context_enable_ex ( bool  restore)

◆ DRW_opengl_render_context_disable()

void DRW_opengl_render_context_disable ( void *  re_gl_context)

◆ DRW_opengl_render_context_enable()

void DRW_opengl_render_context_enable ( void *  re_gl_context)

◆ DRW_render_check_grease_pencil()

bool DRW_render_check_grease_pencil ( struct Depsgraph depsgraph)

◆ DRW_render_context_disable()

void DRW_render_context_disable ( struct Render render)

◆ DRW_render_context_enable()

void DRW_render_context_enable ( struct Render render)

◆ DRW_render_gpencil()

void DRW_render_gpencil ( struct RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ DRW_uniform_attrs_pool_free()

void DRW_uniform_attrs_pool_free ( struct GHash table)

Definition at line 783 of file draw_instance_data.c.

References BLI_ghash_free(), drw_uniform_attrs_pool_free_cb(), and NULL.

Referenced by GPU_viewport_free().