#ifndef __EFFEKSEERRENDERER_METAL_RENDERER_H__ #define __EFFEKSEERRENDERER_METAL_RENDERER_H__ #include "../../EffekseerRendererCommon/EffekseerRenderer.Renderer.h" #include "EffekseerRendererMetal.Base.h" #include #import @class MTLRenderPassDescriptor; @protocol MTLDevice, MTLCommandBuffer, MTLRenderCommandEncoder, MTLTexture; namespace EffekseerRendererMetal { ::Effekseer::MaterialLoaderRef CreateMaterialLoader(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice, ::Effekseer::FileInterfaceRef fileInterface = NULL); ::Effekseer::Backend::GraphicsDeviceRef CreateDevice(); ::EffekseerRenderer::RendererRef Create( ::Effekseer::Backend::GraphicsDeviceRef graphicsDevice, int32_t squareMaxCount, MTLPixelFormat renderTargetFormat, MTLPixelFormat depthStencilFormat, bool isReversedDepth); /** @brief Create an instance @param device metal device @param isReversedDepth is depth reversed @param squareMaxCount the number of maximum sprites @return instance */ ::EffekseerRenderer::RendererRef Create(int32_t squareMaxCount, MTLPixelFormat renderTargetFormat, MTLPixelFormat depthStencilFormat, bool isReversedDepth); Effekseer::Backend::TextureRef CreateTexture(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice, id texture); void BeginCommandList(Effekseer::RefPtr commandList, id encoder); void EndCommandList(Effekseer::RefPtr commandList); } // namespace EffekseerRendererMetal #endif