Blender V5.0
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.

References gl_context_disable_, and gl_context_enable_.

◆ ~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()

void OpenGLDisplayDriver::draw ( const Params & params)
overrideprotectedvirtual

◆ 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_ERROR, 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 )

References params.

◆ 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 float, and 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: