Blender V4.3
BlenderDisplayDriver Class Reference

#include <display_driver.h>

Inherits DisplayDriver.

Classes

struct  Tiles
 

Public Member Functions

 BlenderDisplayDriver (BL::RenderEngine &b_engine, BL::Scene &b_scene, const bool background)
 
 ~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)
 
- Public Member Functions inherited from DisplayDriver
 DisplayDriver ()=default
 
virtual ~DisplayDriver ()=default
 

Protected Member Functions

virtual void next_tile_begin () override
 
virtual bool update_begin (const Params &params, int texture_width, int texture_height) override
 
virtual void update_end () override
 
virtual half4map_texture_buffer () override
 
virtual void unmap_texture_buffer () override
 
virtual GraphicsInterop graphics_interop_get () override
 
virtual void draw (const Params &params) override
 
virtual void flush () override
 
void gpu_context_create ()
 
bool gpu_context_enable ()
 
void gpu_context_disable ()
 
void gpu_context_destroy ()
 
void gpu_context_lock ()
 
void gpu_context_unlock ()
 
bool gpu_resources_create ()
 
void gpu_resources_destroy ()
 

Protected Attributes

BL::RenderEngine b_engine_
 
bool background_
 
std::atomic< bool > need_clear_ = true
 
unique_ptr< BlenderDisplayShaderdisplay_shader_
 
unique_ptr< Tilestiles_
 
GPUFencegpu_render_sync_ = nullptr
 
GPUFencegpu_upload_sync_ = nullptr
 
float2 zoom_ = make_float2(1.0f, 1.0f)
 

Detailed Description

Definition at line 95 of file blender/display_driver.h.

Constructor & Destructor Documentation

◆ BlenderDisplayDriver()

BlenderDisplayDriver::BlenderDisplayDriver ( BL::RenderEngine & b_engine,
BL::Scene & b_scene,
const bool background )

Definition at line 438 of file blender/display_driver.cpp.

References gpu_context_create().

◆ ~BlenderDisplayDriver()

BlenderDisplayDriver::~BlenderDisplayDriver ( )

Definition at line 450 of file blender/display_driver.cpp.

References gpu_resources_destroy().

Member Function Documentation

◆ clear()

void BlenderDisplayDriver::clear ( )
overridevirtual

Implements DisplayDriver.

Definition at line 643 of file blender/display_driver.cpp.

References need_clear_.

◆ draw()

◆ flush()

void BlenderDisplayDriver::flush ( )
overrideprotectedvirtual

◆ gpu_context_create()

void BlenderDisplayDriver::gpu_context_create ( )
protected

◆ gpu_context_destroy()

void BlenderDisplayDriver::gpu_context_destroy ( )
protected

Definition at line 835 of file blender/display_driver.cpp.

References b_engine_, and RE_engine_gpu_context_destroy().

Referenced by gpu_resources_destroy().

◆ gpu_context_disable()

void BlenderDisplayDriver::gpu_context_disable ( )
protected

◆ gpu_context_enable()

bool BlenderDisplayDriver::gpu_context_enable ( )
protected

◆ gpu_context_lock()

void BlenderDisplayDriver::gpu_context_lock ( )
protected

Definition at line 840 of file blender/display_driver.cpp.

References b_engine_, and RE_engine_gpu_context_lock().

Referenced by draw().

◆ gpu_context_unlock()

void BlenderDisplayDriver::gpu_context_unlock ( )
protected

Definition at line 845 of file blender/display_driver.cpp.

References b_engine_, and RE_engine_gpu_context_unlock().

Referenced by draw().

◆ gpu_resources_create()

bool BlenderDisplayDriver::gpu_resources_create ( )
protected

◆ gpu_resources_destroy()

void BlenderDisplayDriver::gpu_resources_destroy ( )
protected

◆ graphics_interop_activate()

void BlenderDisplayDriver::graphics_interop_activate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 629 of file blender/display_driver.cpp.

References gpu_context_enable().

◆ graphics_interop_deactivate()

void BlenderDisplayDriver::graphics_interop_deactivate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 634 of file blender/display_driver.cpp.

References gpu_context_disable().

◆ graphics_interop_get()

◆ map_texture_buffer()

half4 * BlenderDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 589 of file blender/display_driver.cpp.

References DCHECK_NOTNULL, GPU_pixel_buffer_map(), LOG, and tiles_.

◆ next_tile_begin()

void BlenderDisplayDriver::next_tile_begin ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 459 of file blender/display_driver.cpp.

References DCHECK, LOG, need_clear_, and tiles_.

◆ set_zoom()

void BlenderDisplayDriver::set_zoom ( float zoom_x,
float zoom_y )

Definition at line 648 of file blender/display_driver.cpp.

References make_float2(), and zoom_.

Referenced by BlenderSession::draw().

◆ unmap_texture_buffer()

void BlenderDisplayDriver::unmap_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 603 of file blender/display_driver.cpp.

References DCHECK_NOTNULL, GPU_pixel_buffer_unmap(), LOG, and tiles_.

◆ update_begin()

bool BlenderDisplayDriver::update_begin ( const Params & params,
int texture_width,
int texture_height )
overrideprotectedvirtual

◆ update_end()

Member Data Documentation

◆ b_engine_

BL::RenderEngine BlenderDisplayDriver::b_engine_
protected

◆ background_

bool BlenderDisplayDriver::background_
protected

Definition at line 137 of file blender/display_driver.h.

Referenced by update_end().

◆ display_shader_

unique_ptr<BlenderDisplayShader> BlenderDisplayDriver::display_shader_
protected

Definition at line 142 of file blender/display_driver.h.

Referenced by draw().

◆ gpu_render_sync_

GPUFence* BlenderDisplayDriver::gpu_render_sync_ = nullptr
protected

◆ gpu_upload_sync_

GPUFence* BlenderDisplayDriver::gpu_upload_sync_ = nullptr
protected

◆ need_clear_

std::atomic<bool> BlenderDisplayDriver::need_clear_ = true
protected

Definition at line 140 of file blender/display_driver.h.

Referenced by clear(), draw(), next_tile_begin(), and update_begin().

◆ tiles_

unique_ptr<Tiles> BlenderDisplayDriver::tiles_
protected

◆ zoom_

float2 BlenderDisplayDriver::zoom_ = make_float2(1.0f, 1.0f)
protected

Definition at line 151 of file blender/display_driver.h.

Referenced by draw(), and set_zoom().


The documentation for this class was generated from the following files: