17 #include <ht_platform.h> 18 #include <ht_string.h> 19 #include <ht_threadvector.h> 20 #include <ht_threadstack.h> 21 #include <ht_threadqueue.h> 25 #include <condition_variable> 26 #include <ht_gpuresourcerequest.h> 28 #include <ht_texture_resource.h> 29 #include <ht_material_resource.h> 30 #include <ht_rootlayout_resource.h> 31 #include <ht_pipeline_resource.h> 32 #include <ht_shader_resource.h> 33 #include <ht_renderpass_resource.h> 34 #include <ht_rendertarget_resource.h> 35 #include <ht_mesh_resource.h> 42 class GPUResourceRequest;
55 using GPURequestQueue = Core::ThreadsafeStack<GPUResourceRequest*>;
60 virtual void VStart() = 0;
67 void CreateTexture(std::string file,
void** data);
68 void CreateMaterial(std::string file,
void** data);
69 void CreateRootLayout(std::string file,
void** data);
70 void CreatePipeline(std::string file,
void** data);
71 void CreateShader(std::string file,
void** data);
72 void CreateRenderPass(std::string file,
void** data);
73 void CreateRenderTarget(std::string file,
void** data);
74 void CreateMesh(std::string file,
void** data);
78 std::atomic_bool m_alive;
79 std::atomic_bool m_tfinished;
80 std::atomic_bool m_locked;
81 mutable std::mutex m_mutex;
82 std::condition_variable m_cv;
83 std::atomic_bool m_processed;
84 GPURequestQueue m_requests;
95 virtual void VCreateTextureBase(Resource::TextureHandle handle,
void** base) = 0;
96 virtual void VCreateMaterialBase(Resource::MaterialHandle handle,
void** base) = 0;
97 virtual void VCreateRootLayoutBase(Resource::RootLayoutHandle handle,
void** base) = 0;
98 virtual void VCreatePipelineBase(Resource::PipelineHandle handle,
void** base) = 0;
99 virtual void VCreateShaderBase(Resource::ShaderHandle handle,
void** base) = 0;
100 virtual void VCreateRenderPassBase(Resource::RenderPassHandle handle,
void** base) = 0;
101 virtual void VCreateRenderTargetBase(Resource::RenderTargetHandle handle,
void** base) = 0;
102 virtual void VCreateMeshBase(Resource::ModelHandle handle,
void** base) = 0;
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_gpuresourcerequest.h:55
Definition: ht_gpuresourcerequest.h:34