Blender
V3.3
|
#include <display_driver.h>
Classes | |
struct | Tiles |
Public Member Functions | |
BlenderDisplayDriver (BL::RenderEngine &b_engine, BL::Scene &b_scene) | |
~BlenderDisplayDriver () | |
virtual void | graphics_interop_activate () override |
virtual void | graphics_interop_deactivate () override |
virtual void | clear () override |
void | set_zoom (float zoom_x, float zoom_y) |
![]() | |
DisplayDriver ()=default | |
virtual | ~DisplayDriver ()=default |
Protected Member Functions | |
virtual void | next_tile_begin () override |
virtual bool | update_begin (const Params ¶ms, int texture_width, int texture_height) override |
virtual void | update_end () override |
virtual half4 * | map_texture_buffer () override |
virtual void | unmap_texture_buffer () override |
virtual GraphicsInterop | graphics_interop_get () override |
virtual void | draw (const Params ¶ms) override |
virtual void | flush () override |
void | gl_context_create () |
bool | gl_context_enable () |
void | gl_context_disable () |
void | gl_context_dispose () |
void | gl_resources_destroy () |
Protected Attributes | |
BL::RenderEngine | b_engine_ |
void * | gl_context_ = nullptr |
bool | use_gl_context_ = false |
thread_mutex | gl_context_mutex_ |
std::atomic< bool > | need_clear_ = true |
unique_ptr< BlenderDisplayShader > | display_shader_ |
unique_ptr< Tiles > | tiles_ |
void * | gl_render_sync_ = nullptr |
void * | gl_upload_sync_ = nullptr |
float2 | zoom_ = make_float2(1.0f, 1.0f) |
Definition at line 90 of file blender/display_driver.h.
BlenderDisplayDriver::BlenderDisplayDriver | ( | BL::RenderEngine & | b_engine, |
BL::Scene & | b_scene | ||
) |
Definition at line 562 of file blender/display_driver.cpp.
References gl_context_create().
BlenderDisplayDriver::~BlenderDisplayDriver | ( | ) |
Definition at line 571 of file blender/display_driver.cpp.
References gl_resources_destroy().
|
overridevirtual |
Implements DisplayDriver.
Definition at line 786 of file blender/display_driver.cpp.
References need_clear_.
Implements DisplayDriver.
Definition at line 928 of file blender/display_driver.cpp.
References display_shader_, draw_tile(), gl_context_mutex_, gl_render_sync_, gl_upload_sync_, glDisable, glEnable, need_clear_, GLTexture::num_used, GLPixelBufferObject::num_used, params, tile, tiles_, update_tile_texture_pixels(), use_gl_context_, VLOG_DEVICE_STATS, and zoom_.
|
overrideprotectedvirtual |
Reimplemented from DisplayDriver.
Definition at line 904 of file blender/display_driver.cpp.
References gl_context_disable(), gl_context_enable(), gl_render_sync_, and gl_upload_sync_.
|
protected |
Definition at line 1007 of file blender/display_driver.cpp.
References b_engine_, DRW_opengl_context_activate(), DRW_opengl_context_release(), gl_context_, LOG, RE_engine_has_render_context(), use_gl_context_, WM_opengl_context_create(), and WM_opengl_context_release().
Referenced by BlenderDisplayDriver().
|
protected |
Definition at line 1051 of file blender/display_driver.cpp.
References b_engine_, gl_context_, gl_context_mutex_, RE_engine_render_context_disable(), use_gl_context_, and WM_opengl_context_release().
Referenced by flush(), gl_resources_destroy(), graphics_interop_deactivate(), update_begin(), and update_end().
|
protected |
Definition at line 1064 of file blender/display_driver.cpp.
References DRW_opengl_context_activate(), DRW_opengl_context_release(), gl_context_, WM_opengl_context_activate(), and WM_opengl_context_dispose().
Referenced by gl_resources_destroy().
|
protected |
Definition at line 1036 of file blender/display_driver.cpp.
References b_engine_, gl_context_, gl_context_mutex_, RE_engine_render_context_enable(), use_gl_context_, and WM_opengl_context_activate().
Referenced by flush(), gl_resources_destroy(), graphics_interop_activate(), and update_begin().
|
protected |
Definition at line 1076 of file blender/display_driver.cpp.
References gl_context_disable(), gl_context_dispose(), gl_context_enable(), and tiles_.
Referenced by ~BlenderDisplayDriver().
|
overridevirtual |
Reimplemented from DisplayDriver.
Definition at line 772 of file blender/display_driver.cpp.
References gl_context_enable().
|
overridevirtual |
Reimplemented from DisplayDriver.
Definition at line 777 of file blender/display_driver.cpp.
References gl_context_disable().
|
overrideprotectedvirtual |
Reimplemented from DisplayDriver.
Definition at line 761 of file blender/display_driver.cpp.
References DisplayDriver::GraphicsInterop::buffer_height, DisplayDriver::GraphicsInterop::buffer_width, DisplayDriver::GraphicsInterop::opengl_pbo_id, and tiles_.
|
overrideprotectedvirtual |
Implements DisplayDriver.
Definition at line 733 of file blender/display_driver.cpp.
|
overrideprotectedvirtual |
Implements DisplayDriver.
Definition at line 580 of file blender/display_driver.cpp.
References DCHECK, LOG, need_clear_, and tiles_.
Definition at line 791 of file blender/display_driver.cpp.
References make_float2, and zoom_.
Referenced by BlenderSession::draw().
|
overrideprotectedvirtual |
Implements DisplayDriver.
Definition at line 750 of file blender/display_driver.cpp.
|
overrideprotectedvirtual |
Implements DisplayDriver.
Definition at line 597 of file blender/display_driver.cpp.
References gl_context_disable(), gl_context_enable(), GLTexture::gl_id, GLPixelBufferObject::gl_id, gl_render_sync_, GLTexture::height, GLPixelBufferObject::height, need_clear_, params, DrawTile::texture, tiles_, GLTexture::width, and GLPixelBufferObject::width.
|
overrideprotectedvirtual |
Implements DisplayDriver.
Definition at line 699 of file blender/display_driver.cpp.
References gl_context_disable(), gl_upload_sync_, GPU_BACKEND_ANY, GPU_DEVICE_NVIDIA, GPU_DRIVER_ANY, GPU_OS_MAC, GPU_type_matches_ex(), tiles_, update_tile_texture_pixels(), and use_gl_context_.
|
protected |
Definition at line 126 of file blender/display_driver.h.
Referenced by gl_context_create(), gl_context_disable(), and gl_context_enable().
|
protected |
Definition at line 139 of file blender/display_driver.h.
Referenced by draw().
|
protected |
Definition at line 129 of file blender/display_driver.h.
Referenced by gl_context_create(), gl_context_disable(), gl_context_dispose(), and gl_context_enable().
|
protected |
Definition at line 134 of file blender/display_driver.h.
Referenced by draw(), gl_context_disable(), and gl_context_enable().
|
protected |
Definition at line 145 of file blender/display_driver.h.
Referenced by draw(), flush(), and update_begin().
|
protected |
Definition at line 146 of file blender/display_driver.h.
Referenced by draw(), flush(), and update_end().
|
protected |
Definition at line 137 of file blender/display_driver.h.
Referenced by clear(), draw(), next_tile_begin(), and update_begin().
|
protected |
Definition at line 143 of file blender/display_driver.h.
Referenced by draw(), gl_resources_destroy(), graphics_interop_get(), map_texture_buffer(), next_tile_begin(), update_begin(), and update_end().
|
protected |
Definition at line 132 of file blender/display_driver.h.
Referenced by draw(), gl_context_create(), gl_context_disable(), gl_context_enable(), and update_end().
|
protected |
Definition at line 148 of file blender/display_driver.h.
Referenced by draw(), and set_zoom().