Cocos2d-x  4.0.0
Static Public Member Functions | List of all members
DeviceMTL Class Reference

Create resources from MTLDevice. More...

Inherits Device.

Public Member Functions

Constructor, Destructor and Initializers
 DeviceMTL ()
 
 ~DeviceMTL ()
 
- Public Member Functions inherited from Device
virtual BuffernewBuffer (size_t size, BufferType type, BufferUsage usage)=0
 New a Buffer object, not auto released.
 
DeviceInfogetDeviceInfo () const
 Get a DeviceInfo object.
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership.
 
void release ()
 Releases the ownership immediately.
 
Refautorelease ()
 Releases the ownership sometime soon automatically.
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count.
 
virtual ~Ref ()
 Destructor.
 

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 Device
static DevicegetInstance ()
 Returns a shared instance of the device.
 

Setters & Getters

virtual CommandBuffernewCommandBuffer () override
 New a CommandBuffer object.
 
virtual BuffernewBuffer (std::size_t size, BufferType type, BufferUsage usage) override
 New a Buffer object.
 
virtual TextureBackendnewTexture (const TextureDescriptor &descriptor) override
 New a TextureBackend object.
 
virtual DepthStencilStatecreateDepthStencilState (const DepthStencilDescriptor &descriptor) override
 Create a DepthStencilState object.
 
virtual RenderPipelinenewRenderPipeline () override
 New a RenderPipeline object.
 
virtual 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).
 
virtual ProgramnewProgram (const std::string &vertexShader, const std::string &fragmentShader) override
 New a Program, not auto release.
 
id< MTLDevice > getMTLDevice () const
 Get a MTLDevice object.
 
id< MTLCommandQueue > getMTLCommandQueue () const
 Get a MTLCommandQueue object.
 

Additional Inherited Members

- Public Attributes inherited from Ref
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
void * _scriptObject
 scriptObject, support for swift
 
bool _rooted
 When true, it means that the object was already rooted.
 

Detailed Description

Create resources from MTLDevice.

Member Function Documentation

static void setCAMetalLayer ( CAMetalLayer *  metalLayer)
static

Set CAMetalLayer.

Parameters
metalLayerA CAMetalLayer object.
static CAMetalLayer* getCAMetalLayer ( )
inlinestatic

Get a CAMetalLayer.

Returns
A CAMetalLayer object.
static id<CAMetalDrawable> getCurrentDrawable ( )
static

Get available Drawable.

Returns
an available drawable.
virtual CommandBuffer* newCommandBuffer ( )
overridevirtual

New a CommandBuffer object.

Returns
A CommandBuffer object.

Implements Device.

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

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.
virtual TextureBackend* newTexture ( const TextureDescriptor descriptor)
overridevirtual

New a TextureBackend object.

Parameters
descriptorSpecifies texture description.
Returns
A TextureBackend object.

Implements Device.

virtual DepthStencilState* createDepthStencilState ( const DepthStencilDescriptor descriptor)
overridevirtual

Create a DepthStencilState object.

Parameters
descriptorSpecifies depth and stencil description.
Returns
An auto release DepthStencilState object.

Implements Device.

virtual RenderPipeline* newRenderPipeline ( )
overridevirtual

New a RenderPipeline object.

Parameters
descriptorSpecifies render pipeline description.
Returns
A RenderPipeline object.

Implements Device.

virtual 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 Device.

virtual Program* newProgram ( const std::string &  vertexShader,
const std::string &  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 Device.

id<MTLDevice> getMTLDevice ( ) const
inline

Get a MTLDevice object.

Returns
A MTLDevice object.
id<MTLCommandQueue> getMTLCommandQueue ( ) const
inline

Get a MTLCommandQueue object.

Returns
A MTLCommandQueue object.

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