Axmol Engine 2.4.0-258ceca
|
Create resources from MTLDevice. More...
#include <DriverMTL.h>
Inherits DriverBase.
virtual Buffer * | newBuffer (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 DriverBase * | getInstance () |
Returns a shared instance of the DriverBase. | |
Setters & Getters | |
below is driver info | |
CommandBuffer * | newCommandBuffer () override |
New a CommandBuffer object. | |
Buffer * | newBuffer (std::size_t size, BufferType type, BufferUsage usage) override |
New a Buffer object. | |
TextureBackend * | newTexture (const TextureDescriptor &descriptor) override |
New a TextureBackend object. | |
DepthStencilState * | newDepthStencilState () override |
New a DepthStencilState object. | |
RenderPipeline * | newRenderPipeline () 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). | |
Program * | newProgram (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. | |
Create resources from MTLDevice.
|
static |
Set CAMetalLayer.
metalLayer | A CAMetalLayer object. |
|
inlinestatic |
Get a CAMetalLayer.
|
static |
Get available Drawable.
|
overridevirtual |
|
override |
New a Buffer object.
size | Specifies the size in bytes of the buffer object's new data store. |
type | Specifies the target buffer object. The symbolic constant must be BufferType::VERTEX or BufferType::INDEX. |
usage | Specifies the expected usage pattern of the data store. The symbolic constant must be BufferUsage::STATIC, BufferUsage::DYNAMIC. |
|
overridevirtual |
New a TextureBackend object.
descriptor | Specifies texture description. |
Implements DriverBase.
|
overridevirtual |
New a RenderPipeline object.
descriptor | Specifies render pipeline description. |
Implements DriverBase.
|
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).
frameBufferOnly | A 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.
|
overridevirtual |
New a Program, not auto release.
vertexShader | Specifes this is a vertex shader source. |
fragmentShader | Specifes this is a fragment shader source. |
Implements DriverBase.
|
inline |
Get a MTLDevice object.
|
inline |
Get a MTLCommandQueue object.
|
overridevirtual |
|
overridevirtual |
Get the full name of the vendor device.
Implements DriverBase.
|
overridevirtual |
|
overridevirtual |
Check if feature supported by Metal.
feature | Specify feature to be query. |
Implements DriverBase.