Blender V5.0
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 () override
void graphics_interop_activate () override
void graphics_interop_deactivate () override
void zero () override
void set_zoom (const float zoom_x, const float zoom_y)
Public Member Functions inherited from DisplayDriver
 DisplayDriver ()=default
virtual ~DisplayDriver ()=default
GraphicsInteropBuffergraphics_interop_get_buffer ()

Protected Member Functions

void next_tile_begin () override
bool update_begin (const Params &params, const int texture_width, const int texture_height) override
void update_end () override
half4map_texture_buffer () override
void unmap_texture_buffer () override
GraphicsInteropDevice graphics_interop_get_device () override
void graphics_interop_update_buffer () override
void draw (const Params &params) override
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_zero_ = true
unique_ptr< BlenderDisplayShaderdisplay_shader_
unique_ptr< Tilestiles_
GPUFence * gpu_render_sync_ = nullptr
GPUFence * gpu_upload_sync_ = nullptr
float2 zoom_ = make_float2(1.0f, 1.0f)

Additional Inherited Members

Public Attributes inherited from DisplayDriver
GraphicsInteropBuffer graphics_interop_buffer_

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 )

◆ ~BlenderDisplayDriver()

BlenderDisplayDriver::~BlenderDisplayDriver ( )
override

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

References gpu_resources_destroy().

Member Function Documentation

◆ 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 907 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 912 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 917 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()

◆ graphics_interop_activate()

void BlenderDisplayDriver::graphics_interop_activate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 696 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 701 of file blender/display_driver.cpp.

References gpu_context_disable().

◆ graphics_interop_get_device()

◆ graphics_interop_update_buffer()

◆ map_texture_buffer()

half4 * BlenderDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

◆ next_tile_begin()

void BlenderDisplayDriver::next_tile_begin ( )
overrideprotectedvirtual

Implements DisplayDriver.

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

References DCHECK, LOG_ERROR, need_zero_, and tiles_.

◆ set_zoom()

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

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

References make_float2, and zoom_.

◆ unmap_texture_buffer()

void BlenderDisplayDriver::unmap_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

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

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

◆ update_begin()

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

◆ update_end()

◆ zero()

void BlenderDisplayDriver::zero ( )
overridevirtual

Implements DisplayDriver.

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

References need_zero_.

Member Data Documentation

◆ b_engine_

BL::RenderEngine BlenderDisplayDriver::b_engine_
protected

◆ background_

bool BlenderDisplayDriver::background_
protected

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

Referenced by BlenderDisplayDriver(), and update_end().

◆ display_shader_

unique_ptr<BlenderDisplayShader> BlenderDisplayDriver::display_shader_
protected

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

Referenced by BlenderDisplayDriver(), draw(), and gpu_resources_destroy().

◆ gpu_render_sync_

GPUFence* BlenderDisplayDriver::gpu_render_sync_ = nullptr
protected

◆ gpu_upload_sync_

GPUFence* BlenderDisplayDriver::gpu_upload_sync_ = nullptr
protected

◆ need_zero_

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

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

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

◆ tiles_

◆ zoom_

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

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

Referenced by draw(), and set_zoom().


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