Blender V4.3
OpenGLDisplayDriver Class Reference

#include <display_driver.h>

Inherits DisplayDriver.

Public Member Functions

 OpenGLDisplayDriver (const function< bool()> &gl_context_enable, const function< void()> &gl_context_disable)
 
 ~OpenGLDisplayDriver ()
 
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
 
virtual void flush ()
 

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
 
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_clear = 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)
 
function< bool()> gl_context_enable_ = nullptr
 
function< void()> gl_context_disable_ = nullptr
 

Detailed Description

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

Constructor & Destructor Documentation

◆ OpenGLDisplayDriver()

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

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

◆ ~OpenGLDisplayDriver()

OpenGLDisplayDriver::~OpenGLDisplayDriver ( )

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

Member Function Documentation

◆ clear()

void OpenGLDisplayDriver::clear ( )
overridevirtual

Implements DisplayDriver.

Definition at line 174 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

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

References DCHECK, LOG, and texture_.

Referenced by update_begin().

◆ graphics_interop_activate()

void OpenGLDisplayDriver::graphics_interop_activate ( )
overridevirtual

Reimplemented from DisplayDriver.

Definition at line 160 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 165 of file app/opengl/display_driver.cpp.

References gl_context_disable_.

◆ graphics_interop_get()

◆ map_texture_buffer()

half4 * OpenGLDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 113 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 32 of file app/opengl/display_driver.cpp.

◆ set_zoom()

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

◆ texture_update_if_needed()

void OpenGLDisplayDriver::texture_update_if_needed ( )
protected

Definition at line 336 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 135 of file app/opengl/display_driver.cpp.

◆ update_begin()

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

◆ update_end()

void OpenGLDisplayDriver::update_end ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 101 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 350 of file app/opengl/display_driver.cpp.

References float, NULL, and params.

Referenced by draw().

Member Data Documentation

◆ buffer_height

int OpenGLDisplayDriver::buffer_height = 0

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

Referenced by update_begin().

◆ buffer_width

int OpenGLDisplayDriver::buffer_width = 0

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

Referenced by update_begin().

◆ creation_attempted

bool OpenGLDisplayDriver::creation_attempted = false

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

◆ display_shader_

OpenGLShader OpenGLDisplayDriver::display_shader_
protected

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

Referenced by draw().

◆ gl_context_disable_

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

◆ gl_context_enable_

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 102 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 103 of file app/opengl/display_driver.h.

Referenced by gl_draw_resources_ensure().

◆ gl_id

uint OpenGLDisplayDriver::gl_id = 0

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

◆ gl_pbo_id

uint OpenGLDisplayDriver::gl_pbo_id = 0

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

◆ gl_render_sync_

void* OpenGLDisplayDriver::gl_render_sync_ = nullptr
protected

Definition at line 109 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 110 of file app/opengl/display_driver.h.

Referenced by draw(), and update_end().

◆ height

int OpenGLDisplayDriver::height = 0

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

◆ is_created

bool OpenGLDisplayDriver::is_created = false

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

◆ need_clear

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

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

◆ need_update

bool OpenGLDisplayDriver::need_update = false

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

◆ [struct]

◆ vertex_buffer_

uint OpenGLDisplayDriver::vertex_buffer_ = 0
protected

◆ width

int OpenGLDisplayDriver::width = 0

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

◆ zoom_

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

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


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