1 module evael.renderer.vk.vk_pipeline; 2 3 import evael.renderer.pipeline; 4 import evael.renderer.graphics_buffer; 5 6 import evael.renderer.vk.vk_shader; 7 import evael.renderer.vk.vk_wrapper; 8 import evael.renderer.vk.vk_uniform_resource; 9 import evael.renderer.vk.vk_texture_resource; 10 import evael.renderer.vk.vk_enum_converter; 11 12 import evael.renderer.resources.resource; 13 import evael.renderer.texture; 14 15 import evael.lib.memory; 16 17 class VulkanPipeline : Pipeline 18 { 19 @nogc 20 public override void apply() const nothrow 21 { 22 if (this.depthState.enabled) 23 { 24 25 } 26 27 if (this.blendState.enabled) 28 { 29 30 } 31 32 foreach (resource; this.m_resources) 33 { 34 resource.apply(); 35 } 36 } 37 38 @nogc 39 public override void clear() const nothrow 40 { 41 foreach (resource; this.m_resources) 42 { 43 resource.clear(); 44 } 45 46 if (this.blendState.enabled) 47 { 48 } 49 50 if (this.depthState.enabled) 51 { 52 } 53 } 54 55 @nogc 56 public override VulkanTextureResource addTextureResource(Texture texture = null) 57 { 58 auto resource = MemoryHelper.create!VulkanTextureResource(texture); 59 this.m_resources.insert(resource); 60 return resource; 61 } 62 63 @nogc 64 public VulkanUniformResource!T addUniformResource(T)(in string name, T value) 65 { 66 assert(this.shader !is null, "Set a shader before adding an uniform resource."); 67 68 return null; 69 } 70 }