2 #ifndef __EFFEKSEERRENDERER_VULKAN_BASE_PRE_H__
3 #define __EFFEKSEERRENDERER_VULKAN_BASE_PRE_H__
8 #define VK_USE_PLATFORM_WIN32_KHR
10 #include <vulkan/vulkan.h>
14 #ifndef __EFFEKSEERRENDERER_RENDERER_H__
15 #define __EFFEKSEERRENDERER_RENDERER_H__
20 #include <Effekseer.h>
36 namespace EffekseerRenderer
40 using RendererRef = ::Effekseer::RefPtr<Renderer>;
47 struct ExternalShaderSettings
49 Effekseer::Backend::ShaderRef StandardShader;
50 Effekseer::Backend::ShaderRef ModelShader;
51 Effekseer::AlphaBlendType Blend;
60 class DistortingCallback
66 virtual ~DistortingCallback()
100 enum class ProxyTextureType
106 class CommandList :
public ::Effekseer::IReference
109 CommandList() =
default;
110 virtual ~CommandList() =
default;
113 class SingleFrameMemoryPool :
public ::Effekseer::IReference
116 SingleFrameMemoryPool() =
default;
117 virtual ~SingleFrameMemoryPool() =
default;
129 struct DepthReconstructionParameter
131 float DepthBufferScale = 1.0f;
132 float DepthBufferOffset = 0.0f;
133 float ProjectionMatrix33 = 0.0f;
134 float ProjectionMatrix34 = 0.0f;
135 float ProjectionMatrix43 = 0.0f;
136 float ProjectionMatrix44 = 0.0f;
139 ::Effekseer::ModelLoaderRef CreateModelLoader(::Effekseer::Backend::GraphicsDeviceRef gprahicsDevice, ::Effekseer::FileInterfaceRef fileInterface =
nullptr);
141 class Renderer :
public ::Effekseer::IReference
148 std::unique_ptr<Impl> impl;
262 virtual void SetCameraParameter(const ::Effekseer::Vector3D& front, const ::Effekseer::Vector3D& position);
292 virtual ::Effekseer::TextureLoaderRef
CreateTextureLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
297 virtual ::Effekseer::ModelLoaderRef
CreateModelLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
305 virtual ::Effekseer::MaterialLoaderRef
CreateMaterialLoader(::Effekseer::FileInterfaceRef fileInterface =
nullptr) = 0;
362 virtual void SetRenderMode(Effekseer::RenderMode renderMode);
404 virtual void SetTime(
float time);
422 virtual const ::Effekseer::Backend::TextureRef&
GetBackground();
429 virtual void SetBackground(::Effekseer::Backend::TextureRef texture);
496 #endif // __EFFEKSEERRENDERER_RENDERER_H__
497 #ifndef __EFFEKSEERRENDERER_TEXTURELOADER_H__
498 #define __EFFEKSEERRENDERER_TEXTURELOADER_H__
500 #include <Effekseer.h>
502 namespace EffekseerRenderer
505 ::Effekseer::TextureLoaderRef CreateTextureLoader(::Effekseer::Backend::GraphicsDeviceRef gprahicsDevice,
506 ::Effekseer::FileInterfaceRef fileInterface =
nullptr,
507 ::Effekseer::ColorSpaceType colorSpaceType = ::Effekseer::ColorSpaceType::Gamma);
511 #endif // __EFFEKSEERRENDERER_TEXTURELOADER_H__
513 #ifndef __EFFEKSEERRENDERER_VULKAN_RENDERER_H__
514 #define __EFFEKSEERRENDERER_VULKAN_RENDERER_H__
516 #include <functional>
518 namespace EffekseerRendererVulkan
524 VkImageAspectFlags aspect;
530 bool DoesPresentToScreen =
false;
531 std::array<VkFormat, 8> RenderTextureFormats;
532 int32_t RenderTextureCount = 1;
533 VkFormat DepthFormat = VK_FORMAT_UNDEFINED;
536 ::Effekseer::Backend::GraphicsDeviceRef CreateGraphicsDevice(
537 VkPhysicalDevice physicalDevice, VkDevice device, VkQueue transfarQueue, VkCommandPool transfarCommandPool, int32_t swapBufferCount);
539 ::EffekseerRenderer::RendererRef
540 Create(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice,
RenderPassInformation renderPassInformation, int32_t squareMaxCount);
549 ::EffekseerRenderer::RendererRef Create(VkPhysicalDevice physicalDevice,
551 VkQueue transfarQueue,
552 VkCommandPool transfarCommandPool,
553 int32_t swapBufferCount,
555 int32_t squareMaxCount);
557 Effekseer::Backend::TextureRef CreateTexture(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice,
const VulkanImageInfo& info);
559 void BeginCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList, VkCommandBuffer nativeCommandList);
561 void EndCommandList(Effekseer::RefPtr<EffekseerRenderer::CommandList> commandList);
567 #ifndef __EFFEKSEERRENDERER_LLGI_COMMON_H__
568 #define __EFFEKSEERRENDERER_LLGI_COMMON_H__
570 #include <Effekseer.h>
572 namespace EffekseerRenderer
575 struct RenderPassPipelineStateKey
577 std::array<Effekseer::Backend::TextureFormatType, 8> RenderTargetFormats;
578 int32_t RenderTargetCount = 0;
579 Effekseer::Backend::TextureFormatType DepthFormat = Effekseer::Backend::TextureFormatType::Unknown;
582 void ChangeRenderPassPipelineState(EffekseerRenderer::RendererRef renderer, RenderPassPipelineStateKey key);
584 void FlushAndWait(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice);
586 Effekseer::RefPtr<EffekseerRenderer::CommandList> CreateCommandList(::Effekseer::Backend::GraphicsDeviceRef graphicsDevice,
587 Effekseer::RefPtr<::EffekseerRenderer::SingleFrameMemoryPool> memoryPool);
589 Effekseer::RefPtr<EffekseerRenderer::SingleFrameMemoryPool> CreateSingleFrameMemoryPool(::Effekseer::Backend::GraphicsDeviceRef renderer);