2 #ifndef __EFFEKSEERRENDERER_DX12_BASE_PRE_H__
3 #define __EFFEKSEERRENDERER_DX12_BASE_PRE_H__
8 namespace EffekseerRendererDX12
15 #ifndef __EFFEKSEERRENDERER_RENDERER_H__
16 #define __EFFEKSEERRENDERER_RENDERER_H__
21 #include <Effekseer.h>
37 namespace EffekseerRenderer
41 using RendererRef = ::Effekseer::RefPtr<Renderer>;
48 struct ExternalShaderSettings
50 Effekseer::Backend::ShaderRef StandardShader;
51 Effekseer::Backend::ShaderRef ModelShader;
52 Effekseer::AlphaBlendType Blend;
61 class DistortingCallback
67 virtual ~DistortingCallback()
101 enum class ProxyTextureType
107 class CommandList :
public ::Effekseer::IReference
110 CommandList() =
default;
111 virtual ~CommandList() =
default;
114 class SingleFrameMemoryPool :
public ::Effekseer::IReference
117 SingleFrameMemoryPool() =
default;
118 virtual ~SingleFrameMemoryPool() =
default;
130 struct DepthReconstructionParameter
132 float DepthBufferScale = 1.0f;
133 float DepthBufferOffset = 0.0f;
134 float ProjectionMatrix33 = 0.0f;
135 float ProjectionMatrix34 = 0.0f;
136 float ProjectionMatrix43 = 0.0f;
137 float ProjectionMatrix44 = 0.0f;
140 ::Effekseer::ModelLoaderRef CreateModelLoader(::Effekseer::Backend::GraphicsDeviceRef gprahicsDevice, ::Effekseer::FileInterfaceRef fileInterface =
nullptr);
142 class Renderer :
public ::Effekseer::IReference
149 std::unique_ptr<Impl> impl;
263 virtual void SetCameraParameter(const ::Effekseer::Vector3D& front, const ::Effekseer::Vector3D& position);
293 virtual ::Effekseer::TextureLoaderRef
CreateTextureLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
298 virtual ::Effekseer::ModelLoaderRef
CreateModelLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
306 virtual ::Effekseer::MaterialLoaderRef
CreateMaterialLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
363 virtual void SetRenderMode(Effekseer::RenderMode renderMode);
405 virtual void SetTime(
float time);
423 virtual const ::Effekseer::Backend::TextureRef&
GetBackground();
430 virtual void SetBackground(::Effekseer::Backend::TextureRef texture);
497 #endif // __EFFEKSEERRENDERER_RENDERER_H__
498 #ifndef __EFFEKSEERRENDERER_TEXTURELOADER_H__
499 #define __EFFEKSEERRENDERER_TEXTURELOADER_H__
501 #include <Effekseer.h>
503 namespace EffekseerRenderer
506 ::Effekseer::TextureLoaderRef CreateTextureLoader(::Effekseer::Backend::GraphicsDeviceRef gprahicsDevice,
507 ::Effekseer::FileInterfaceRef fileInterface =
nullptr,
508 ::Effekseer::ColorSpaceType colorSpaceType = ::Effekseer::ColorSpaceType::Gamma);
512 #endif // __EFFEKSEERRENDERER_TEXTURELOADER_H__
514 #ifndef __EFFEKSEERRENDERER_DX12_RENDERER_H__
515 #define __EFFEKSEERRENDERER_DX12_RENDERER_H__
517 #include <functional>
519 namespace EffekseerRendererDX12
522 ::Effekseer::Backend::GraphicsDeviceRef CreateGraphicsDevice(ID3D12Device* device, ID3D12CommandQueue* commandQueue, int32_t swapBufferCount);
534 ::EffekseerRenderer::RendererRef Create(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice,
535 DXGI_FORMAT* renderTargetFormats,
536 int32_t renderTargetCount,
537 DXGI_FORMAT depthFormat,
538 bool isReversedDepth,
539 int32_t squareMaxCount);
553 ::EffekseerRenderer::RendererRef Create(ID3D12Device* device,
554 ID3D12CommandQueue* commandQueue,
555 int32_t swapBufferCount,
556 DXGI_FORMAT* renderTargetFormats,
557 int32_t renderTargetCount,
558 DXGI_FORMAT depthFormat,
559 bool isReversedDepth,
560 int32_t squareMaxCount);
562 Effekseer::Backend::TextureRef CreateTexture(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice, ID3D12Resource* texture);
573 ID3D12Resource* TexturePtr =
nullptr;
576 TextureProperty GetTextureProperty(::Effekseer::Backend::TextureRef texture);
587 ID3D12CommandList* CommandListPtr =
nullptr;
590 CommandListProperty GetCommandListProperty(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList);
599 void BeginCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList, ID3D12GraphicsCommandList* dx12CommandList);
601 void EndCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList);
603 void ExecuteCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList);
609 #ifndef __EFFEKSEERRENDERER_LLGI_COMMON_H__
610 #define __EFFEKSEERRENDERER_LLGI_COMMON_H__
612 #include <Effekseer.h>
614 namespace EffekseerRenderer
619 std::array<Effekseer::Backend::TextureFormatType, 8> RenderTargetFormats;
620 int32_t RenderTargetCount = 0;
621 Effekseer::Backend::TextureFormatType DepthFormat = Effekseer::Backend::TextureFormatType::Unknown;
626 void FlushAndWait(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice);
628 Effekseer::RefPtr<EffekseerRenderer::CommandList> CreateCommandList(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice,
629 Effekseer::RefPtr<::EffekseerRenderer::SingleFrameMemoryPool> memoryPool);
631 Effekseer::RefPtr<EffekseerRenderer::SingleFrameMemoryPool> CreateSingleFrameMemoryPool(::Effekseer::Backend::GraphicsDeviceRef renderer);