Blender
V3.3
|
#include <gpu_context_private.hh>
Public Member Functions | |
Context () | |
virtual | ~Context () |
virtual void | activate ()=0 |
virtual void | deactivate ()=0 |
virtual void | begin_frame ()=0 |
virtual void | end_frame ()=0 |
virtual void | flush ()=0 |
virtual void | finish ()=0 |
virtual void | memory_statistics_get (int *total_mem, int *free_mem)=0 |
virtual void | debug_group_begin (const char *, int) |
virtual void | debug_group_end () |
bool | is_active_on_thread () |
Static Public Member Functions | |
static Context * | get () |
Public Attributes | |
Shader * | shader = nullptr |
FrameBuffer * | active_fb = nullptr |
GPUMatrixState * | matrix_state = nullptr |
StateManager * | state_manager = nullptr |
Immediate * | imm = nullptr |
FrameBuffer * | back_left = nullptr |
FrameBuffer * | front_left = nullptr |
FrameBuffer * | back_right = nullptr |
FrameBuffer * | front_right = nullptr |
DebugStack | debug_stack |
Protected Attributes | |
pthread_t | thread_ |
bool | is_active_ |
void * | ghost_window_ |
Definition at line 28 of file gpu_context_private.hh.
blender::gpu::Context::Context | ( | ) |
Definition at line 59 of file gpu_context.cc.
References GPU_matrix_state_create(), is_active_, matrix_state, and thread_.
|
virtual |
Definition at line 66 of file gpu_context.cc.
References back_left, back_right, front_left, front_right, GPU_matrix_state_discard(), imm, matrix_state, and state_manager.
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_context_active_set().
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_context_begin_frame().
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_context_active_set().
|
inlinevirtual |
Reimplemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Definition at line 76 of file gpu_context_private.hh.
Referenced by GPU_debug_group_begin().
|
inlinevirtual |
Reimplemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Definition at line 77 of file gpu_context_private.hh.
Referenced by GPU_debug_group_end().
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_context_end_frame().
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_finish().
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_flush().
|
static |
Definition at line 82 of file gpu_context.cc.
References active_ctx.
Referenced by blender::gpu::GLTexture::check_feedback_loop(), blender::gpu::MTLContext::get(), blender::gpu::GLContext::get(), GPU_apply_state(), GPU_backbuffer_bind(), GPU_batch_draw_advanced(), GPU_bgl_end(), GPU_bgl_get(), GPU_bgl_start(), GPU_blend_get(), GPU_clear_color(), GPU_clear_depth(), GPU_color_mask(), GPU_debug_get_groups_names(), GPU_debug_group_begin(), GPU_debug_group_end(), GPU_debug_group_match(), GPU_depth_mask(), GPU_depth_mask_get(), GPU_depth_range(), GPU_depth_test_get(), GPU_face_culling_get(), GPU_finish(), GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_blit(), GPU_framebuffer_restore(), GPU_frontbuffer_read_pixels(), GPU_line_width_get(), GPU_matrix_dirty_get(), GPU_matrix_reset(), GPU_matrix_stack_level_get_model_view(), GPU_matrix_stack_level_get_projection(), gpu_matrix_state_active_set_dirty(), GPU_mem_stats_get(), GPU_memory_barrier(), GPU_offscreen_draw_to_screen(), gpu_offscreen_fb_get(), GPU_point_size(), GPU_program_point_size(), GPU_scissor(), GPU_scissor_get(), GPU_scissor_test(), GPU_shader_bind(), GPU_shader_unbind(), GPU_state_set(), GPU_stencil_mask_get(), GPU_stencil_test_get(), GPU_stereo_quadbuffer_support(), GPU_texture_bind(), GPU_texture_bind_ex(), GPU_texture_image_bind(), GPU_texture_image_unbind(), GPU_texture_image_unbind_all(), GPU_texture_unbind(), GPU_texture_unbind_all(), GPU_unpack_row_length_set(), GPU_viewport(), GPU_viewport_size_get_f(), GPU_viewport_size_get_i(), GPU_write_mask_get(), immActivate(), and blender::gpu::GLFrameBuffer::~GLFrameBuffer().
bool blender::gpu::Context::is_active_on_thread | ( | ) |
Definition at line 77 of file gpu_context.cc.
References active_ctx, and thread_.
|
pure virtual |
Implemented in blender::gpu::GLContext, and blender::gpu::MTLContext.
Referenced by GPU_mem_stats_get().
FrameBuffer* blender::gpu::Context::active_fb = nullptr |
Definition at line 32 of file gpu_context_private.hh.
Referenced by blender::gpu::MTLFrameBuffer::apply_state(), blender::gpu::MTLStateManager::apply_state(), blender::gpu::MTLFrameBuffer::bind(), blender::gpu::GLFrameBuffer::bind(), blender::gpu::GLFrameBuffer::blit_to(), blender::gpu::GLTexture::check_feedback_loop(), blender::gpu::MTLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear(), blender::gpu::MTLFrameBuffer::clear_attachment(), blender::gpu::GLFrameBuffer::clear_attachment(), blender::gpu::MTLContext::ensure_begin_render_pass(), blender::gpu::MTLContext::framebuffer_bind(), blender::gpu::MTLContext::framebuffer_restore(), blender::gpu::MTLContext::get_current_framebuffer(), blender::gpu::GLContext::GLContext(), GPU_clear_color(), GPU_clear_depth(), GPU_framebuffer_active_get(), GPU_framebuffer_blit(), GPU_offscreen_draw_to_screen(), GPU_scissor(), GPU_scissor_get(), GPU_scissor_test(), GPU_viewport(), GPU_viewport_size_get_f(), GPU_viewport_size_get_i(), blender::gpu::MTLContext::MTLContext(), blender::gpu::GLFrameBuffer::~GLFrameBuffer(), and blender::gpu::MTLFrameBuffer::~MTLFrameBuffer().
FrameBuffer* blender::gpu::Context::back_left = nullptr |
All 4 window frame-buffers. None of them are valid in an off-screen context. Right frame-buffers are only available if using stereo rendering. Front frame-buffers contains (in principle, but not always) the last frame color. Default frame-buffer is back_left.
Definition at line 44 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), blender::gpu::MTLContext::framebuffer_restore(), blender::gpu::MTLContext::get_default_framebuffer(), blender::gpu::GLContext::GLContext(), GPU_backbuffer_bind(), GPU_framebuffer_back_get(), GPU_framebuffer_restore(), blender::gpu::MTLContext::MTLContext(), ~Context(), blender::gpu::GLFrameBuffer::~GLFrameBuffer(), and blender::gpu::MTLFrameBuffer::~MTLFrameBuffer().
FrameBuffer* blender::gpu::Context::back_right = nullptr |
Definition at line 46 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), blender::gpu::GLContext::GLContext(), GPU_backbuffer_bind(), and ~Context().
DebugStack blender::gpu::Context::debug_stack |
Definition at line 49 of file gpu_context_private.hh.
Referenced by GPU_debug_get_groups_names(), GPU_debug_group_begin(), GPU_debug_group_end(), and GPU_debug_group_match().
FrameBuffer* blender::gpu::Context::front_left = nullptr |
Definition at line 45 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), blender::gpu::GLContext::GLContext(), GPU_frontbuffer_read_pixels(), blender::gpu::MTLContext::MTLContext(), and ~Context().
FrameBuffer* blender::gpu::Context::front_right = nullptr |
Definition at line 47 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), blender::gpu::GLContext::GLContext(), GPU_stereo_quadbuffer_support(), and ~Context().
|
protected |
Avoid including GHOST headers. Can be nullptr for off-screen contexts.
Definition at line 56 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), and blender::gpu::GLContext::GLContext().
Immediate* blender::gpu::Context::imm = nullptr |
Definition at line 35 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::GLContext(), immActivate(), and ~Context().
|
protected |
Definition at line 54 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), Context(), blender::gpu::GLContext::deactivate(), and blender::gpu::MTLContext::get_active().
GPUMatrixState* blender::gpu::Context::matrix_state = nullptr |
Definition at line 33 of file gpu_context_private.hh.
Referenced by Context(), GPU_matrix_dirty_get(), GPU_matrix_reset(), GPU_matrix_stack_level_get_model_view(), GPU_matrix_stack_level_get_projection(), gpu_matrix_state_active_set_dirty(), and ~Context().
Shader* blender::gpu::Context::shader = nullptr |
State management
Definition at line 31 of file gpu_context_private.hh.
Referenced by blender::gpu::GLVaoCache::base_instance_vao_get(), blender::gpu::GLTexture::check_feedback_loop(), blender::gpu::debug::check_gl_resources(), GPU_shader_bind(), GPU_shader_unbind(), and blender::gpu::GLVaoCache::vao_get().
StateManager* blender::gpu::Context::state_manager = nullptr |
Definition at line 34 of file gpu_context_private.hh.
Referenced by blender::gpu::GLBatch::bind(), blender::gpu::GLFrameBuffer::blit_to(), blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear_attachment(), blender::gpu::GLImmediate::end(), blender::gpu::GLContext::GLContext(), blender::gpu::GLFrameBuffer::GLFrameBuffer(), GPU_apply_state(), GPU_bgl_end(), GPU_bgl_get(), GPU_bgl_start(), GPU_blend_get(), GPU_color_mask(), GPU_depth_mask(), GPU_depth_mask_get(), GPU_depth_range(), GPU_depth_test_get(), GPU_face_culling_get(), GPU_line_width_get(), GPU_memory_barrier(), GPU_point_size(), GPU_program_point_size(), GPU_state_set(), GPU_stencil_mask_get(), GPU_stencil_test_get(), GPU_texture_bind(), GPU_texture_bind_ex(), GPU_texture_image_bind(), GPU_texture_image_unbind(), GPU_texture_image_unbind_all(), GPU_texture_unbind(), GPU_texture_unbind_all(), GPU_unpack_row_length_set(), GPU_write_mask_get(), blender::gpu::MTLContext::MTLContext(), blender::gpu::GLContext::state_manager_active_get(), ~Context(), blender::gpu::GLTexture::~GLTexture(), and blender::gpu::MTLTexture::~MTLTexture().
|
protected |
Thread on which this context is active.
Definition at line 53 of file gpu_context_private.hh.
Referenced by blender::gpu::GLContext::activate(), Context(), and is_active_on_thread().