|
Blender V5.0
|
#include "DNA_scene_types.h"#include "DNA_vec_types.h"#include "GPU_framebuffer.hh"#include "GPU_texture.hh"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::gpu |
Macros | |
| #define | GLA_PIXEL_OFS 0.375f |
| #define GLA_PIXEL_OFS 0.375f |
Definition at line 17 of file GPU_viewport.hh.
Referenced by GPU_viewport_draw_to_screen_ex(), wm_draw_region_blend(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wmGetProjectionMatrix(), wmOrtho2_pixelspace(), and wmWindowViewport().
| int GPU_viewport_active_view_get | ( | GPUViewport * | viewport | ) |
Definition at line 589 of file gpu_viewport.cc.
References GPUViewport::active_view.
Referenced by DRWContext::acquire_data(), and DRW_view_data_default_lists_from_viewport().
| void GPU_viewport_bind | ( | GPUViewport * | viewport, |
| int | view, | ||
| const rcti * | rect ) |
Definition at line 211 of file gpu_viewport.cc.
References GPUViewport::active_view, BLI_rcti_size_x(), BLI_rcti_size_y(), copy_v2_v2_int(), DRW_gpu_context_enable(), gpu_viewport_textures_create(), gpu_viewport_textures_free(), rect_size(), GPUViewport::size, and view.
Referenced by blender::ed::vse::sequencer_ibuf_get(), and wm_draw_region_bind().
| void GPU_viewport_bind_from_offscreen | ( | GPUViewport * | viewport, |
| GPUOffScreen * | ofs, | ||
| bool | is_xr_surface ) |
Should be called from DRW after DRW_gpu_context_enable.
Definition at line 229 of file gpu_viewport.cc.
References GPUViewport::depth_tx, fb(), GPU_offscreen_height(), GPU_offscreen_viewport_data_get(), GPU_offscreen_width(), gpu_viewport_textures_create(), gpu_viewport_textures_free(), and GPUViewport::size.
Referenced by DRW_draw_render_loop_offscreen().
| blender::gpu::Texture * GPU_viewport_color_texture | ( | GPUViewport * | viewport, |
| int | view ) |
Definition at line 599 of file gpu_viewport.cc.
References GPUViewport::color_render_tx, and view.
Referenced by DRW_view_data_default_lists_from_viewport(), DRWContext::DRWContext(), ViewportColorSampleSession::init(), and wm_draw_region_texture().
| void GPU_viewport_colorspace_set | ( | GPUViewport * | viewport, |
| const ColorManagedViewSettings * | view_settings, | ||
| const ColorManagedDisplaySettings * | display_settings, | ||
| float | dither ) |
HACK(fclem): We copy the settings here to avoid use after free if an update frees the scene and the viewport stays cached (see #75443). But this means the OCIO curve-mapping caching (which is based on CurveMap pointer address) cannot operate correctly and it will create a different OCIO processor for each viewport. We try to only reallocate the curve-map copy if needed to avoid unneeded cache invalidation.
Definition at line 252 of file gpu_viewport.cc.
References BKE_color_managed_display_settings_copy(), BKE_color_managed_view_settings_copy_keep_curve_mapping(), BKE_color_managed_view_settings_free(), BKE_curvemapping_copy(), CurveMapping::changed_timestamp, ColorManagedViewSettings::curve_mapping, GPUViewport::display_settings, GPUViewport::dither, GPUViewport::do_color_management, IMB_colormanagement_display_is_hdr(), GPUViewport::orig_curve_mapping, GPUViewport::use_hdr_display, GPUViewport::view_settings, and ColorManagedViewSettings::view_transform.
Referenced by blender::ed::vse::preview_draw_begin(), and blender::draw::color_management::viewport_settings_apply().
| GPUViewport * GPU_viewport_create | ( | ) |
Definition at line 107 of file gpu_viewport.cc.
References GPUViewport::active_view, GPUViewport::do_color_management, MEM_callocN(), and GPUViewport::size.
Referenced by DRW_draw_render_loop_offscreen(), GPU_viewport_stereo_create(), pygpu_offscreen_draw_view3d(), screen_opengl_render_init(), wm_draw_region_buffer_create(), and wm_xr_session_surface_offscreen_ensure().
| DRWData ** GPU_viewport_data_get | ( | GPUViewport * | viewport | ) |
Definition at line 123 of file gpu_viewport.cc.
References GPUViewport::draw_data.
Referenced by drw_viewport_data_ensure().
| blender::gpu::Texture * GPU_viewport_depth_texture | ( | GPUViewport * | viewport | ) |
Definition at line 609 of file gpu_viewport.cc.
References GPUViewport::depth_tx.
Referenced by DRW_draw_depth_loop(), DRW_view_data_default_lists_from_viewport(), gizmo_find_intersected_3d(), view3d_depths_create(), and view3d_gpu_read_Z_pixels().
| bool GPU_viewport_do_update | ( | GPUViewport * | viewport | ) |
Definition at line 100 of file gpu_viewport.cc.
References DO_UPDATE, GPUViewport::flag, and ret.
Referenced by wm_region_test_render_do_draw().
| void GPU_viewport_draw_to_screen | ( | GPUViewport * | viewport, |
| int | view, | ||
| const rcti * | rect ) |
Merge and draw the buffers of viewport into the currently active framebuffer, performing color transform to display space.
| rect | Coordinates to draw into. By swapping min and max values, drawing can be done with inversed axis coordinates (upside down or sideways). |
Definition at line 545 of file gpu_viewport.cc.
References GPU_viewport_draw_to_screen_ex(), and view.
Referenced by wm_draw_region_blit().
| void GPU_viewport_draw_to_screen_ex | ( | GPUViewport * | viewport, |
| int | view, | ||
| const rcti * | rect, | ||
| bool | display_colorspace, | ||
| bool | do_overlay_merge ) |
Version of GPU_viewport_draw_to_screen() that lets caller decide if display colorspace transform should be performed.
Definition at line 494 of file gpu_viewport.cc.
References BLI_assert, BLI_rcti_sanitize(), BLI_rcti_size_x(), BLI_rcti_size_y(), GPUViewport::color_render_tx, float, GLA_PIXEL_OFS, GPU_texture_height(), GPU_texture_width(), gpu_viewport_draw_colormanaged(), view, w(), rctf::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rctf::ymin, and rcti::ymin.
Referenced by GPU_viewport_draw_to_screen(), and wm_xr_draw_viewport_buffers_to_active_framebuffer().
| blender::gpu::FrameBuffer * GPU_viewport_framebuffer_overlay_get | ( | GPUViewport * | viewport | ) |
Definition at line 625 of file gpu_viewport.cc.
References GPU_framebuffer_ensure_config, and GPUViewport::overlay_fb.
Referenced by blender::ed::vse::draw_registered_callbacks(), blender::ed::space_node::node_draw_space(), blender::ed::vse::preview_draw_overlay_begin(), blender::ed::vse::sequencer_preview_draw_empty(), and blender::ed::vse::timeline_draw_context_get().
| blender::gpu::FrameBuffer * GPU_viewport_framebuffer_render_get | ( | GPUViewport * | viewport | ) |
Color render and overlay frame-buffers for drawing outside of DRW module.
Definition at line 614 of file gpu_viewport.cc.
References GPU_framebuffer_ensure_config, and GPUViewport::render_fb.
Referenced by blender::ed::vse::preview_draw_color_render_begin().
| void GPU_viewport_free | ( | GPUViewport * | viewport | ) |
Must be executed inside Draw-manager OpenGL Context.
Definition at line 636 of file gpu_viewport.cc.
References BKE_color_managed_view_settings_free(), GPUViewport::draw_data, DRW_viewport_data_free(), gpu_viewport_batch_free(), gpu_viewport_textures_free(), MEM_freeN(), and GPUViewport::view_settings.
Referenced by BPyGPUOffScreen__tp_dealloc(), DRW_draw_render_loop_offscreen(), gpu_viewport_textures_create(), pygpu_offscreen_free(), screen_opengl_render_end(), wm_draw_region_buffer_free(), wm_xr_session_surface_free_data(), and wm_xr_session_surface_offscreen_ensure().
| bool GPU_viewport_is_stereo_get | ( | GPUViewport * | viewport | ) |
Definition at line 594 of file gpu_viewport.cc.
References GPUViewport::flag, and GPU_VIEWPORT_STEREO.
| blender::gpu::Texture * GPU_viewport_overlay_texture | ( | GPUViewport * | viewport, |
| int | view ) |
Definition at line 604 of file gpu_viewport.cc.
References GPUViewport::color_overlay_tx, and view.
Referenced by DRW_view_data_default_lists_from_viewport().
| void GPU_viewport_stereo_composite | ( | GPUViewport * | viewport, |
| Stereo3dFormat * | stereo_format ) |
Merge the stereo textures. color and overlay texture will be modified.
Definition at line 293 of file gpu_viewport.cc.
References Stereo3dFormat::anaglyph_type, GPUViewport::color_overlay_tx, GPUViewport::color_render_tx, Stereo3dFormat::display_mode, ELEM, Stereo3dFormat::flag, GPU_color_mask(), GPU_framebuffer_bind(), GPU_framebuffer_ensure_config, GPU_framebuffer_restore(), GPU_matrix_identity_projection_set(), GPU_matrix_identity_set(), GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), GPU_PRIM_TRI_STRIP, GPU_SHADER_2D_IMAGE_OVERLAYS_STEREO_MERGE, GPU_texture_bind(), GPU_texture_unbind(), GPU_vertformat_attr_add(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1i(), immVertex2f(), immVertexFormat(), Stereo3dFormat::interlace_type, pos, S3D_ANAGLYPH_GREENMAGENTA, S3D_ANAGLYPH_REDCYAN, S3D_ANAGLYPH_YELLOWBLUE, S3D_DISPLAY_ANAGLYPH, S3D_DISPLAY_INTERLACE, S3D_INTERLACE_SWAP, SET_FLAG_FROM_TEST, and GPUViewport::stereo_comp_fb.
Referenced by wm_draw_area_offscreen().
| GPUViewport * GPU_viewport_stereo_create | ( | ) |
Definition at line 116 of file gpu_viewport.cc.
References GPUViewport::flag, GPU_viewport_create(), and GPU_VIEWPORT_STEREO.
Referenced by wm_draw_region_buffer_create().
| void GPU_viewport_tag_update | ( | GPUViewport * | viewport | ) |
Definition at line 95 of file gpu_viewport.cc.
References DO_UPDATE, and GPUViewport::flag.
Referenced by DRW_viewport_request_redraw(), ED_view3d_draw_offscreen(), and pygpu_offscreen_draw_view3d().
| void GPU_viewport_unbind | ( | GPUViewport * | viewport | ) |
Definition at line 583 of file gpu_viewport.cc.
References DRW_gpu_context_disable(), and GPU_framebuffer_restore().
Referenced by blender::ed::vse::sequencer_ibuf_get(), and wm_draw_region_unbind().
| void GPU_viewport_unbind_from_offscreen | ( | GPUViewport * | viewport, |
| GPUOffScreen * | ofs, | ||
| bool | display_colorspace, | ||
| bool | do_overlay_merge ) |
Clear vars assigned from offscreen, so we don't free data owned by GPUOffScreen.
Definition at line 550 of file gpu_viewport.cc.
References GPUViewport::color_render_tx, GPUViewport::depth_tx, GPU_DEPTH_NONE, GPU_depth_test(), GPU_offscreen_bind(), gpu_viewport_draw_colormanaged(), view, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by DRW_draw_render_loop_offscreen().