Blender  V3.3
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BlenderDisplayDriver Class Reference

#include <display_driver.h>

Inheritance diagram for BlenderDisplayDriver:
DisplayDriver

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)
 
- 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 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_
 
voidgl_context_ = nullptr
 
bool use_gl_context_ = false
 
thread_mutex gl_context_mutex_
 
std::atomic< boolneed_clear_ = true
 
unique_ptr< BlenderDisplayShaderdisplay_shader_
 
unique_ptr< Tilestiles_
 
voidgl_render_sync_ = nullptr
 
voidgl_upload_sync_ = nullptr
 
float2 zoom_ = make_float2(1.0f, 1.0f)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ BlenderDisplayDriver()

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::~BlenderDisplayDriver ( )

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

References gl_resources_destroy().

Member Function Documentation

◆ clear()

void BlenderDisplayDriver::clear ( )
overridevirtual

Implements DisplayDriver.

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

References need_clear_.

◆ draw()

void BlenderDisplayDriver::draw ( const Params params)
overrideprotectedvirtual

◆ flush()

void BlenderDisplayDriver::flush ( )
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_.

◆ gl_context_create()

void BlenderDisplayDriver::gl_context_create ( )
protected

◆ gl_context_disable()

void BlenderDisplayDriver::gl_context_disable ( )
protected

◆ gl_context_dispose()

void BlenderDisplayDriver::gl_context_dispose ( )
protected

◆ gl_context_enable()

bool BlenderDisplayDriver::gl_context_enable ( )
protected

◆ gl_resources_destroy()

void BlenderDisplayDriver::gl_resources_destroy ( )
protected

◆ graphics_interop_activate()

void BlenderDisplayDriver::graphics_interop_activate ( )
overridevirtual

Reimplemented from DisplayDriver.

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

References gl_context_enable().

◆ graphics_interop_deactivate()

void BlenderDisplayDriver::graphics_interop_deactivate ( )
overridevirtual

Reimplemented from DisplayDriver.

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

References gl_context_disable().

◆ graphics_interop_get()

BlenderDisplayDriver::GraphicsInterop BlenderDisplayDriver::graphics_interop_get ( )
overrideprotectedvirtual

◆ map_texture_buffer()

half4 * BlenderDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

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

References DCHECK_NE, LOG, and tiles_.

◆ next_tile_begin()

void BlenderDisplayDriver::next_tile_begin ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 580 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 791 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 750 of file blender/display_driver.cpp.

◆ update_begin()

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

◆ update_end()

void BlenderDisplayDriver::update_end ( )
overrideprotectedvirtual

Member Data Documentation

◆ b_engine_

BL::RenderEngine BlenderDisplayDriver::b_engine_
protected

◆ display_shader_

unique_ptr<BlenderDisplayShader> BlenderDisplayDriver::display_shader_
protected

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

Referenced by draw().

◆ gl_context_

void* BlenderDisplayDriver::gl_context_ = nullptr
protected

◆ gl_context_mutex_

thread_mutex BlenderDisplayDriver::gl_context_mutex_
protected

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

Referenced by draw(), gl_context_disable(), and gl_context_enable().

◆ gl_render_sync_

void* BlenderDisplayDriver::gl_render_sync_ = nullptr
protected

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

Referenced by draw(), flush(), and update_begin().

◆ gl_upload_sync_

void* BlenderDisplayDriver::gl_upload_sync_ = nullptr
protected

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

Referenced by draw(), flush(), and update_end().

◆ need_clear_

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

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

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

◆ tiles_

unique_ptr<Tiles> BlenderDisplayDriver::tiles_
protected

◆ use_gl_context_

bool BlenderDisplayDriver::use_gl_context_ = false
protected

◆ zoom_

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

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

Referenced by draw(), and set_zoom().


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