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

#include <display_driver.h>

Inheritance diagram for OpenGLDisplayDriver:
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
 
voidgl_render_sync_ = nullptr
 
voidgl_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 17 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 19 of file app/opengl/display_driver.cpp.

◆ ~OpenGLDisplayDriver()

OpenGLDisplayDriver::~OpenGLDisplayDriver ( )

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

Member Function Documentation

◆ clear()

void OpenGLDisplayDriver::clear ( )
overridevirtual

Implements DisplayDriver.

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

Definition at line 300 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 161 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 166 of file app/opengl/display_driver.cpp.

References gl_context_disable_.

◆ graphics_interop_get()

OpenGLDisplayDriver::GraphicsInterop OpenGLDisplayDriver::graphics_interop_get ( )
overrideprotectedvirtual

◆ map_texture_buffer()

half4 * OpenGLDisplayDriver::map_texture_buffer ( )
overrideprotectedvirtual

Implements DisplayDriver.

Definition at line 114 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 33 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 337 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 136 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 102 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 351 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 94 of file app/opengl/display_driver.h.

Referenced by update_begin().

◆ buffer_width

int OpenGLDisplayDriver::buffer_width = 0

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

Referenced by update_begin().

◆ creation_attempted

bool OpenGLDisplayDriver::creation_attempted = false

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

◆ display_shader_

OpenGLShader OpenGLDisplayDriver::display_shader_
protected

Definition at line 97 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 101 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 102 of file app/opengl/display_driver.h.

Referenced by gl_draw_resources_ensure().

◆ gl_id

uint OpenGLDisplayDriver::gl_id = 0

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

◆ gl_pbo_id

uint OpenGLDisplayDriver::gl_pbo_id = 0

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

◆ gl_render_sync_

void* OpenGLDisplayDriver::gl_render_sync_ = nullptr
protected

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

Referenced by draw(), and update_end().

◆ height

int OpenGLDisplayDriver::height = 0

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

◆ is_created

bool OpenGLDisplayDriver::is_created = false

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

◆ need_clear

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

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

◆ need_update

bool OpenGLDisplayDriver::need_update = false

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

◆ 

struct { ... } OpenGLDisplayDriver::texture_

◆ vertex_buffer_

uint OpenGLDisplayDriver::vertex_buffer_ = 0
protected

◆ width

int OpenGLDisplayDriver::width = 0

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

◆ zoom_

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

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


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