Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
GPU_framebuffer.h File Reference
#include "GPU_common_types.h"
#include "GPU_texture.h"

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

GPUFrameBufferGPU_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])
 
GPUFrameBufferGPU_framebuffer_active_get (void)
 
GPUFrameBufferGPU_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)
 

Detailed Description

GPU Frame-buffer

Definition in file GPU_framebuffer.h.

Macro Definition Documentation

◆ NULL_LOAD_STORE

#define NULL_LOAD_STORE
Value:
{ \
GPU_LOADACTION_DONT_CARE, GPU_STOREACTION_DONT_CARE \
}
@ GPU_STOREACTION_DONT_CARE

Definition at line 61 of file GPU_framebuffer.h.

Typedef Documentation

◆ eGPUBackBuffer

◆ eGPUFrameBufferBits

◆ GPUAttachment

typedef struct GPUAttachment GPUAttachment

◆ GPUFrameBuffer

Opaque type hiding blender::gpu::FrameBuffer.

Definition at line 1 of file GPU_framebuffer.h.

◆ GPULoadStore

typedef struct GPULoadStore GPULoadStore

◆ GPUOffScreen

typedef struct GPUOffScreen GPUOffScreen

Definition at line 1 of file GPU_framebuffer.h.

Enumeration Type Documentation

◆ eGPUBackBuffer

Enumerator
GPU_BACKBUFFER_LEFT 
GPU_BACKBUFFER_RIGHT 

Definition at line 37 of file GPU_framebuffer.h.

◆ eGPUFrameBufferBits

Enumerator
GPU_COLOR_BIT 
GPU_DEPTH_BIT 
GPU_STENCIL_BIT 

Definition at line 20 of file GPU_framebuffer.h.

Function Documentation

◆ GPU_framebuffer_active_get()

GPUFrameBuffer* GPU_framebuffer_active_get ( void  )

◆ GPU_framebuffer_back_get()

GPUFrameBuffer* GPU_framebuffer_back_get ( void  )

◆ GPU_framebuffer_bind()

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().

◆ GPU_framebuffer_bind_loadstore()

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().

◆ GPU_framebuffer_bind_no_srgb()

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().

◆ GPU_framebuffer_bound()

bool GPU_framebuffer_bound ( GPUFrameBuffer fb)

◆ GPU_framebuffer_check_valid()

bool GPU_framebuffer_check_valid ( GPUFrameBuffer fb,
char  err_out[256] 
)

◆ GPU_framebuffer_create()

GPUFrameBuffer* GPU_framebuffer_create ( const char *  name)

◆ GPU_framebuffer_free()

void GPU_framebuffer_free ( GPUFrameBuffer fb)

◆ GPU_framebuffer_restore()

void GPU_framebuffer_restore ( void  )

◆ GPU_framebuffer_texture_attach_ex()

void GPU_framebuffer_texture_attach_ex ( GPUFrameBuffer gpu_fb,
GPUAttachment  attachment,
int  slot 
)

◆ GPU_framebuffer_texture_detach()

void GPU_framebuffer_texture_detach ( GPUFrameBuffer fb,
struct GPUTexture tex 
)