|
Blender
V2.93
|
#include <gpu_framebuffer_private.hh>
Inherited by blender::gpu::GLFrameBuffer.
Public Member Functions | |
| virtual void | bind (bool enabled_srgb)=0 |
| virtual bool | check (char err_out[256])=0 |
| virtual void | clear (eGPUFrameBufferBits buffers, const float clear_col[4], float clear_depth, uint clear_stencil)=0 |
| virtual void | clear_multi (const float(*clear_col)[4])=0 |
| virtual void | clear_attachment (GPUAttachmentType type, eGPUDataFormat data_format, const void *clear_value)=0 |
| virtual void | read (eGPUFrameBufferBits planes, eGPUDataFormat format, const int area[4], int channel_len, int slot, void *r_data)=0 |
| virtual void | blit_to (eGPUFrameBufferBits planes, int src_slot, FrameBuffer *dst, int dst_slot, int dst_offset_x, int dst_offset_y)=0 |
| void | size_set (int width, int height) |
| void | viewport_set (const int viewport[4]) |
| void | scissor_set (const int scissor[4]) |
| void | scissor_test_set (bool test) |
| void | viewport_get (int r_viewport[4]) const |
| void | scissor_get (int r_scissor[4]) const |
| bool | scissor_test_get (void) const |
| void | viewport_reset (void) |
| void | scissor_reset (void) |
| GPUTexture * | depth_tex (void) const |
| GPUTexture * | color_tex (int slot) const |
Constructor / Destructor | |
| FrameBuffer (const char *name) | |
| virtual | ~FrameBuffer () |
Attachments Management | |
| void | attachment_set (GPUAttachmentType type, const GPUAttachment &new_attachment) |
| void | attachment_remove (GPUAttachmentType type) |
| void | recursive_downsample (int max_lvl, void(*callback)(void *userData, int level), void *userData) |
Protected Attributes | |
| GPUAttachment | attachments_ [GPU_FB_MAX_ATTACHMENT] |
| bool | dirty_attachments_ |
| int | width_ |
| int | height_ |
| char | name_ [DEBUG_NAME_LEN] |
| int | viewport_ [4] = {0} |
| int | scissor_ [4] = {0} |
| bool | scissor_test_ = false |
| bool | dirty_state_ = true |
Definition at line 87 of file gpu_framebuffer_private.hh.
| blender::gpu::FrameBuffer::FrameBuffer | ( | const char * | name | ) |
Definition at line 48 of file gpu_framebuffer.cc.
References attachments_, BLI_strncpy(), dirty_attachments_, dirty_state_, and name_.
|
virtual |
Definition at line 67 of file gpu_framebuffer.cc.
References attachments_.
| void blender::gpu::FrameBuffer::attachment_remove | ( | GPUAttachmentType | type | ) |
Definition at line 133 of file gpu_framebuffer.cc.
References attachments_, dirty_attachments_, and type.
Referenced by blender::gpu::Texture::detach_from(), and blender::gpu::Texture::~Texture().
| void blender::gpu::FrameBuffer::attachment_set | ( | GPUAttachmentType | type, |
| const GPUAttachment & | new_attachment | ||
| ) |
Definition at line 82 of file gpu_framebuffer.cc.
References attachments_, BLI_assert, dirty_attachments_, ELEM, GPU_FB_COLOR_ATTACHMENT0, GPU_FB_DEPTH_ATTACHMENT, GPU_FB_DEPTH_STENCIL_ATTACHMENT, GPU_FB_MAX_ATTACHMENT, GPU_FB_MAX_COLOR_ATTACHMENT, GPU_texture_array(), GPU_texture_cube(), GPU_texture_depth(), GPU_texture_stencil(), GPUAttachment::layer, GPUAttachment::mip, GPUAttachment::tex, and type.
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
Referenced by GPU_backbuffer_bind(), GPU_framebuffer_blit(), GPU_framebuffer_restore(), and recursive_downsample().
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
Referenced by GPU_framebuffer_blit(), and GPU_offscreen_draw_to_screen().
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
Referenced by GPU_clear_color(), and GPU_clear_depth().
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
|
inline |
Definition at line 202 of file gpu_framebuffer_private.hh.
References attachments_, GPU_FB_COLOR_ATTACHMENT0, and GPUAttachment::tex.
Referenced by GPU_framebuffer_blit().
|
inline |
Definition at line 194 of file gpu_framebuffer_private.hh.
References attachments_, GPU_FB_DEPTH_ATTACHMENT, GPU_FB_DEPTH_STENCIL_ATTACHMENT, tex, and GPUAttachment::tex.
Referenced by GPU_framebuffer_blit().
|
pure virtual |
Implemented in blender::gpu::GLFrameBuffer.
Referenced by GPU_frontbuffer_read_pixels().
| void blender::gpu::FrameBuffer::recursive_downsample | ( | int | max_lvl, |
| void(*)(void *userData, int level) | callback, | ||
| void * | userData | ||
| ) |
Definition at line 139 of file gpu_framebuffer.cc.
References attachments_, bind(), callback, dirty_attachments_, floor(), GPU_mip_render_workaround(), height_, max_ii(), min_ii(), tex, and width_.
|
inline |
Definition at line 172 of file gpu_framebuffer_private.hh.
References copy_v4_v4_int(), and scissor_.
Referenced by GPU_scissor_get().
|
inline |
Definition at line 188 of file gpu_framebuffer_private.hh.
References height_, scissor_set(), and width_.
Referenced by blender::gpu::GLFrameBuffer::bind().
|
inline |
Definition at line 154 of file gpu_framebuffer_private.hh.
References copy_v4_v4_int(), dirty_state_, equals_v4v4_int(), and scissor_.
Referenced by GPU_scissor(), and scissor_reset().
|
inline |
Definition at line 177 of file gpu_framebuffer_private.hh.
References scissor_test_.
|
inline |
Definition at line 162 of file gpu_framebuffer_private.hh.
References scissor_test_.
Referenced by GPU_scissor_test().
|
inline |
Definition at line 139 of file gpu_framebuffer_private.hh.
References dirty_state_, height, height_, width, and width_.
Referenced by blender::gpu::GLContext::activate().
|
inline |
Definition at line 167 of file gpu_framebuffer_private.hh.
References copy_v4_v4_int(), and viewport_.
Referenced by GPU_viewport_size_get_f(), and GPU_viewport_size_get_i().
|
inline |
Definition at line 182 of file gpu_framebuffer_private.hh.
References height_, viewport_set(), and width_.
Referenced by blender::gpu::GLFrameBuffer::bind().
|
inline |
Definition at line 146 of file gpu_framebuffer_private.hh.
References copy_v4_v4_int(), dirty_state_, equals_v4v4_int(), and viewport_.
Referenced by GPU_viewport(), and viewport_reset().
|
protected |
Set of texture attachments to render to. DEPTH and DEPTH_STENCIL are mutually exclusive.
Definition at line 90 of file gpu_framebuffer_private.hh.
Referenced by attachment_remove(), attachment_set(), blender::gpu::GLFrameBuffer::clear_multi(), color_tex(), depth_tex(), FrameBuffer(), recursive_downsample(), and ~FrameBuffer().
|
protected |
Is true if internal representation need to be updated.
Definition at line 92 of file gpu_framebuffer_private.hh.
Referenced by attachment_remove(), attachment_set(), blender::gpu::GLFrameBuffer::bind(), blender::gpu::GLFrameBuffer::blit_to(), FrameBuffer(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), and recursive_downsample().
|
protected |
Definition at line 101 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::apply_state(), blender::gpu::GLFrameBuffer::bind(), FrameBuffer(), scissor_set(), size_set(), and viewport_set().
|
protected |
Definition at line 94 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::blit_to(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), recursive_downsample(), scissor_reset(), size_set(), and viewport_reset().
|
protected |
Debug name.
Definition at line 96 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::check(), FrameBuffer(), and blender::gpu::GLFrameBuffer::GLFrameBuffer().
|
protected |
Definition at line 99 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::apply_state(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), scissor_get(), and scissor_set().
|
protected |
Definition at line 100 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::apply_state(), scissor_test_get(), and scissor_test_set().
|
protected |
Frame-buffer state.
Definition at line 98 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::apply_state(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), viewport_get(), and viewport_set().
|
protected |
Size of attachment textures.
Definition at line 94 of file gpu_framebuffer_private.hh.
Referenced by blender::gpu::GLFrameBuffer::blit_to(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), recursive_downsample(), scissor_reset(), size_set(), and viewport_reset().