34 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include "type.h"
 | 
						|
#include "render/render_api.h"
 | 
						|
namespace vkn {
 | 
						|
	using api::BufferDesc;
 | 
						|
	using api::RenderPassState;
 | 
						|
	struct VulkanContext : public api::RenderContext {
 | 
						|
		VkFence		surfaceFence;
 | 
						|
		VkFence		transferFence;
 | 
						|
		uint8_t     waitFenceNums[8]{ 2,2,2,2,2,2,2,2 };//最多不能超过8个
 | 
						|
		VkSemaphore surfaceSemaphore;
 | 
						|
		VkSemaphore presentSemaphore;
 | 
						|
		VkSemaphore graphSemaphore;
 | 
						|
		VkSemaphore transferSemaphore;
 | 
						|
		VkCommandBuffer transferCommand;
 | 
						|
		VkCommandBuffer surfaceCommand;
 | 
						|
		VkCommandBuffer command;
 | 
						|
		void SetScissor(uint32_t x, uint32_t y, uint32_t width, uint32_t height) override;
 | 
						|
		void SetViewport(float x, float y, float width, float height, float min_depth, float max_depth) override;
 | 
						|
		void BindIndexBuffer(BufferDesc desc, uint32_t index_stride) override;
 | 
						|
		void BindVertexBuffer(BufferDesc desc) override;
 | 
						|
		void BindVertexBuffers(uint32_t buffer_count, const BufferDesc* descs, const uint32_t* offsets)override;
 | 
						|
		void DrawIndexed(uint32_t index_count, uint32_t first_index, uint32_t first_vertex) override;
 | 
						|
		void ExecuteSurfaceBarriers(const ResourceBarrierDesc& desc) override;
 | 
						|
		void ExecuteResourceBarriers(const ResourceBarrierDesc& desc) override;
 | 
						|
		void UpdateTexture(TextureDesc& texture, const TextureUpdateArgs& update, ResourceState state) override;
 | 
						|
 | 
						|
		void ClearSurface(VkClearColorValue clearValue);
 | 
						|
		void BeginRecord(VkCommandBuffer cmd, VkCommandBufferUsageFlags flag);
 | 
						|
		void EndRecord(VkQueue queue);
 | 
						|
		void FlushCommand();
 | 
						|
		VkCommandBuffer GetTransferCommand();
 | 
						|
	};
 | 
						|
} |