49 virtual bool Initialize(
const CreateInfo& createInfo) = 0;
50 virtual void RegisterWindow(
Window* window) = 0;
55 virtual const char* GetVendorName()
const = 0;
56 virtual const char* GetAdapterName()
const = 0;
57 virtual const char* GetAPIName()
const = 0;
58 virtual const char* GetAPIVersion()
const = 0;
59 virtual const char* GetDefaultShaderExtension()
const = 0;
61 virtual void Clear(ClearMode mask,
float clearColor[4] =
nullptr,
float clearDepth = 0, uint32_t clearStencil = 0) = 0;
63 virtual void AdjustPerspective(
float *perspective) = 0;
65 virtual void DeleteImage(Image* ptr) = 0;
66 virtual void DeleteSampler(Sampler* ptr) = 0;
67 virtual void DeleteFramebuffer(Framebuffer* ptr) = 0;
68 virtual void DeleteBuffer(
Buffer* ptr) = 0;
69 virtual void DeleteGraphicsPipeline(GraphicsPipeline* ptr) = 0;
70 virtual void DeleteComputePipeline(ComputePipeline* ptr) = 0;
71 virtual void DeletePipelineLayout(PipelineLayout* ptr) = 0;
72 virtual void DeleteRenderPass(RenderPass* ptr) = 0;
73 virtual void DeleteDescriptorSet(DescriptorSet* ptr) = 0;
74 virtual void DeleteDescriptorSetLayout(DescriptorSetLayout* ptr) = 0;
75 virtual void DeleteCommandBuffer(CommandBuffer* ptr) = 0;
76 virtual void DeleteVertexArrayObject(VertexArrayObject* ptr) = 0;
100 virtual void CopyDepthBufferFromReadToWrite(uint32_t srcWidth, uint32_t srcHeight, uint32_t dstWidth, uint32_t dstHeight) = 0;
102 virtual bool ShouldUseImmediateMode()
const = 0;
103 virtual bool SupportsCommandBuffers()
const = 0;
104 virtual bool SupportsTesselation()
const = 0;
105 virtual bool SupportsGeometryShader()
const = 0;
106 virtual bool SupportsComputeShader()
const = 0;
107 virtual bool SupportsMultiDrawIndirect()
const = 0;
109 virtual void BindDefaultFramebuffer() = 0;
110 virtual void BindDefaultFramebufferWrite() = 0;
111 virtual void BindDefaultFramebufferRead() = 0;
113 virtual void WaitUntilIdle() = 0;
115 virtual void BindGraphicsPipeline(GraphicsPipeline* pipeline) = 0;
116 virtual void BindVertexArrayObject(VertexArrayObject*) = 0;
117 virtual void DrawImmediateIndexed(GeometryType geom_type,
bool largeBuffer, int32_t baseVertex, uint32_t indexOffsetPtr, uint32_t indexCount) = 0;
118 virtual void DrawImmediateVertices(GeometryType geom_type, uint32_t base, uint32_t count) = 0;
119 virtual void SetImmediateBlending(
120 BlendOperation colorOp, BlendFactor colorSrc, BlendFactor colorDst,
121 BlendOperation alphaOp, BlendFactor alphaSrc, BlendFactor alphaDst
123 virtual void EnableDepthWrite(
bool isDepthEnabled) = 0;
124 virtual void SetColorMask(ColorMask mask) = 0;
125 virtual void ResizeViewport(uint32_t w, uint32_t h) = 0;
130 VendorType vendorType;