#pragma once #include "ISwapChain.h" #include "IGeometryBuffer.h" #include "IShader.h" #include "IRenderCommandNode.h" #include "IShaderParameterCollection.h" #include "ITexture.h" #include "ITransformation.h" #include "ITransformationAnimation.h" #include "IRenderTargetTexture.h" #include "ICamera.h" #include "IBone.h" #include "IWindow.h" struct __declspec(novtable) IResourceFactory { virtual ~IResourceFactory() {} virtual ITransformationAnimation& CreateTransformationAnimation() = 0; virtual void DeleteTransformationAnimation(ITransformationAnimation& argValue, bool argRemoveOnly = false) = 0; virtual IWindow& CreateSwapChainWindow() = 0; virtual void DeleteSwapChainWindow(IWindow& argValue, bool argRemoveOnly = false) = 0; virtual IRenderCommandNode& CreateRenderCommandNode() = 0; virtual void DeleteRenderCommandNode(IRenderCommandNode& argValue, bool argRemoveOnly = false) = 0; virtual IShader* FindShader(const string8& argId) = 0; virtual IShader& CreateOrFindShader(const string8& argId = "") = 0; virtual void DeleteShader(IShader& argValue, bool argRemoveOnly = false) = 0; virtual IInternalShader* FindInternalShader(const string8& argId) = 0; virtual IInternalShader& CreateOrFindInternalShader(const string8& argId = "") = 0; virtual void DeleteInternalShader(IInternalShader& argValue, bool argRemoveOnly = false) = 0; virtual ISwapChain* FindSwapChain(const string8& argId) = 0; virtual ISwapChain& CreateOrFindSwapChain(const string8& argId = "") = 0; virtual void DeleteSwapChain(ISwapChain& argValue, bool argRemoveOnly = false) = 0; virtual IRenderTargetTexture* FindRenderTargetTexture(const string8& argId) = 0; virtual IRenderTargetTexture& CreateOrFindRenderTargetTexture(const string8& argId = "") = 0; virtual void DeleteRenderTargetTexture(IRenderTargetTexture& argValue, bool argRemoveOnly = false) = 0; virtual IGeometryBuffer* FindGeometryBuffer(const string8& argId) = 0; virtual IGeometryBuffer& CreateOrFindGeometryBuffer(const string8& argId = "") = 0; virtual void DeleteGeometryBuffer(IGeometryBuffer& argValue, bool argRemoveOnly = false) = 0; virtual IShaderParameterCollection* FindShaderParameterCollection(const string8& argId) = 0; virtual IShaderParameterCollection& CreateOrFindShaderParameterCollection(const string8& argId = "") = 0; virtual void DeleteShaderParameterCollection(IShaderParameterCollection& argValue, bool argRemoveOnly = false) = 0; virtual ITexture* FindTexture(const string8& argId) = 0; virtual ITexture& CreateOrFindTexture(const string8& argId = "") = 0; virtual void DeleteTexture(ITexture& argValue, bool argRemoveOnly = false) = 0; virtual ITransformation* FindTransformation(const string8& argId) = 0; virtual ITransformation& CreateOrFindTransformation(const string8& argId = "") = 0; virtual void DeleteTransformation(ITransformation& argValue, bool argRemoveOnly = false) = 0; virtual IPerspectiveCamera* FindPerspectiveCamera(const string8& argId) = 0; virtual IPerspectiveCamera& CreateOrFindPerspectiveCamera(const string8& argId = "") = 0; virtual void DeletePerspectiveCamera(IPerspectiveCamera& argValue, bool argRemoveOnly = false) = 0; virtual IOrthographicCamera* FindOrthographicCamera(const string8& argId) = 0; virtual IOrthographicCamera& CreateOrFindOrthographicCamera(const string8& argId = "") = 0; virtual void DeleteOrthographicCamera(IOrthographicCamera& argValue, bool argRemoveOnly = false) = 0; virtual IBone* FindBone(const string8& argId) = 0; virtual IBone& CreateOrFindBone(const string8& argId = "") = 0; virtual void DeleteBone(IBone& argValue, bool argRemoveOnly = false) = 0; virtual IBoneController* FindBoneController(const string8& argId) = 0; virtual IBoneController& CreateOrFindBoneController(const string8& argId = "") = 0; virtual void DeleteBoneController(IBoneController& argValue, bool argRemoveOnly = false) = 0; virtual bool HasCreatedResource() = 0; };