Axmol Engine 2.4.0-258ceca
Loading...
Searching...
No Matches
DriverMTL Class Reference

Create resources from MTLDevice. More...

#include <DriverMTL.h>

Inherits DriverBase.

- Public Member Functions inherited from DriverBase
virtual BuffernewBuffer (size_t size, BufferType type, BufferUsage usage)=0
 New a Buffer object, not auto released.
 
virtual bool hasExtension (std::string_view) const
 Check does device has extension.
 
virtual std::string dumpExtensions () const
 Dump all extensions to string.
 
int getMaxTextureSize () const
 Get maximum texture size.
 
int getMaxAttributes () const
 Get maximum attribute counts.
 
int getMaxTextureUnits () const
 Get maximum texture unit.
 
int getMaxSamplesAllowed () const
 Get maximum sampler count.
 

Static Public Member Functions

static void setCAMetalLayer (CAMetalLayer *metalLayer)
 Set CAMetalLayer.
 
static void updateDrawable ()
 Invoke by engine internally at the beginning of rendering a new frame.
 
static CAMetalLayer * getCAMetalLayer ()
 Get a CAMetalLayer.
 
static id< CAMetalDrawable > getCurrentDrawable ()
 Get available Drawable.
 
static void resetCurrentDrawable ()
 Reset current drawable to nil.
 
- Static Public Member Functions inherited from DriverBase
static DriverBasegetInstance ()
 Returns a shared instance of the DriverBase.
 

Setters & Getters

below is driver info

CommandBuffernewCommandBuffer () override
 New a CommandBuffer object.
 
BuffernewBuffer (std::size_t size, BufferType type, BufferUsage usage) override
 New a Buffer object.
 
TextureBackendnewTexture (const TextureDescriptor &descriptor) override
 New a TextureBackend object.
 
DepthStencilStatenewDepthStencilState () override
 New a DepthStencilState object.
 
RenderPipelinenewRenderPipeline () override
 New a RenderPipeline object.
 
void setFrameBufferOnly (bool frameBufferOnly) override
 This property controls whether or not the drawables' MTLTextures may only be used for framebuffer attachments (YES) or whether they may also be used for texture sampling and pixel read/write operations (NO).
 
ProgramnewProgram (std::string_view vertexShader, std::string_view fragmentShader) override
 New a Program, not auto release.
 
id< MTLDevice > getMTLDevice () const
 Get a MTLDevice object.
 
id< MTLCommandQueue > getMTLCommandQueue () const
 Get a MTLCommandQueue object.
 
const char * getVendor () const override
 Get vendor device name.
 
const char * getRenderer () const override
 Get the full name of the vendor device.
 
const char * getVersion () const override
 Get featureSet name.
 
bool checkForFeatureSupported (FeatureType feature) override
 Check if feature supported by Metal.
 

Detailed Description

Create resources from MTLDevice.

Member Function Documentation

◆ setCAMetalLayer()

static void setCAMetalLayer ( CAMetalLayer * metalLayer)
static

Set CAMetalLayer.

Parameters
metalLayerA CAMetalLayer object.

◆ getCAMetalLayer()

static CAMetalLayer * getCAMetalLayer ( )
inlinestatic

Get a CAMetalLayer.

Returns
A CAMetalLayer object.

◆ getCurrentDrawable()

static id< CAMetalDrawable > getCurrentDrawable ( )
static

Get available Drawable.

Returns
an available drawable.

◆ newCommandBuffer()

CommandBuffer * newCommandBuffer ( )
overridevirtual

New a CommandBuffer object.

Returns
A CommandBuffer object.

Implements DriverBase.

◆ newBuffer()

Buffer * newBuffer ( std::size_t size,
BufferType type,
BufferUsage usage )
override

New a Buffer object.

Parameters
sizeSpecifies the size in bytes of the buffer object's new data store.
typeSpecifies the target buffer object. The symbolic constant must be BufferType::VERTEX or BufferType::INDEX.
usageSpecifies the expected usage pattern of the data store. The symbolic constant must be BufferUsage::STATIC, BufferUsage::DYNAMIC.
Returns
A Buffer object.

◆ newTexture()

TextureBackend * newTexture ( const TextureDescriptor & descriptor)
overridevirtual

New a TextureBackend object.

Parameters
descriptorSpecifies texture description.
Returns
A TextureBackend object.

Implements DriverBase.

◆ newRenderPipeline()

RenderPipeline * newRenderPipeline ( )
overridevirtual

New a RenderPipeline object.

Parameters
descriptorSpecifies render pipeline description.
Returns
A RenderPipeline object.

Implements DriverBase.

◆ setFrameBufferOnly()

void setFrameBufferOnly ( bool frameBufferOnly)
overridevirtual

This property controls whether or not the drawables' MTLTextures may only be used for framebuffer attachments (YES) or whether they may also be used for texture sampling and pixel read/write operations (NO).

Parameters
frameBufferOnlyA value of YES allows CAMetalLayer to allocate the MTLTexture objects in ways that are optimized for display purposes that makes them unsuitable for sampling. The recommended value for most applications is YES.

Implements DriverBase.

◆ newProgram()

Program * newProgram ( std::string_view vertexShader,
std::string_view fragmentShader )
overridevirtual

New a Program, not auto release.

Parameters
vertexShaderSpecifes this is a vertex shader source.
fragmentShaderSpecifes this is a fragment shader source.
Returns
A Program instance.

Implements DriverBase.

◆ getMTLDevice()

id< MTLDevice > getMTLDevice ( ) const
inline

Get a MTLDevice object.

Returns
A MTLDevice object.

◆ getMTLCommandQueue()

id< MTLCommandQueue > getMTLCommandQueue ( ) const
inline

Get a MTLCommandQueue object.

Returns
A MTLCommandQueue object.

◆ getVendor()

const char * getVendor ( ) const
overridevirtual

Get vendor device name.

Returns
Vendor device name.

Implements DriverBase.

◆ getRenderer()

const char * getRenderer ( ) const
overridevirtual

Get the full name of the vendor device.

Returns
The full name of the vendor device.

Implements DriverBase.

◆ getVersion()

const char * getVersion ( ) const
overridevirtual

Get featureSet name.

Returns
FeatureSet name.

Implements DriverBase.

◆ checkForFeatureSupported()

bool checkForFeatureSupported ( FeatureType feature)
overridevirtual

Check if feature supported by Metal.

Parameters
featureSpecify feature to be query.
Returns
true if the feature is supported, false otherwise.

Implements DriverBase.


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