Blender
V3.3
|
#include "BLI_sys_types.h"
Go to the source code of this file.
Classes | |
struct | GPUMatrixUnproject_Precalc |
Macros | |
#define | _GPU_MAT3_CONST_CAST(x) (const float(*)[3])(x) |
#define | _GPU_MAT3_CAST(x) (float(*)[3])(x) |
#define | _GPU_MAT4_CONST_CAST(x) (const float(*)[4])(x) |
#define | _GPU_MAT4_CAST(x) (float(*)[4])(x) |
#define | GPU_matrix_mul(x) GPU_matrix_mul(_GPU_MAT4_CONST_CAST(x)) |
#define | GPU_matrix_set(x) GPU_matrix_set(_GPU_MAT4_CONST_CAST(x)) |
#define | GPU_matrix_projection_set(x) GPU_matrix_projection_set(_GPU_MAT4_CONST_CAST(x)) |
#define | GPU_matrix_model_view_get(x) GPU_matrix_model_view_get(_GPU_MAT4_CAST(x)) |
#define | GPU_matrix_projection_get(x) GPU_matrix_projection_get(_GPU_MAT4_CAST(x)) |
#define | GPU_matrix_model_view_projection_get(x) GPU_matrix_model_view_projection_get(_GPU_MAT4_CAST(x)) |
#define | GPU_matrix_normal_get(x) GPU_matrix_normal_get(_GPU_MAT3_CAST(x)) |
#define | GPU_matrix_normal_inverse_get(x) GPU_matrix_normal_inverse_get(_GPU_MAT3_CAST(x)) |
#define | GPU_MATRIX_ORTHO_CLIP_NEAR_DEFAULT (-100) |
#define | GPU_MATRIX_ORTHO_CLIP_FAR_DEFAULT (100) |
Definition at line 217 of file GPU_matrix.h.
Definition at line 219 of file GPU_matrix.h.
#define GPU_matrix_model_view_get | ( | x | ) | GPU_matrix_model_view_get(_GPU_MAT4_CAST(x)) |
Definition at line 227 of file GPU_matrix.h.
#define GPU_matrix_model_view_projection_get | ( | x | ) | GPU_matrix_model_view_projection_get(_GPU_MAT4_CAST(x)) |
Definition at line 229 of file GPU_matrix.h.
#define GPU_matrix_mul | ( | x | ) | GPU_matrix_mul(_GPU_MAT4_CONST_CAST(x)) |
Definition at line 224 of file GPU_matrix.h.
#define GPU_matrix_normal_get | ( | x | ) | GPU_matrix_normal_get(_GPU_MAT3_CAST(x)) |
Definition at line 231 of file GPU_matrix.h.
#define GPU_matrix_normal_inverse_get | ( | x | ) | GPU_matrix_normal_inverse_get(_GPU_MAT3_CAST(x)) |
Definition at line 232 of file GPU_matrix.h.
#define GPU_MATRIX_ORTHO_CLIP_FAR_DEFAULT (100) |
Definition at line 238 of file GPU_matrix.h.
#define GPU_MATRIX_ORTHO_CLIP_NEAR_DEFAULT (-100) |
Definition at line 237 of file GPU_matrix.h.
#define GPU_matrix_projection_get | ( | x | ) | GPU_matrix_projection_get(_GPU_MAT4_CAST(x)) |
Definition at line 228 of file GPU_matrix.h.
#define GPU_matrix_projection_set | ( | x | ) | GPU_matrix_projection_set(_GPU_MAT4_CONST_CAST(x)) |
Definition at line 226 of file GPU_matrix.h.
#define GPU_matrix_set | ( | x | ) | GPU_matrix_set(_GPU_MAT4_CONST_CAST(x)) |
Definition at line 225 of file GPU_matrix.h.
Set uniform values for currently bound shader.
Definition at line 611 of file gpu_matrix.cc.
References GPU_matrix_model_view_get(), GPU_matrix_model_view_projection_get(), GPU_matrix_normal_get(), GPU_matrix_projection_get(), gpu_matrix_state_active_set_dirty(), GPU_shader_get_builtin_uniform(), GPU_shader_uniform_vector(), GPU_UNIFORM_MODELVIEW, GPU_UNIFORM_MODELVIEW_INV, GPU_UNIFORM_MVP, GPU_UNIFORM_NORMAL, GPU_UNIFORM_PROJECTION, GPU_UNIFORM_PROJECTION_INV, invert_m4(), N, and P().
Referenced by GPU_shader_bind(), and immBindShader().
Definition at line 655 of file gpu_matrix.cc.
References blender::gpu::Context::get(), blender::gpu::Context::matrix_state, and state.
Referenced by GPU_shader_bind().
void GPU_matrix_frustum_set | ( | float | left, |
float | right, | ||
float | bottom, | ||
float | top, | ||
float | near, | ||
float | far | ||
) |
Definition at line 422 of file gpu_matrix.cc.
References bottom, CHECKMAT, gpu_matrix_state_active_set_dirty(), left, mat4_frustum_set(), Projection, right, and top.
Referenced by GPU_matrix_perspective_set(), and view3d_winmatrix_set().
Definition at line 154 of file gpu_matrix.cc.
References CHECKMAT, gpu_matrix_state_active_set_dirty(), Projection, and unit_m4().
Referenced by DRW_draw_render_loop_offscreen(), DRW_transform_none(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), playanim_toscreen(), and sequencer_draw_display_buffer().
Definition at line 168 of file gpu_matrix.cc.
References gpu_matrix_state_active_set_dirty(), ModelView, and unit_m4().
Referenced by blender::ed::space_node::draw_nodespace_back_pix(), DRW_draw_render_loop_offscreen(), drw_text_cache_draw_ex(), DRW_transform_none(), ED_region_pixelspace(), ED_view3d_draw_offscreen(), gizmo_ruler_draw(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::space_node::node_draw_space(), playanim_toscreen(), pygpu_matrix_load_identity(), screen_preview_draw(), sequencer_draw_display_buffer(), UI_block_draw(), UI_view2d_view_restore(), wmPartialViewport(), wmViewport(), and wmWindowViewport().
void GPU_matrix_look_at | ( | float | eyeX, |
float | eyeY, | ||
float | eyeZ, | ||
float | centerX, | ||
float | centerY, | ||
float | centerZ, | ||
float | upX, | ||
float | upY, | ||
float | upZ | ||
) |
Definition at line 437 of file gpu_matrix.cc.
References GPU_matrix_mul(), GPU_matrix_translate_3f(), and mat4_look_from_origin().
Definition at line 552 of file gpu_matrix.cc.
References copy_m4_m4(), and ModelView.
Referenced by GPU_matrix_bind(), and GPU_matrix_normal_get().
Definition at line 572 of file gpu_matrix.cc.
References ModelView, mul_m4_m4m4(), and Projection.
Referenced by GPU_matrix_bind().
Definition at line 246 of file gpu_matrix.cc.
References CHECKMAT, gpu_matrix_state_active_set_dirty(), ModelView, and mul_m4_m4_post().
Referenced by GPU_matrix_look_at(), GPU_matrix_rotate_3fv(), GPU_matrix_scale_1f(), GPU_matrix_scale_2f(), GPU_matrix_scale_3f(), GPU_matrix_translate_2f(), and GPU_matrix_translate_3f().
Definition at line 583 of file gpu_matrix.cc.
References copy_m3_m4(), GPU_matrix_model_view_get(), invert_m3(), and transpose_m3().
Referenced by GPU_matrix_bind(), and GPU_matrix_normal_inverse_get().
Definition at line 598 of file gpu_matrix.cc.
References GPU_matrix_normal_get(), and invert_m3().
Definition at line 414 of file gpu_matrix.cc.
References bottom, CHECKMAT, gpu_matrix_state_active_set_dirty(), left, mat4_ortho_set(), right, and top.
void GPU_matrix_ortho_set | ( | float | left, |
float | right, | ||
float | bottom, | ||
float | top, | ||
float | near, | ||
float | far | ||
) |
Definition at line 399 of file gpu_matrix.cc.
References bottom, CHECKMAT, gpu_matrix_state_active_set_dirty(), left, mat4_ortho_set(), Projection, right, and top.
Referenced by playanim_gl_matrix(), view3d_winmatrix_set(), and wmOrtho2().
Definition at line 406 of file gpu_matrix.cc.
References CHECKMAT, gpu_matrix_state_active_set_dirty(), and Projection.
Referenced by gizmo_axis_draw(), and ui_draw_but_UNITVEC().
Definition at line 430 of file gpu_matrix.cc.
References GPU_matrix_frustum_set(), M_PI, and tanf.
Definition at line 126 of file gpu_matrix.cc.
References BLI_assert, gpu_matrix_state_active_set_dirty(), and ModelViewStack.
Referenced by arrow_draw_geom(), arrow_draw_intern(), blf_batch_draw_begin(), blf_draw_gl__end(), button2d_draw_intern(), clip_draw_grease_pencil(), clip_main_region_draw(), curve_draw_stroke_3d(), dial_3d_draw_util(), dial_ghostarc_draw_helpline(), draw_channel_headers(), draw_distortion(), draw_fcurve(), draw_fcurve_curve_bezts(), draw_fcurve_curve_samples(), draw_fcurve_sample_control(), draw_marker_areas(), draw_marker_outline(), draw_marker_slide_zones(), blender::ed::space_node::draw_nodespace_back_pix(), draw_plane_marker_image(), draw_render_info(), draw_seq_in_view(), draw_stabilization_border(), draw_tracking_tracks(), drawEdgeSlide(), drawLine(), drawPropCircle(), drawVertSlide(), DRW_draw_cursor(), DRW_draw_cursor_2d_ex(), drw_text_cache_draw_ex(), dyntopo_detail_size_edit_draw(), ED_gizmo_draw_preset_facemap(), ed_gizmo_draw_preset_geometry(), ED_markers_draw(), ED_mask_draw_region(), ED_region_image_metadata_draw(), ED_view3d_draw_offscreen(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), gizmo_axis_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_primitive_draw_intern(), gizmo_ruler_draw(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move3d_draw_intern(), blender::ed::space_node::node_draw_space(), paint_cursor_cursor_draw_3d_view_brush_cursor_active(), paint_cursor_draw_3d_view_brush_cursor_inactive(), paint_draw_alpha_overlay(), paint_draw_cursor_overlay(), paint_draw_curve_cursor(), paint_draw_tex_overlay(), panel_draw_aligned_widgets(), playanim_toscreen(), pygpu_matrix_pop(), pygpu_matrix_stack_context_exit(), radial_control_paint_cursor(), radial_control_paint_tex(), region_draw_azones(), screen_preview_draw(), SCULPT_cloth_simulation_limits_draw(), SCULPT_layer_brush_height_preview_draw(), sequencer_draw_display_buffer(), timeline_cache_draw_single(), tracking_segment_knot_cb(), transform_draw_cursor_draw(), UI_block_draw(), ui_draw_but_UNITVEC(), ui_draw_pie_center(), voxel_size_edit_draw(), wm_software_cursor_draw_bitmap(), and wm_xr_controller_model_draw().
Definition at line 140 of file gpu_matrix.cc.
References BLI_assert, gpu_matrix_state_active_set_dirty(), and ProjectionStack.
Referenced by draw_horizontal_scale_indicators(), blender::ed::space_node::draw_nodespace_back_pix(), blender::ed::space_node::draw_tree_path(), draw_vertical_scale_indicators(), drawSnapping(), DRW_draw_render_loop_2d_ex(), ED_time_scrub_channel_search_draw(), ED_time_scrub_draw(), ED_time_scrub_draw_current_frame(), ED_view3d_draw_offscreen(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), gizmo_axis_draw(), gizmo_ruler_draw(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), paint_cursor_cursor_draw_3d_view_brush_cursor_active(), paint_cursor_draw_3d_view_brush_cursor_inactive(), playanim_toscreen(), pygpu_matrix_pop_projection(), pygpu_matrix_stack_context_exit(), sequencer_draw_display_buffer(), UI_block_draw(), ui_draw_but_UNITVEC(), and view2d_draw_lines_internal().
void GPU_matrix_project_2fv | ( | const float | world[3], |
const float | model[4][4], | ||
const float | proj[4][4], | ||
const int | view[4], | ||
float | r_win[2] | ||
) |
Definition at line 481 of file gpu_matrix.cc.
References mul_m4_v4(), mul_v2_fl(), mul_v4_m4v3(), v, view, and world.
Referenced by ED_view3d_project_v2().
void GPU_matrix_project_3fv | ( | const float | world[3], |
const float | model[4][4], | ||
const float | proj[4][4], | ||
const int | view[4], | ||
float | r_win[3] | ||
) |
Definition at line 461 of file gpu_matrix.cc.
References mul_m4_v4(), mul_v3_fl(), mul_v4_m4v3(), v, view, and world.
Referenced by ED_view3d_project_v3().
Definition at line 562 of file gpu_matrix.cc.
References copy_m4_m4(), and Projection.
Referenced by GPU_matrix_bind(), and GPU_polygon_offset().
Definition at line 161 of file gpu_matrix.cc.
References CHECKMAT, copy_m4_m4(), gpu_matrix_state_active_set_dirty(), and Projection.
Referenced by GPU_polygon_offset().
Definition at line 119 of file gpu_matrix.cc.
References BLI_assert, copy_m4_m4(), MATRIX_STACK_DEPTH, ModelView, and ModelViewStack.
Referenced by arrow_draw_geom(), arrow_draw_intern(), blf_batch_draw_begin(), blf_draw_gl__start(), button2d_draw_intern(), clip_draw_grease_pencil(), clip_main_region_draw(), curve_draw_stroke_3d(), dial_3d_draw_util(), dial_ghostarc_draw_helpline(), draw_channel_headers(), draw_distortion(), draw_fcurve(), draw_fcurve_curve_bezts(), draw_fcurve_curve_samples(), draw_fcurve_sample_control(), draw_marker_areas(), draw_marker_outline(), draw_marker_slide_zones(), blender::ed::space_node::draw_nodespace_back_pix(), draw_plane_marker_image(), draw_render_info(), draw_seq_in_view(), draw_stabilization_border(), draw_tracking_tracks(), drawEdgeSlide(), drawLine(), drawPropCircle(), drawVertSlide(), DRW_draw_cursor(), DRW_draw_cursor_2d_ex(), drw_text_cache_draw_ex(), dyntopo_detail_size_edit_draw(), ED_gizmo_draw_preset_facemap(), ed_gizmo_draw_preset_geometry(), ED_markers_draw(), ED_mask_draw_region(), ED_region_image_metadata_draw(), ED_view3d_draw_offscreen(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), gizmo_axis_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_primitive_draw_intern(), gizmo_ruler_draw(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move3d_draw_intern(), blender::ed::space_node::node_draw_space(), paint_cursor_cursor_draw_3d_view_brush_cursor_active(), paint_cursor_draw_3d_view_brush_cursor_inactive(), paint_draw_alpha_overlay(), paint_draw_cursor_overlay(), paint_draw_curve_cursor(), paint_draw_tex_overlay(), panel_draw_aligned_widgets(), playanim_toscreen(), pygpu_matrix_push(), pygpu_matrix_stack_context_enter(), radial_control_paint_cursor(), radial_control_paint_tex(), region_draw_azones(), screen_preview_draw(), SCULPT_cloth_simulation_limits_draw(), SCULPT_layer_brush_height_preview_draw(), sequencer_draw_display_buffer(), timeline_cache_draw_single(), tracking_segment_knot_cb(), transform_draw_cursor_draw(), UI_block_draw(), ui_draw_but_UNITVEC(), ui_draw_pie_center(), voxel_size_edit_draw(), wm_software_cursor_draw_bitmap(), and wm_xr_controller_model_draw().
Definition at line 133 of file gpu_matrix.cc.
References BLI_assert, copy_m4_m4(), MATRIX_STACK_DEPTH, Projection, and ProjectionStack.
Referenced by draw_horizontal_scale_indicators(), blender::ed::space_node::draw_nodespace_back_pix(), blender::ed::space_node::draw_tree_path(), draw_vertical_scale_indicators(), drawSnapping(), DRW_draw_render_loop_2d_ex(), ED_time_scrub_channel_search_draw(), ED_time_scrub_draw(), ED_time_scrub_draw_current_frame(), ED_view3d_draw_offscreen(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), gizmo_axis_draw(), gizmo_ruler_draw(), gpencil_render_offscreen(), GPU_viewport_stereo_composite(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), paint_cursor_cursor_draw_3d_view_brush_cursor_active(), paint_cursor_draw_3d_view_brush_cursor_inactive(), playanim_toscreen(), pygpu_matrix_push_projection(), pygpu_matrix_stack_context_enter(), sequencer_draw_display_buffer(), UI_block_draw(), ui_draw_but_UNITVEC(), and view2d_draw_lines_internal().
To Identity transform & empty stack.
Definition at line 86 of file gpu_matrix.cc.
References blender::gpu::Context::get(), gpu_matrix_state_active_set_dirty(), blender::gpu::Context::matrix_state, ModelView, Projection, state, and unit_m4().
Referenced by pygpu_matrix_reset(), and screen_opengl_render_doit().
Definition at line 253 of file gpu_matrix.cc.
References DEG2RADF, ModelView, and rotate_m4().
Referenced by blf_draw_gl__start(), paint_draw_tex_overlay(), and radial_control_paint_tex().
Axis of rotation should be a unit vector.
Definition at line 261 of file gpu_matrix.cc.
References GPU_matrix_rotate_3fv(), x, y, and z.
Referenced by dial_ghostarc_draw_helpline(), and radial_control_paint_cursor().
Axis of rotation should be a unit vector.
Definition at line 267 of file gpu_matrix.cc.
References axis_angle_to_mat4(), DEG2RADF, and GPU_matrix_mul().
Referenced by GPU_matrix_rotate_3f().
Definition at line 274 of file gpu_matrix.cc.
References CHECKMAT, DEG2RADF, gpu_matrix_state_active_set_dirty(), ModelView, and rotate_m4().
Referenced by transform_draw_cursor_draw().
Definition at line 209 of file gpu_matrix.cc.
References GPU_matrix_mul(), and scale_m4_fl().
Referenced by curve_draw_stroke_3d(), gizmo_axis_draw(), paint_draw_cursor_overlay(), pygpu_matrix_scale_uniform(), ui_draw_but_UNITVEC(), and wm_xr_controller_model_draw().
Definition at line 216 of file gpu_matrix.cc.
References GPU_matrix_mul(), x, and y.
Referenced by button2d_draw_intern(), clip_main_region_draw(), draw_distortion(), draw_fcurve(), draw_fcurve_curve_bezts(), draw_fcurve_curve_samples(), draw_fcurve_sample_control(), draw_render_info(), draw_stabilization_border(), draw_tracking_tracks(), drawPropCircle(), DRW_draw_cursor(), DRW_draw_cursor_2d_ex(), ED_markers_draw(), ED_mask_draw_region(), ED_region_image_metadata_draw(), external_image_space_matrix_set(), GPU_matrix_scale_2fv(), paint_draw_tex_overlay(), timeline_cache_draw_single(), and tracking_segment_knot_cb().
Definition at line 226 of file gpu_matrix.cc.
References GPU_matrix_scale_2f().
Referenced by pygpu_matrix_scale(), and radial_control_paint_cursor().
Definition at line 231 of file gpu_matrix.cc.
References GPU_matrix_mul(), x, y, and z.
Referenced by arrow_draw_geom(), and GPU_matrix_scale_3fv().
Definition at line 241 of file gpu_matrix.cc.
References GPU_matrix_scale_3f().
Referenced by blf_draw_gl__start(), and pygpu_matrix_scale().
Definition at line 147 of file gpu_matrix.cc.
References CHECKMAT, copy_m4_m4(), gpu_matrix_state_active_set_dirty(), and ModelView.
Definition at line 174 of file gpu_matrix.cc.
References GPU_matrix_mul(), unit_m4(), x, and y.
Referenced by button2d_draw_intern(), clip_main_region_draw(), draw_distortion(), draw_fcurve(), draw_fcurve_curve_bezts(), draw_fcurve_curve_samples(), draw_fcurve_sample_control(), draw_render_info(), draw_stabilization_border(), draw_tracking_tracks(), drawPropCircle(), DRW_draw_cursor(), DRW_draw_cursor_2d_ex(), ED_image_draw_cursor(), ED_mask_draw_region(), ED_region_image_metadata_draw(), external_image_space_matrix_set(), GPU_matrix_translate_2fv(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), paint_draw_alpha_overlay(), paint_draw_cursor_overlay(), paint_draw_curve_cursor(), paint_draw_tex_overlay(), panel_draw_aligned_widgets(), radial_control_paint_cursor(), region_draw_azones(), screen_opengl_render_doit(), screen_preview_draw(), timeline_cache_draw_single(), tracking_segment_knot_cb(), ui_draw_but_UNITVEC(), and ui_draw_pie_center().
Definition at line 183 of file gpu_matrix.cc.
References GPU_matrix_translate_2f().
Referenced by clip_draw_grease_pencil(), draw_marker_areas(), draw_marker_outline(), draw_marker_slide_zones(), ED_image_draw_cursor(), paint_draw_cursor_overlay(), paint_draw_tex_overlay(), and pygpu_matrix_translate().
Definition at line 188 of file gpu_matrix.cc.
References CHECKMAT, GPU_matrix_mul(), gpu_matrix_state_active_set_dirty(), ModelView, translate_m4(), unit_m4(), x, y, and z.
Referenced by arrow_draw_geom(), blf_draw_gl__start(), curve_draw_stroke_3d(), GPU_matrix_look_at(), GPU_matrix_translate_3fv(), and transform_draw_cursor_draw().
Definition at line 204 of file gpu_matrix.cc.
References GPU_matrix_translate_3f().
Referenced by gizmo_axis_draw(), pygpu_matrix_translate(), and transform_draw_cursor_draw().
bool GPU_matrix_unproject_3fv | ( | const float | win[3], |
const float | model_inverted[4][4], | ||
const float | proj[4][4], | ||
const int | view[4], | ||
float | r_world[3] | ||
) |
The same result could be obtained as follows:
But that solution loses much precision. Therefore, get the same result without inverting the project view matrix.
Definition at line 500 of file gpu_matrix.cc.
References is_finite_v3(), mul_v3_m4v3(), usdtokens::out(), view, and zero_v3().
Referenced by ED_view3d_unproject_v3(), and gizmo_find_intersected_3d_intern().
bool GPU_matrix_unproject_precalc | ( | struct GPUMatrixUnproject_Precalc * | unproj_precalc, |
const float | model[4][4], | ||
const float | proj[4][4], | ||
const int | view[4] | ||
) |
Definition at line 721 of file gpu_matrix.cc.
References GPU_matrix_projection_get(), GPU_matrix_projection_set(), GPU_polygon_offset_calc(), and offset.
Referenced by annotation_draw_strokes(), ED_view3d_polygon_offset(), gpencil_draw_strokes(), and knifetool_draw().
Own working polygon offset.
Definition at line 690 of file gpu_matrix.cc.
References float(), and UNUSED_VARS.
Referenced by DRW_view_create_with_zoffset(), and GPU_polygon_offset().