Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | GPUAttachment |
struct | GPULoadStore |
Macros | |
#define | NULL_LOAD_STORE |
Typedefs | |
typedef enum eGPUFrameBufferBits | eGPUFrameBufferBits |
typedef struct GPUAttachment | GPUAttachment |
typedef enum eGPUBackBuffer | eGPUBackBuffer |
typedef struct GPUFrameBuffer | GPUFrameBuffer |
typedef struct GPUOffScreen | GPUOffScreen |
typedef struct GPULoadStore | GPULoadStore |
Enumerations | |
enum | eGPUFrameBufferBits { GPU_COLOR_BIT = (1 << 0) , GPU_DEPTH_BIT = (1 << 1) , GPU_STENCIL_BIT = (1 << 2) } |
enum | eGPUBackBuffer { GPU_BACKBUFFER_LEFT = 0 , GPU_BACKBUFFER_RIGHT } |
Functions | |
GPUFrameBuffer * | GPU_framebuffer_create (const char *name) |
void | GPU_framebuffer_free (GPUFrameBuffer *fb) |
void | GPU_framebuffer_bind (GPUFrameBuffer *fb) |
void | GPU_framebuffer_bind_no_srgb (GPUFrameBuffer *fb) |
void | GPU_framebuffer_restore (void) |
void | GPU_framebuffer_bind_loadstore (GPUFrameBuffer *fb, const GPULoadStore *load_store_actions, uint actions_len) |
bool | GPU_framebuffer_bound (GPUFrameBuffer *fb) |
bool | GPU_framebuffer_check_valid (GPUFrameBuffer *fb, char err_out[256]) |
GPUFrameBuffer * | GPU_framebuffer_active_get (void) |
GPUFrameBuffer * | GPU_framebuffer_back_get (void) |
void | GPU_framebuffer_texture_attach_ex (GPUFrameBuffer *gpu_fb, GPUAttachment attachment, int slot) |
void | GPU_framebuffer_texture_detach (GPUFrameBuffer *fb, struct GPUTexture *tex) |
GPU Frame-buffer
Definition in file GPU_framebuffer.h.
#define NULL_LOAD_STORE |
Definition at line 61 of file GPU_framebuffer.h.
typedef enum eGPUBackBuffer eGPUBackBuffer |
typedef enum eGPUFrameBufferBits eGPUFrameBufferBits |
typedef struct GPUAttachment GPUAttachment |
typedef struct GPUFrameBuffer GPUFrameBuffer |
Opaque type hiding blender::gpu::FrameBuffer.
Definition at line 1 of file GPU_framebuffer.h.
typedef struct GPULoadStore GPULoadStore |
typedef struct GPUOffScreen GPUOffScreen |
Definition at line 1 of file GPU_framebuffer.h.
enum eGPUBackBuffer |
Enumerator | |
---|---|
GPU_BACKBUFFER_LEFT | |
GPU_BACKBUFFER_RIGHT |
Definition at line 37 of file GPU_framebuffer.h.
enum eGPUFrameBufferBits |
Enumerator | |
---|---|
GPU_COLOR_BIT | |
GPU_DEPTH_BIT | |
GPU_STENCIL_BIT |
Definition at line 20 of file GPU_framebuffer.h.
GPUFrameBuffer* GPU_framebuffer_active_get | ( | void | ) |
Definition at line 284 of file gpu_framebuffer.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), and blender::gpu::wrap().
Referenced by blender::gpu::MTLTexture::clear(), blender::gpu::GLTexture::clear(), blender::ed::space_node::draw_nodespace_back_pix(), draw_shgroup(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), ED_region_do_draw(), ED_view3d_draw_offscreen_imbuf(), GPU_framebuffer_bound(), GPU_offscreen_bind(), gpu_select_pick_load_id(), OVERLAY_edit_uv_draw(), pygpu_framebuffer_stack_push_and_bind_or_error(), sequencer_ibuf_get(), WM_opengl_context_activate(), WM_opengl_context_create(), WM_opengl_context_dispose(), WM_opengl_context_release(), wm_surface_make_drawable(), wm_surface_reset_drawable(), wm_window_make_drawable(), wm_window_reset_drawable(), and wm_xr_session_surface_draw().
GPUFrameBuffer* GPU_framebuffer_back_get | ( | void | ) |
Returns the default frame-buffer. Will always exists even if it's just a dummy.
Definition at line 290 of file gpu_framebuffer.cc.
References blender::gpu::Context::back_left, blender::gpu::Context::get(), and blender::gpu::wrap().
Referenced by DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), WM_opengl_context_activate(), WM_opengl_context_create(), WM_opengl_context_dispose(), WM_opengl_context_release(), wm_surface_make_drawable(), wm_surface_reset_drawable(), wm_window_make_drawable(), and wm_window_reset_drawable().
void GPU_framebuffer_bind | ( | GPUFrameBuffer * | fb | ) |
Definition at line 243 of file gpu_framebuffer.cc.
References blender::gpu::unwrap().
Referenced by blender::eevee::Film::accumulate(), blender::gpu::MTLTexture::clear(), blender::gpu::GLTexture::clear(), blender::eevee::Film::display(), dof_dilate_tiles_pass_draw(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::draw_scene(), draw_timeline_seq(), DRW_curves_update(), DRW_draw_callbacks_post_scene(), DRW_draw_depth_loop(), DRW_draw_depth_object(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_loop(), drw_engines_draw_scene(), DRW_hair_update(), DRW_select_buffer_read(), ED_region_do_draw(), ED_view3d_draw_offscreen_imbuf(), 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_material_output_accumulate(), EEVEE_mist_output_accumulate(), EEVEE_motion_blur_cache_finish(), EEVEE_motion_blur_draw(), EEVEE_occlusion_compute(), EEVEE_occlusion_draw_debug(), EEVEE_occlusion_output_accumulate(), EEVEE_reflection_compute(), EEVEE_reflection_output_accumulate(), EEVEE_refraction_compute(), eevee_render_color_result(), EEVEE_render_draw(), eevee_render_draw_background(), EEVEE_renderpasses_draw(), 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_subsurface_output_init(), EEVEE_temporal_sampling_draw(), EEVEE_update_noise(), EEVEE_velocity_resolve(), EEVEE_volumes_compute(), EEVEE_volumes_output_accumulate(), EEVEE_volumes_resolve(), external_draw_scene(), gizmo_find_intersected_3d(), GPENCIL_antialiasing_draw(), gpencil_draw_mask(), GPENCIL_draw_object(), GPENCIL_draw_scene(), GPENCIL_draw_scene_depth_only(), GPENCIL_render_init(), GPENCIL_render_result_combined(), GPU_framebuffer_bind_loadstore(), GPU_offscreen_unbind(), GPU_viewport_stereo_composite(), lightbake_render_scene_face(), lightbake_render_scene_reflected(), lightbake_render_world_face(), material_renderpass_accumulate(), OVERLAY_antialiasing_end(), OVERLAY_antialiasing_start(), OVERLAY_draw_scene(), OVERLAY_edit_curve_draw(), OVERLAY_edit_lattice_draw(), OVERLAY_edit_mesh_draw(), OVERLAY_edit_particle_draw(), OVERLAY_edit_text_draw(), OVERLAY_edit_uv_draw(), OVERLAY_image_scene_background_draw(), OVERLAY_outline_draw(), OVERLAY_paint_draw(), OVERLAY_pose_draw(), OVERLAY_sculpt_curves_draw(), OVERLAY_sculpt_draw(), OVERLAY_xray_depth_copy(), pygpu_framebuffer_stack_pop_and_restore_or_error(), pygpu_framebuffer_stack_push_and_bind_or_error(), blender::eevee::ShadingView::render(), blender::eevee::ForwardPipeline::render(), select_cache_init(), select_draw_scene(), sequencer_draw_preview(), sequencer_ibuf_get(), view3d_opengl_read_Z_pixels(), workbench_antialiasing_draw_pass(), workbench_dof_draw_pass(), workbench_draw_sample(), workbench_render(), workbench_render_result_z(), workbench_transparent_draw_depth_pass(), and workbench_volume_draw_pass().
void GPU_framebuffer_bind_loadstore | ( | GPUFrameBuffer * | fb, |
const GPULoadStore * | load_store_actions, | ||
uint | actions_len | ||
) |
Definition at line 249 of file gpu_framebuffer.cc.
References fb(), GPU_framebuffer_bind(), and blender::gpu::unwrap().
void GPU_framebuffer_bind_no_srgb | ( | GPUFrameBuffer * | fb | ) |
Workaround for binding a SRGB frame-buffer without doing the SRGB transform.
Definition at line 261 of file gpu_framebuffer.cc.
References blender::gpu::unwrap().
Referenced by blender::ed::space_node::draw_nodespace_back_pix(), draw_timeline_seq(), blender::ed::space_node::node_draw_space(), and sequencer_draw_preview().
bool GPU_framebuffer_bound | ( | GPUFrameBuffer * | fb | ) |
Definition at line 296 of file gpu_framebuffer.cc.
References GPU_framebuffer_active_get().
Referenced by pygpu_framebuffer_clear(), pygpu_framebuffer_is_bound(), and pygpu_framebuffer_stack_pop_and_restore_or_error().
bool GPU_framebuffer_check_valid | ( | GPUFrameBuffer * | fb, |
char | err_out[256] | ||
) |
Definition at line 303 of file gpu_framebuffer.cc.
References blender::gpu::unwrap().
Referenced by draw_select_framebuffer_depth_only_setup(), GPU_offscreen_create(), select_engine_framebuffer_setup(), and workbench_render_framebuffers_init().
GPUFrameBuffer* GPU_framebuffer_create | ( | const char * | name | ) |
Definition at line 229 of file gpu_framebuffer.cc.
References blender::gpu::GPUBackend::get(), and blender::gpu::wrap().
Referenced by draw_select_framebuffer_depth_only_setup(), EEVEE_effects_init(), EEVEE_shadows_update(), pygpu_framebuffer__tp_new(), and select_engine_framebuffer_setup().
void GPU_framebuffer_free | ( | GPUFrameBuffer * | fb | ) |
Definition at line 236 of file gpu_framebuffer.cc.
References blender::gpu::unwrap().
Referenced by DRW_curves_update(), DRW_draw_depth_loop(), DRW_draw_depth_object(), DRW_hair_update(), gizmo_find_intersected_3d(), gpu_offscreen_fb_get(), GPU_offscreen_free(), pygpu_framebuffer_free_if_possible(), view3d_opengl_read_Z_pixels(), and blender::gpu::GLTexture::~GLTexture().
Definition at line 279 of file gpu_framebuffer.cc.
References blender::gpu::Context::back_left, blender::gpu::FrameBuffer::bind(), and blender::gpu::Context::get().
Referenced by blender::ed::space_node::draw_nodespace_back_pix(), DRW_custom_pipeline(), DRW_draw_depth_loop(), DRW_draw_depth_object(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_render_loop_offscreen(), DRW_draw_select_loop(), DRW_render_gpencil(), DRW_render_to_image(), DRW_select_buffer_read(), ED_view3d_draw_offscreen_imbuf(), gizmo_find_intersected_3d(), GPU_offscreen_create(), GPU_offscreen_unbind(), GPU_viewport_stereo_composite(), GPU_viewport_unbind(), sequencer_ibuf_get(), view3d_opengl_read_Z_pixels(), wm_xr_draw_view(), wm_xr_session_surface_draw(), blender::gpu::GLFrameBuffer::~GLFrameBuffer(), and blender::gpu::MTLFrameBuffer::~MTLFrameBuffer().
void GPU_framebuffer_texture_attach_ex | ( | GPUFrameBuffer * | gpu_fb, |
GPUAttachment | attachment, | ||
int | slot | ||
) |
Definition at line 308 of file gpu_framebuffer.cc.
References tex, GPUAttachment::tex, type, and blender::gpu::unwrap().
Referenced by GPU_framebuffer_texture_attach(), GPU_framebuffer_texture_cubeface_attach(), and GPU_framebuffer_texture_layer_attach().
void GPU_framebuffer_texture_detach | ( | GPUFrameBuffer * | fb, |
struct GPUTexture * | tex | ||
) |
Definition at line 335 of file gpu_framebuffer.cc.
References fb(), tex, and blender::gpu::unwrap().
Referenced by EEVEE_downsample_cube_buffer(), eevee_draw_scene(), EEVEE_render_draw(), and material_renderpass_accumulate().