axmol/extensions/Effekseer/EffekseerRendererMetal/EffekseerRenderer/EffekseerRendererMetal.Rend...

49 lines
1.8 KiB
Objective-C

#ifndef __EFFEKSEERRENDERER_METAL_RENDERER_H__
#define __EFFEKSEERRENDERER_METAL_RENDERER_H__
#include "../../EffekseerRendererCommon/EffekseerRenderer.Renderer.h"
#include "EffekseerRendererMetal.Base.h"
#include <functional>
#import <MetalKit/MetalKit.h>
@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<MTLTexture> texture);
void BeginCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList, id<MTLRenderCommandEncoder> encoder);
void EndCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList);
} // namespace EffekseerRendererMetal
#endif