Blender  V3.3
Classes | Macros
view3d_draw.c File Reference
#include <math.h>
#include "BLI_jitter_2d.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BKE_armature.h"
#include "BKE_camera.h"
#include "BKE_collection.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_key.h"
#include "BKE_layer.h"
#include "BKE_main.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_scene.h"
#include "BKE_studiolight.h"
#include "BKE_unit.h"
#include "BLF_api.h"
#include "BLT_translation.h"
#include "DNA_armature_types.h"
#include "DNA_brush_types.h"
#include "DNA_camera_types.h"
#include "DNA_key_types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
#include "DRW_engine.h"
#include "DRW_select_buffer.h"
#include "ED_gpencil.h"
#include "ED_info.h"
#include "ED_keyframing.h"
#include "ED_screen.h"
#include "ED_screen_types.h"
#include "ED_transform.h"
#include "ED_view3d_offscreen.h"
#include "DEG_depsgraph_query.h"
#include "GPU_batch.h"
#include "GPU_batch_presets.h"
#include "GPU_framebuffer.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_material.h"
#include "GPU_matrix.h"
#include "GPU_state.h"
#include "GPU_viewport.h"
#include "MEM_guardedalloc.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "RE_engine.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "view3d_intern.h"

Go to the source code of this file.

Classes

struct  RV3DMatrixStore
 

Macros

#define M_GOLDEN_RATIO_CONJUGATE   0.618033988749895f
 
#define VIEW3D_OVERLAY_LINEHEIGHT   (0.9f * U.widget_unit)
 

Functions

General Functions
void ED_view3d_update_viewmat (Depsgraph *depsgraph, const Scene *scene, View3D *v3d, ARegion *region, const float viewmat[4][4], const float winmat[4][4], const rcti *rect, bool offscreen)
 
static void view3d_main_region_setup_view (Depsgraph *depsgraph, Scene *scene, View3D *v3d, ARegion *region, const float viewmat[4][4], const float winmat[4][4], const rcti *rect)
 
static void view3d_main_region_setup_offscreen (Depsgraph *depsgraph, const Scene *scene, View3D *v3d, ARegion *region, const float viewmat[4][4], const float winmat[4][4])
 
static bool view3d_stereo3d_active (wmWindow *win, const Scene *scene, View3D *v3d, RegionView3D *rv3d)
 
static void view3d_stereo3d_setup (Depsgraph *depsgraph, Scene *scene, View3D *v3d, ARegion *region, const rcti *rect)
 
void ED_view3d_draw_setup_view (const wmWindowManager *wm, wmWindow *win, Depsgraph *depsgraph, Scene *scene, ARegion *region, View3D *v3d, const float viewmat[4][4], const float winmat[4][4], const rcti *rect)
 
Draw View Border
static void view3d_camera_border (const Scene *scene, struct Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const RegionView3D *rv3d, rctf *r_viewborder, const bool no_shift, const bool no_zoom)
 
void ED_view3d_calc_camera_border_size (const Scene *scene, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const RegionView3D *rv3d, float r_size[2])
 
void ED_view3d_calc_camera_border (const Scene *scene, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const RegionView3D *rv3d, rctf *r_viewborder, const bool no_shift)
 
static void drawviewborder_grid3 (uint shdr_pos, float x1, float x2, float y1, float y2, float fac)
 
static void drawviewborder_triangle (uint shdr_pos, float x1, float x2, float y1, float y2, const char golden, const char dir)
 
static void drawviewborder (Scene *scene, Depsgraph *depsgraph, ARegion *region, View3D *v3d)
 
static void drawrenderborder (ARegion *region, View3D *v3d)
 
Draw Text & Info
static void view3d_draw_grease_pencil (const bContext *UNUSED(C))
 
static const char * view3d_get_name (View3D *v3d, RegionView3D *rv3d)
 
static void draw_viewport_name (ARegion *region, View3D *v3d, int xoffset, int *yoffset)
 
static void draw_selected_name (Scene *scene, ViewLayer *view_layer, Object *ob, int xoffset, int *yoffset)
 
static void draw_grid_unit_name (Scene *scene, ARegion *region, View3D *v3d, int xoffset, int *yoffset)
 
void view3d_draw_region_info (const bContext *C, ARegion *region)
 
Draw Viewport Contents
static void view3d_draw_view (const bContext *C, ARegion *region)
 
RenderEngineTypeED_view3d_engine_type (const Scene *scene, int drawtype)
 
void view3d_main_region_draw (const bContext *C, ARegion *region)
 
Off-screen Drawing
static void view3d_stereo3d_setup_offscreen (Depsgraph *depsgraph, const Scene *scene, View3D *v3d, ARegion *region, const float winmat[4][4], const char *viewname)
 
void ED_view3d_draw_offscreen (Depsgraph *depsgraph, const Scene *scene, eDrawType drawtype, View3D *v3d, ARegion *region, int winx, int winy, const float viewmat[4][4], const float winmat[4][4], bool is_image_render, bool draw_background, const char *viewname, const bool do_color_management, const bool restore_rv3d_mats, GPUOffScreen *ofs, GPUViewport *viewport)
 
void ED_view3d_draw_offscreen_simple (Depsgraph *depsgraph, Scene *scene, View3DShading *shading_override, eDrawType drawtype, int object_type_exclude_viewport_override, int object_type_exclude_select_override, int winx, int winy, uint draw_flags, const float viewmat[4][4], const float winmat[4][4], float clip_start, float clip_end, bool is_xr_surface, bool is_image_render, bool draw_background, const char *viewname, const bool do_color_management, GPUOffScreen *ofs, GPUViewport *viewport)
 
ImBufED_view3d_draw_offscreen_imbuf (Depsgraph *depsgraph, Scene *scene, eDrawType drawtype, View3D *v3d, ARegion *region, int sizex, int sizey, eImBufFlags imbuf_flag, int alpha_mode, const char *viewname, const bool restore_rv3d_mats, GPUOffScreen *ofs, char err_out[256])
 
ImBufED_view3d_draw_offscreen_imbuf_simple (Depsgraph *depsgraph, Scene *scene, View3DShading *shading_override, eDrawType drawtype, Object *camera, int width, int height, eImBufFlags imbuf_flag, eV3DOffscreenDrawFlag draw_flags, int alpha_mode, const char *viewname, GPUOffScreen *ofs, char err_out[256])
 
Viewport Clipping
static bool view3d_clipping_test (const float co[3], const float clip[6][4])
 
bool ED_view3d_clipping_test (const RegionView3D *rv3d, const float co[3], const bool is_local)
 
Back-Draw for Selection
static void validate_object_select_id (struct Depsgraph *depsgraph, ViewLayer *view_layer, ARegion *region, View3D *v3d, Object *obact)
 
static void view3d_opengl_read_Z_pixels (GPUViewport *viewport, rcti *rect, void *data)
 
void ED_view3d_select_id_validate (ViewContext *vc)
 
int ED_view3d_backbuf_sample_size_clamp (ARegion *region, const float dist)
 
Z-Depth Utilities
void view3d_depths_rect_create (ARegion *region, rcti *rect, ViewDepths *r_d)
 
static ViewDepthsview3d_depths_create (ARegion *region)
 
float view3d_depth_near (ViewDepths *d)
 
void ED_view3d_depth_override (Depsgraph *depsgraph, ARegion *region, View3D *v3d, Object *obact, eV3DDepthOverrideMode mode, ViewDepths **r_depths)
 
void ED_view3d_depths_free (ViewDepths *depths)
 
Custom-data Utilities
void ED_view3d_datamask (const bContext *C, const Scene *UNUSED(scene), const View3D *v3d, CustomData_MeshMasks *r_cddata_masks)
 
void ED_view3d_screen_datamask (const bContext *C, const Scene *scene, const bScreen *screen, CustomData_MeshMasks *r_cddata_masks)
 
Region View Matrix Backup/Restore
struct RV3DMatrixStoreED_view3d_mats_rv3d_backup (struct RegionView3D *rv3d)
 
void ED_view3d_mats_rv3d_restore (struct RegionView3D *rv3d, struct RV3DMatrixStore *rv3dmat_pt)
 
FPS Drawing
void ED_scene_draw_fps (const Scene *scene, int xoffset, int *yoffset)
 
Calculate Render Border
static bool view3d_main_region_do_render_draw (const Scene *scene)
 
bool ED_view3d_calc_render_border (const Scene *scene, Depsgraph *depsgraph, View3D *v3d, ARegion *region, rcti *rect)
 

Other Elements

#define STEPS_LEN   8
 
float ED_scene_grid_scale (const Scene *scene, const char **r_grid_unit)
 
float ED_view3d_grid_scale (const Scene *scene, View3D *v3d, const char **r_grid_unit)
 
void ED_view3d_grid_steps (const Scene *scene, View3D *v3d, RegionView3D *rv3d, float r_grid_steps[STEPS_LEN])
 
float ED_view3d_grid_view_scale (Scene *scene, View3D *v3d, ARegion *region, const char **r_grid_unit)
 
static void draw_view_axis (RegionView3D *rv3d, const rcti *rect)
 
static void view3d_draw_border (const bContext *C, ARegion *region)
 

Macro Definition Documentation

◆ M_GOLDEN_RATIO_CONJUGATE

#define M_GOLDEN_RATIO_CONJUGATE   0.618033988749895f

Definition at line 87 of file view3d_draw.c.

◆ STEPS_LEN

#define STEPS_LEN   8

Definition at line 855 of file view3d_draw.c.

◆ VIEW3D_OVERLAY_LINEHEIGHT

#define VIEW3D_OVERLAY_LINEHEIGHT   (0.9f * U.widget_unit)

Definition at line 89 of file view3d_draw.c.

Function Documentation

◆ draw_grid_unit_name()

static void draw_grid_unit_name ( Scene scene,
ARegion region,
View3D v3d,
int  xoffset,
int *  yoffset 
)
static

◆ draw_selected_name()

static void draw_selected_name ( Scene scene,
ViewLayer view_layer,
Object ob,
int  xoffset,
int *  yoffset 
)
static

◆ draw_view_axis()

static void draw_view_axis ( RegionView3D rv3d,
const rcti rect 
)
static

◆ draw_viewport_name()

static void draw_viewport_name ( ARegion region,
View3D v3d,
int  xoffset,
int *  yoffset 
)
static

◆ drawrenderborder()

static void drawrenderborder ( ARegion region,
View3D v3d 
)
static

◆ drawviewborder()

static void drawviewborder ( Scene scene,
Depsgraph depsgraph,
ARegion region,
View3D v3d 
)
static

Definition at line 528 of file view3d_draw.c.

References DisplaySafeAreas::action, DisplaySafeAreas::action_center, BKE_camera_sensor_fit(), BLF_default(), BLF_draw_default(), RenderData::border, CAM_DTX_CENTER, CAM_DTX_CENTER_DIAG, CAM_DTX_GOLDEN, CAM_DTX_GOLDEN_TRI_A, CAM_DTX_GOLDEN_TRI_B, CAM_DTX_HARMONY_TRI_A, CAM_DTX_HARMONY_TRI_B, CAM_DTX_THIRDS, CAM_SHOW_SAFE_CENTER, CAM_SHOW_SAFE_MARGINS, CAM_SHOWNAME, CAM_SHOWPASSEPARTOUT, CAM_SHOWSENSOR, View3D::camera, CAMERA_SENSOR_FIT_AUTO, CAMERA_SENSOR_FIT_HOR, Object::data, depsgraph, drawviewborder_grid3(), drawviewborder_triangle(), Camera::dtx, ED_view3d_calc_camera_border(), Camera::flag, View3DOverlay::flag, View3D::flag2, floorf, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_width(), GPU_PRIM_LINES, GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), Object::id, if(), imm_draw_box_wire_2d(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniform1f(), immUniform1i(), immUniform2f(), immUniformColor3f(), immUniformColor3ubv(), immUniformColor4f(), immUniformThemeColor(), immUniformThemeColor3(), immUniformThemeColorAlpha(), immUniformThemeColorShadeAlpha(), immVertex2f(), immVertexFormat(), M_GOLDEN_RATIO_CONJUGATE, RenderData::mode, ID::name, NULL, OB_CAMERA, View3D::overlay, Camera::passepartalpha, Scene::r, R_BORDER, ARegion::regiondata, Scene::safe_areas, scene, Camera::sensor_fit, Camera::sensor_x, Camera::sensor_y, TH_BACK, TH_REDALERT, TH_TEXT_HI, TH_VIEW_OVERLAY, DisplaySafeAreas::title, DisplaySafeAreas::title_center, Object::type, UI_draw_safe_areas(), UI_FontThemeColor(), V3D_HIDE_OVERLAYS, V3D_LOCK_CAMERA, V3D_OVERLAY_HIDE_TEXT, view3d_camera_border_hack_col, view3d_camera_border_hack_test, ARegion::winx, ARegion::winy, x2, RenderData::xasp, rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, RenderData::xsch, y1, RenderData::yasp, rcti::ymax, rctf::ymax, rcti::ymin, rctf::ymin, and RenderData::ysch.

Referenced by view3d_draw_border().

◆ drawviewborder_grid3()

static void drawviewborder_grid3 ( uint  shdr_pos,
float  x1,
float  x2,
float  y1,
float  y2,
float  fac 
)
static

Definition at line 448 of file view3d_draw.c.

References GPU_PRIM_LINES, immBegin(), immEnd(), immVertex2f(), x2, and y1.

Referenced by drawviewborder().

◆ drawviewborder_triangle()

static void drawviewborder_triangle ( uint  shdr_pos,
float  x1,
float  x2,
float  y1,
float  y2,
const char  golden,
const char  dir 
)
static

Definition at line 475 of file view3d_draw.c.

References GPU_PRIM_LINES, immBegin(), immEnd(), immVertex2f(), M_GOLDEN_RATIO_CONJUGATE, SWAP, w(), x2, and y1.

Referenced by drawviewborder().

◆ ED_scene_draw_fps()

void ED_scene_draw_fps ( const Scene scene,
int  xoffset,
int *  yoffset 
)

◆ ED_scene_grid_scale()

float ED_scene_grid_scale ( const Scene scene,
const char **  r_grid_unit 
)

◆ ED_view3d_backbuf_sample_size_clamp()

int ED_view3d_backbuf_sample_size_clamp ( struct ARegion region,
float  dist 
)

allow for small values [0.5 - 2.5], and large values, FLT_MAX by clamping by the area size

Definition at line 2195 of file view3d_draw.c.

References ceilf, max_ii(), min_ff(), and ARegion::winx.

Referenced by EDBM_edge_find_nearest_ex(), EDBM_face_find_nearest_ex(), and EDBM_vert_find_nearest_ex().

◆ ED_view3d_calc_camera_border()

void ED_view3d_calc_camera_border ( const Scene scene,
Depsgraph depsgraph,
const ARegion region,
const View3D v3d,
const RegionView3D rv3d,
rctf r_viewborder,
const bool  no_shift 
)

◆ ED_view3d_calc_camera_border_size()

void ED_view3d_calc_camera_border_size ( const Scene scene,
Depsgraph depsgraph,
const ARegion region,
const View3D v3d,
const RegionView3D rv3d,
float  r_size[2] 
)

◆ ED_view3d_calc_render_border()

bool ED_view3d_calc_render_border ( const Scene scene,
Depsgraph depsgraph,
View3D v3d,
ARegion region,
rcti rect 
)

◆ ED_view3d_clipping_test()

bool ED_view3d_clipping_test ( const RegionView3D rv3d,
const float  co[3],
const bool  is_local 
)

◆ ED_view3d_datamask()

void ED_view3d_datamask ( const bContext C,
const Scene UNUSEDscene,
const View3D v3d,
CustomData_MeshMasks r_cddata_masks 
)

◆ ED_view3d_depth_override()

void ED_view3d_depth_override ( struct Depsgraph depsgraph,
struct ARegion region,
struct View3D v3d,
struct Object obact,
eV3DDepthOverrideMode  mode,
struct ViewDepths **  r_depths 
)

◆ ED_view3d_depths_free()

void ED_view3d_depths_free ( ViewDepths depths)

◆ ED_view3d_draw_offscreen()

void ED_view3d_draw_offscreen ( Depsgraph depsgraph,
const Scene scene,
eDrawType  drawtype,
View3D v3d,
ARegion region,
int  winx,
int  winy,
const float  viewmat[4][4],
const float  winmat[4][4],
bool  is_image_render,
bool  draw_background,
const char *  viewname,
const bool  do_color_management,
const bool  restore_rv3d_mats,
GPUOffScreen ofs,
GPUViewport viewport 
)

◆ ED_view3d_draw_offscreen_imbuf()

ImBuf* ED_view3d_draw_offscreen_imbuf ( struct Depsgraph depsgraph,
struct Scene scene,
eDrawType  drawtype,
struct View3D v3d,
struct ARegion region,
int  sizex,
int  sizey,
eImBufFlags  imbuf_flag,
int  alpha_mode,
const char *  viewname,
bool  restore_rv3d_mats,
struct GPUOffScreen ofs,
char  err_out[256] 
)

◆ ED_view3d_draw_offscreen_imbuf_simple()

ImBuf* ED_view3d_draw_offscreen_imbuf_simple ( struct Depsgraph depsgraph,
struct Scene scene,
struct View3DShading shading_override,
eDrawType  drawtype,
struct Object camera,
int  width,
int  height,
eImBufFlags  imbuf_flags,
eV3DOffscreenDrawFlag  draw_flags,
int  alpha_mode,
const char *  viewname,
struct GPUOffScreen ofs,
char  err_out[256] 
)

Creates own fake 3d views (wrapping ED_view3d_draw_offscreen_imbuf)

Parameters
ofsOptional off-screen buffer can be NULL. (avoids re-creating when doing multiple GL renders).
Note
used by the sequencer

Definition at line 1980 of file view3d_draw.c.

References View3DShading::background_type, BKE_camera_multiview_params(), BKE_camera_multiview_render(), BKE_camera_params_compute_matrix(), BKE_camera_params_compute_viewplane(), BKE_camera_params_from_object(), BKE_camera_params_init(), BKE_scene_uses_blender_eevee(), BKE_scene_uses_blender_workbench(), View3D::camera, camera, View3D::clip_end, View3D::clip_start, View3DShading::color_type, copy_m4_m4(), DEG_get_evaluated_object(), depsgraph, Scene::display, ED_view3d_draw_offscreen_imbuf(), ListBase::first, View3DShading::flag, View3D::flag2, View3DOverlay::gpencil_vertex_paint_opacity, View3D::gridflag, height, invert_m4_m4(), ListBase::last, View3D::lens, View3DShading::light, mul_m4_m4m4(), normalize_m4(), NULL, OB_MATERIAL, OB_RENDER, OB_SOLID, OB_TEXTURE, Object::obmat, View3D::overlay, params, RegionView3D::persinv, RegionView3D::persmat, RegionView3D::persp, Scene::r, View3D::regionbase, ARegion::regiondata, ARegion::regiontype, View3DShading::render_pass, RGN_TYPE_WINDOW, RV3D_CAMOB, SCE_PASS_COMBINED, scene, SceneDisplay::shading, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, V3D_LIGHTING_STUDIO, V3D_OFSDRAW_OVERRIDE_SCENE_SETTINGS, V3D_OFSDRAW_SHOW_ANNOTATION, V3D_OFSDRAW_SHOW_GRIDFLOOR, V3D_SHADING_BACKGROUND_WORLD, V3D_SHADING_SCENE_LIGHTS, V3D_SHADING_SCENE_LIGHTS_RENDER, V3D_SHADING_SCENE_WORLD, V3D_SHADING_SCENE_WORLD_RENDER, V3D_SHADING_TEXTURE_COLOR, V3D_SHOW_ANNOTATION, V3D_SHOW_FLOOR, V3D_SHOW_X, V3D_SHOW_Y, RegionView3D::viewinv, RegionView3D::viewmat, width, RegionView3D::winmat, RenderData::xasp, and RenderData::yasp.

Referenced by action_preview_render(), blend_file_thumb_from_camera(), ED_spacetype_sequencer(), object_preview_render(), and screen_opengl_render_doit().

◆ ED_view3d_draw_offscreen_simple()

void ED_view3d_draw_offscreen_simple ( struct Depsgraph depsgraph,
struct Scene scene,
struct View3DShading shading_override,
eDrawType  drawtype,
int  object_type_exclude_viewport_override,
int  object_type_exclude_select_override,
int  winx,
int  winy,
unsigned int  draw_flags,
const float  viewmat[4][4],
const float  winmat[4][4],
float  clip_start,
float  clip_end,
bool  is_xr_surface,
bool  is_image_render,
bool  draw_background,
const char *  viewname,
bool  do_color_management,
struct GPUOffScreen ofs,
struct GPUViewport viewport 
)

Creates own fake 3d views (wrapping ED_view3d_draw_offscreen). Similar too #ED_view_draw_offscreen_imbuf_simple, but takes view/projection matrices as arguments.

Definition at line 1723 of file view3d_draw.c.

References View3D::clip_end, View3D::clip_start, depsgraph, Scene::display, draw_background(), ED_view3d_draw_offscreen(), ListBase::first, View3DShading::flag, View3DOverlay::flag, View3D::flag, View3D::flag2, View3D::grid, View3D::gridflag, View3D::gridlines, View3D::gridsubdiv, ListBase::last, View3D::lens, NULL, OB_ARMATURE, OB_MATERIAL, View3D::object_type_exclude_select, View3D::object_type_exclude_viewport, View3D::overlay, RegionView3D::persp, View3D::regionbase, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_WINDOW, RV3D_PERSP, scene, SceneDisplay::shading, View3D::shading, View3DShading::type, V3D_HIDE_HELPLINES, V3D_HIDE_OVERLAYS, V3D_OFSDRAW_NONE, V3D_OFSDRAW_OVERRIDE_SCENE_SETTINGS, V3D_OFSDRAW_SHOW_ANNOTATION, V3D_OFSDRAW_SHOW_GRIDFLOOR, V3D_OFSDRAW_SHOW_OBJECT_EXTRAS, V3D_OFSDRAW_SHOW_SELECTION, V3D_OFSDRAW_XR_SHOW_CONTROLLERS, V3D_OFSDRAW_XR_SHOW_CUSTOM_OVERLAYS, V3D_OVERLAY_HIDE_BONES, V3D_OVERLAY_HIDE_CURSOR, V3D_OVERLAY_HIDE_MOTION_PATHS, V3D_OVERLAY_HIDE_OBJECT_ORIGINS, V3D_OVERLAY_HIDE_OBJECT_XTRAS, V3D_OVERLAY_HIDE_TEXT, V3D_SELECT_OUTLINE, V3D_SHADING_SCENE_LIGHTS, V3D_SHADING_SCENE_WORLD, V3D_SHOW_ANNOTATION, V3D_SHOW_FLOOR, V3D_SHOW_X, V3D_SHOW_Y, V3D_XR_SESSION_SURFACE, V3D_XR_SHOW_CONTROLLERS, V3D_XR_SHOW_CUSTOM_OVERLAYS, RV3DMatrixStore::viewmat, and RV3DMatrixStore::winmat.

Referenced by wm_xr_draw_view().

◆ ED_view3d_draw_setup_view()

void ED_view3d_draw_setup_view ( const wmWindowManager wm,
wmWindow win,
Depsgraph depsgraph,
Scene scene,
ARegion region,
View3D v3d,
const float  viewmat[4][4],
const float  winmat[4][4],
const rcti rect 
)

◆ ED_view3d_engine_type()

RenderEngineType* ED_view3d_engine_type ( const Scene scene,
int  drawtype 
)

◆ ED_view3d_grid_scale()

float ED_view3d_grid_scale ( const Scene scene,
View3D v3d,
const char **  r_grid_unit 
)

Definition at line 850 of file view3d_draw.c.

References ED_scene_grid_scale(), View3D::grid, and scene.

Referenced by ED_view3d_grid_view_scale().

◆ ED_view3d_grid_steps()

void ED_view3d_grid_steps ( const Scene scene,
View3D v3d,
RegionView3D rv3d,
float  r_grid_steps[STEPS_LEN] 
)

◆ ED_view3d_grid_view_scale()

float ED_view3d_grid_view_scale ( struct Scene scene,
struct View3D v3d,
struct ARegion region,
const char **  r_grid_unit 
)

◆ ED_view3d_mats_rv3d_backup()

struct RV3DMatrixStore* ED_view3d_mats_rv3d_backup ( struct RegionView3D rv3d)

◆ ED_view3d_mats_rv3d_restore()

void ED_view3d_mats_rv3d_restore ( struct RegionView3D rv3d,
struct RV3DMatrixStore rv3dmat_pt 
)

◆ ED_view3d_screen_datamask()

void ED_view3d_screen_datamask ( const bContext C,
const Scene scene,
const bScreen screen,
CustomData_MeshMasks r_cddata_masks 
)

◆ ED_view3d_select_id_validate()

void ED_view3d_select_id_validate ( ViewContext vc)

◆ ED_view3d_update_viewmat()

void ED_view3d_update_viewmat ( Depsgraph depsgraph,
const Scene scene,
View3D v3d,
ARegion region,
const float  viewmat[4][4],
const float  winmat[4][4],
const rcti rect,
bool  offscreen 
)

◆ validate_object_select_id()

static void validate_object_select_id ( struct Depsgraph depsgraph,
ViewLayer view_layer,
ARegion region,
View3D v3d,
Object obact 
)
static

◆ view3d_camera_border()

static void view3d_camera_border ( const Scene scene,
struct Depsgraph depsgraph,
const ARegion region,
const View3D v3d,
const RegionView3D rv3d,
rctf r_viewborder,
const bool  no_shift,
const bool  no_zoom 
)
static

◆ view3d_clipping_test()

static bool view3d_clipping_test ( const float  co[3],
const float  clip[6][4] 
)
static

Definition at line 2095 of file view3d_draw.c.

References plane_point_side_v3().

Referenced by ED_view3d_clipping_test().

◆ view3d_depth_near()

float view3d_depth_near ( struct ViewDepths d)

Utility function to find the closest Z value, use for auto-depth.

Definition at line 2271 of file view3d_draw.c.

References float().

Referenced by view3d_zoom_border_exec(), and view_autodist_depth_margin().

◆ view3d_depths_create()

static ViewDepths* view3d_depths_create ( ARegion region)
static

◆ view3d_depths_rect_create()

void view3d_depths_rect_create ( ARegion region,
rcti rect,
ViewDepths r_d 
)

◆ view3d_draw_border()

static void view3d_draw_border ( const bContext C,
ARegion region 
)
static

◆ view3d_draw_grease_pencil()

static void view3d_draw_grease_pencil ( const bContext UNUSEDC)
static

Draw Info

Definition at line 1144 of file view3d_draw.c.

Referenced by view3d_draw_region_info().

◆ view3d_draw_region_info()

void view3d_draw_region_info ( const bContext C,
ARegion region 
)

◆ view3d_draw_view()

static void view3d_draw_view ( const bContext C,
ARegion region 
)
static

◆ view3d_get_name()

static const char* view3d_get_name ( View3D v3d,
RegionView3D rv3d 
)
static

◆ view3d_main_region_do_render_draw()

static bool view3d_main_region_do_render_draw ( const Scene scene)
static

Definition at line 2535 of file view3d_draw.c.

References RenderData::engine, Scene::r, RE_engines_find(), scene, and type.

Referenced by ED_view3d_calc_render_border().

◆ view3d_main_region_draw()

void view3d_main_region_draw ( const bContext C,
ARegion region 
)

◆ view3d_main_region_setup_offscreen()

static void view3d_main_region_setup_offscreen ( Depsgraph depsgraph,
const Scene scene,
View3D v3d,
ARegion region,
const float  viewmat[4][4],
const float  winmat[4][4] 
)
static

◆ view3d_main_region_setup_view()

static void view3d_main_region_setup_view ( Depsgraph depsgraph,
Scene scene,
View3D v3d,
ARegion region,
const float  viewmat[4][4],
const float  winmat[4][4],
const rcti rect 
)
static

◆ view3d_opengl_read_Z_pixels()

static void view3d_opengl_read_Z_pixels ( GPUViewport viewport,
rcti rect,
void data 
)
static

◆ view3d_stereo3d_active()

static bool view3d_stereo3d_active ( wmWindow win,
const Scene scene,
View3D v3d,
RegionView3D rv3d 
)
static

◆ view3d_stereo3d_setup()

static void view3d_stereo3d_setup ( Depsgraph depsgraph,
Scene scene,
View3D v3d,
ARegion region,
const rcti rect 
)
static

◆ view3d_stereo3d_setup_offscreen()

static void view3d_stereo3d_setup_offscreen ( Depsgraph depsgraph,
const Scene scene,
View3D v3d,
ARegion region,
const float  winmat[4][4],
const char *  viewname 
)
static