Blender V4.5
OpenGLDisplayDriver Class Reference

#include <display_driver.h>

Inherits DisplayDriver.

Public Member Functions

 OpenGLDisplayDriver (const std::function< bool()> &gl_context_enable, const std::function< void()> &gl_context_disable)
 
 ~OpenGLDisplayDriver () override
 
void graphics_interop_activate () override
 
void graphics_interop_deactivate () override
 
void clear () override
 
void set_zoom (const float zoom_x, const float zoom_y)
 
- Public Member Functions inherited from DisplayDriver
 DisplayDriver ()=default
 
virtual ~DisplayDriver ()=default
 
virtual void flush ()
 
GraphicsInteropBuffergraphics_interop_get_buffer ()
 
virtual void zero ()=0
 

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
 
bool gl_texture_resources_ensure ()
 
bool gl_draw_resources_ensure ()
 
void gl_resources_destroy ()
 
void texture_update_if_needed ()
 
void vertex_buffer_update (const Params &params)
 

Protected Attributes

struct { 
 
   bool   creation_attempted = false 
 
   bool   is_created = false 
 
   uint   gl_id = 0 
 
   uint   gl_pbo_id = 0 
 
   bool   need_update = false 
 
   std::atomic< bool >   need_zero = true 
 
   int   width = 0 
 
   int   height = 0 
 
   int   buffer_width = 0 
 
   int   buffer_height = 0 
 
texture_ 
 
OpenGLShader display_shader_
 
bool gl_draw_resource_creation_attempted_ = false
 
bool gl_draw_resources_created_ = false
 
uint vertex_buffer_ = 0
 
void * gl_render_sync_ = nullptr
 
void * gl_upload_sync_ = nullptr
 
float2 zoom_ = make_float2(1.0f, 1.0f)
 
std::function< bool()> gl_context_enable_ = nullptr
 
std::function< void()> gl_context_disable_ = nullptr
 

Additional Inherited Members

- Public Attributes inherited from DisplayDriver
GraphicsInteropBuffer graphics_interop_buffer_
 

Detailed Description

Definition at line 16 of file app/opengl/display_driver.h.

Constructor & Destructor Documentation

◆ OpenGLDisplayDriver()

CCL_NAMESPACE_BEGIN OpenGLDisplayDriver::OpenGLDisplayDriver ( const std::function< bool()> & gl_context_enable,
const std::function< void()> & gl_context_disable )

Definition at line 19 of file app/opengl/display_driver.cpp.

◆ ~OpenGLDisplayDriver()

OpenGLDisplayDriver::~OpenGLDisplayDriver ( )
overridedefault

Member Function Documentation

◆ clear()

void OpenGLDisplayDriver::clear ( )
override

Definition at line 191 of file app/opengl/display_driver.cpp.

References texture_.

◆ draw()

◆ gl_draw_resources_ensure()

bool OpenGLDisplayDriver::gl_draw_resources_ensure ( )
protected

◆ gl_resources_destroy()

void OpenGLDisplayDriver::gl_resources_destroy ( )
protected

◆ gl_texture_resources_ensure()

bool OpenGLDisplayDriver::gl_texture_resources_ensure ( )
protected

◆ graphics_interop_activate()

void OpenGLDisplayDriver::graphics_interop_activate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 177 of file app/opengl/display_driver.cpp.

References gl_context_enable_.

◆ graphics_interop_deactivate()

void OpenGLDisplayDriver::graphics_interop_deactivate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 182 of file app/opengl/display_driver.cpp.

References gl_context_disable_.

◆ graphics_interop_get_device()

GraphicsInteropDevice OpenGLDisplayDriver::graphics_interop_get_device ( )
overrideprotectedvirtual

Reimplemented from DisplayDriver.

Definition at line 155 of file app/opengl/display_driver.cpp.

References GraphicsInteropDevice::OPENGL, and GraphicsInteropDevice::type.

◆ graphics_interop_update_buffer()

void OpenGLDisplayDriver::graphics_interop_update_buffer ( )
overrideprotectedvirtual

◆ map_texture_buffer()

half4 * OpenGLDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 122 of file app/opengl/display_driver.cpp.

References LOG, and texture_.

◆ next_tile_begin()

void OpenGLDisplayDriver::next_tile_begin ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 31 of file app/opengl/display_driver.cpp.

◆ set_zoom()

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

◆ texture_update_if_needed()

void OpenGLDisplayDriver::texture_update_if_needed ( )
protected

Definition at line 354 of file app/opengl/display_driver.cpp.

References texture_.

Referenced by draw().

◆ unmap_texture_buffer()

void OpenGLDisplayDriver::unmap_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 144 of file app/opengl/display_driver.cpp.

◆ update_begin()

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

◆ update_end()

void OpenGLDisplayDriver::update_end ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 110 of file app/opengl/display_driver.cpp.

References gl_context_disable_, and gl_upload_sync_.

◆ vertex_buffer_update()

void OpenGLDisplayDriver::vertex_buffer_update ( const Params & params)
protected

Definition at line 368 of file app/opengl/display_driver.cpp.

References params.

Referenced by draw().

Member Data Documentation

◆ buffer_height

int OpenGLDisplayDriver::buffer_height = 0

Definition at line 96 of file app/opengl/display_driver.h.

Referenced by update_begin().

◆ buffer_width

int OpenGLDisplayDriver::buffer_width = 0

Definition at line 95 of file app/opengl/display_driver.h.

Referenced by update_begin().

◆ creation_attempted

bool OpenGLDisplayDriver::creation_attempted = false

Definition at line 73 of file app/opengl/display_driver.h.

◆ display_shader_

OpenGLShader OpenGLDisplayDriver::display_shader_
protected

Definition at line 99 of file app/opengl/display_driver.h.

Referenced by draw().

◆ gl_context_disable_

std::function<void()> OpenGLDisplayDriver::gl_context_disable_ = nullptr
protected

◆ gl_context_enable_

std::function<bool()> OpenGLDisplayDriver::gl_context_enable_ = nullptr
protected

◆ gl_draw_resource_creation_attempted_

bool OpenGLDisplayDriver::gl_draw_resource_creation_attempted_ = false
protected

Definition at line 103 of file app/opengl/display_driver.h.

Referenced by gl_draw_resources_ensure().

◆ gl_draw_resources_created_

bool OpenGLDisplayDriver::gl_draw_resources_created_ = false
protected

Definition at line 104 of file app/opengl/display_driver.h.

Referenced by gl_draw_resources_ensure().

◆ gl_id

uint OpenGLDisplayDriver::gl_id = 0

Definition at line 80 of file app/opengl/display_driver.h.

◆ gl_pbo_id

uint OpenGLDisplayDriver::gl_pbo_id = 0

Definition at line 81 of file app/opengl/display_driver.h.

◆ gl_render_sync_

void* OpenGLDisplayDriver::gl_render_sync_ = nullptr
protected

Definition at line 110 of file app/opengl/display_driver.h.

Referenced by draw(), and update_begin().

◆ gl_upload_sync_

void* OpenGLDisplayDriver::gl_upload_sync_ = nullptr
protected

Definition at line 111 of file app/opengl/display_driver.h.

Referenced by draw(), and update_end().

◆ height

int OpenGLDisplayDriver::height = 0

Definition at line 92 of file app/opengl/display_driver.h.

◆ is_created

bool OpenGLDisplayDriver::is_created = false

Definition at line 74 of file app/opengl/display_driver.h.

◆ need_update

bool OpenGLDisplayDriver::need_update = false

Definition at line 85 of file app/opengl/display_driver.h.

◆ need_zero

std::atomic<bool> OpenGLDisplayDriver::need_zero = true

Definition at line 88 of file app/opengl/display_driver.h.

◆ [struct]

◆ vertex_buffer_

uint OpenGLDisplayDriver::vertex_buffer_ = 0
protected

◆ width

int OpenGLDisplayDriver::width = 0

Definition at line 91 of file app/opengl/display_driver.h.

◆ zoom_

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

Definition at line 113 of file app/opengl/display_driver.h.


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