HatchitGraphics
ht_gpuresourcepool.h
1 
15 #pragma once
16 
17 #include <ht_platform.h>
18 #include <ht_texture.h>
19 #include <ht_singleton.h>
20 #include <Hatchit/HatchitGraphics/include/ht_device.h>
21 #include <ht_material.h>
22 #include <ht_pipeline.h>
23 #include <ht_rootlayout.h>
24 #include <ht_rendertarget.h>
25 #include <ht_renderpass.h>
26 #include <ht_mesh.h>
27 
28 namespace Hatchit
29 {
30  namespace Graphics
31  {
32  class GPUResourceThread;
33  class SwapChain;
34 
44  class HT_API GPUResourcePool : public Core::Singleton<GPUResourcePool>
45  {
46  public:
47  static bool Initialize(IDevice* device, SwapChain* swapchain);
48  static void DeInitialize();
49  static bool IsLocked();
50 
51  static void RequestTexture(std::string file, void** data);
52  static void RequestMaterial(std::string file, void** data);
53  static void RequestRootLayout(std::string file, void** data);
54  static void RequestPipeline(std::string file, void** data);
55  static void RequestShader(std::string file, void** data);
56  static void RequestRenderPass(std::string file, void** data);
57  static void RequestRenderTarget(std::string file, void** data);
58  static void RequestMesh(std::string file, void** data);
59 
60  static void RequestTextureAsync(std::string file, void** data);
61  static void RequestMaterialAsync(std::string file, void** data);
62  static void RequestRootLayoutAsync(std::string file, void** data);
63  static void RequestPipelineAsync(std::string file, void** data);
64  static void RequestShaderAsync(std::string file, void** data);
65  static void RequestRenderPassAsync(std::string file, void** data);
66  static void RequestRenderTargetAsync(std::string file, void** data);
67  static void RequestMeshAsync(std::string file, void** data);
68 
69  static void CreateTexture(std::string file, void** data);
70  static void CreateMaterial(std::string file, void** data);
71  static void CreateRootLayout(std::string file, void** data);
72  static void CreatePipeline(std::string file, void** data);
73  static void CreateShader(std::string file, void** data);
74  static void CreateRenderPass(std::string file, void** data);
75  static void CreateRenderTarget(std::string file, void** data);
76  static void CreateMesh(std::string file, void** data);
77 
78  private:
79  GPUResourceThread* m_thread;
80  IDevice* m_device;
81 
82  };
83  }
84 }
Abstract class that defines and implements functions for creation of GPU resource objects...
Definition: ht_gpuresourcethread.h:53
Hatchit Engine Copyright(c) 2015-2016 Third-Degree.
Definition: ht_color.h:19
Definition: ht_swapchain.h:38
Interface outlining implementation for GPU Device.
Definition: ht_device.h:27
Definition: ht_gpuresourcepool.h:44