Blender V4.3
GHOST_ContextCGL Class Reference

#include <GHOST_ContextCGL.hh>

Inherits GHOST_Context.

Public Member Functions

 GHOST_ContextCGL (bool stereoVisual, NSView *metalView, CAMetalLayer *metalLayer, int debug)
 
 ~GHOST_ContextCGL () override
 
GHOST_TSuccess swapBuffers () override
 
GHOST_TSuccess activateDrawingContext () override
 
GHOST_TSuccess releaseDrawingContext () override
 
unsigned int getDefaultFramebuffer () override
 
GHOST_TSuccess initializeDrawingContext () override
 
GHOST_TSuccess releaseNativeHandles () override
 
GHOST_TSuccess setSwapInterval (int interval) override
 
GHOST_TSuccess getSwapInterval (int &intervalOut) override
 
GHOST_TSuccess updateDrawingContext () override
 
id< MTLTexture > metalOverlayTexture ()
 
MTLCommandQueue * metalCommandQueue ()
 
MTLDevice * metalDevice ()
 
void metalRegisterPresentCallback (void(*callback)(MTLRenderPassDescriptor *, id< MTLRenderPipelineState >, id< MTLTexture >, id< CAMetalDrawable >))
 
- Public Member Functions inherited from GHOST_Context
 GHOST_Context (bool stereoVisual)
 
virtual ~GHOST_Context ()
 
void * getUserData ()
 
void setUserData (void *user_data)
 
bool isStereoVisual () const
 
virtual bool isUpsideDown () const
 
- Public Member Functions inherited from GHOST_IContext
virtual ~GHOST_IContext ()
 

Static Public Attributes

static const int max_command_buffer_count = 64
 

Additional Inherited Members

- Protected Attributes inherited from GHOST_Context
bool m_stereoVisual
 
void * m_user_data = nullptr
 

Detailed Description

Definition at line 26 of file GHOST_ContextCGL.hh.

Constructor & Destructor Documentation

◆ GHOST_ContextCGL()

GHOST_ContextCGL::GHOST_ContextCGL ( bool stereoVisual,
NSView * metalView,
CAMetalLayer * metalLayer,
int debug )

◆ ~GHOST_ContextCGL()

GHOST_ContextCGL::~GHOST_ContextCGL ( )
override

Destructor.

Definition at line 117 of file GHOST_ContextCGL.mm.

Member Function Documentation

◆ activateDrawingContext()

GHOST_TSuccess GHOST_ContextCGL::activateDrawingContext ( )
overridevirtual

Activates the drawing context of this window.

Returns
A boolean success indicator.

Implements GHOST_Context.

Definition at line 156 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ getDefaultFramebuffer()

unsigned int GHOST_ContextCGL::getDefaultFramebuffer ( )
overridevirtual

Gets the OpenGL frame-buffer associated with the OpenGL context

Returns
The ID of an OpenGL frame-buffer object.

Reimplemented from GHOST_Context.

Definition at line 166 of file GHOST_ContextCGL.mm.

◆ getSwapInterval()

GHOST_TSuccess GHOST_ContextCGL::getSwapInterval ( int & intervalOut)
overridevirtual

Gets the current swap interval for swapBuffers.

Parameters
intervalOutVariable to store the swap interval if it can be read.
Returns
Whether the swap interval can be read.

Reimplemented from GHOST_Context.

Definition at line 150 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ initializeDrawingContext()

GHOST_TSuccess GHOST_ContextCGL::initializeDrawingContext ( )
overridevirtual

Call immediately after new to initialize. If this fails then immediately delete the object.

Returns
Indication as to whether initialization has succeeded.

Implements GHOST_Context.

Definition at line 209 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ metalCommandQueue()

MTLCommandQueue * GHOST_ContextCGL::metalCommandQueue ( )

Return a pointer to the Metal command queue used by this context.

Definition at line 193 of file GHOST_ContextCGL.mm.

Referenced by blender::gpu::MTLContext::MTLContext().

◆ metalDevice()

MTLDevice * GHOST_ContextCGL::metalDevice ( )

Return a pointer to the Metal device associated with this context.

Definition at line 197 of file GHOST_ContextCGL.mm.

Referenced by GHOST_ContextCGL(), and blender::gpu::MTLContext::MTLContext().

◆ metalOverlayTexture()

id< MTLTexture > GHOST_ContextCGL::metalOverlayTexture ( )

Returns a texture that Metal code can use as a render target. The current contents of this texture will be composited on top of the frame-buffer each time swapBuffers is called.

Definition at line 181 of file GHOST_ContextCGL.mm.

References updateDrawingContext().

◆ metalRegisterPresentCallback()

void GHOST_ContextCGL::metalRegisterPresentCallback ( void(* callback )(MTLRenderPassDescriptor *, id< MTLRenderPipelineState >, id< MTLTexture >, id< CAMetalDrawable >))

Register present callback

Definition at line 203 of file GHOST_ContextCGL.mm.

References callback.

Referenced by blender::gpu::MTLContext::MTLContext().

◆ releaseDrawingContext()

GHOST_TSuccess GHOST_ContextCGL::releaseDrawingContext ( )
overridevirtual

Release the drawing context of the calling thread.

Returns
A boolean success indicator.

Implements GHOST_Context.

Definition at line 161 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ releaseNativeHandles()

GHOST_TSuccess GHOST_ContextCGL::releaseNativeHandles ( )
overridevirtual

Removes references to native handles from this context and then returns

Returns
GHOST_kSuccess if it is OK for the parent to release the handles and GHOST_kFailure if releasing the handles will interfere with sharing

Implements GHOST_Context.

Definition at line 219 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ setSwapInterval()

GHOST_TSuccess GHOST_ContextCGL::setSwapInterval ( int interval)
overridevirtual

Sets the swap interval for swapBuffers.

Parameters
intervalThe swap interval to use.
Returns
A boolean success indicator.

Reimplemented from GHOST_Context.

Definition at line 144 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ swapBuffers()

GHOST_TSuccess GHOST_ContextCGL::swapBuffers ( )
overridevirtual

Swaps front and back buffers of a window.

Returns
A boolean success indicator.

Implements GHOST_Context.

Definition at line 136 of file GHOST_ContextCGL.mm.

References GHOST_kSuccess.

◆ updateDrawingContext()

GHOST_TSuccess GHOST_ContextCGL::updateDrawingContext ( )
overridevirtual

Updates the drawing context of this window. Needed whenever the window is changed.

Returns
Indication of success.

Reimplemented from GHOST_Context.

Definition at line 172 of file GHOST_ContextCGL.mm.

References GHOST_kFailure, and GHOST_kSuccess.

Referenced by metalOverlayTexture().

Member Data Documentation

◆ max_command_buffer_count

const int GHOST_ContextCGL::max_command_buffer_count = 64
static

Definition at line 41 of file GHOST_ContextCGL.hh.

Referenced by blender::gpu::MTLCommandBufferManager::submit().


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