38 virtual bool Initialize(
const CreateInfo& createInfo) = 0;
39 virtual void RegisterWindow(
Window* window) = 0;
44 virtual const char* GetVendorName()
const = 0;
45 virtual const char* GetAdapterName()
const = 0;
46 virtual const char* GetAPIName()
const = 0;
47 virtual const char* GetAPIVersion()
const = 0;
48 virtual const char* GetDefaultShaderExtension()
const = 0;
50 virtual void Clear(ClearMode mask,
float clearColor[4] =
nullptr,
float clearDepth = 0, uint32_t clearStencil = 0) = 0;
52 virtual void AdjustPerspective(
float *perspective) = 0;
56 virtual void DeleteFramebuffer(
Framebuffer* ptr) = 0;
58 virtual void DeleteIndexBuffer(
IndexBuffer* ptr) = 0;
62 virtual void DeleteRenderPass(
RenderPass* ptr) = 0;
63 virtual void DeleteTexture(
Texture* ptr) = 0;
86 virtual void CopyDepthBufferFromReadToWrite(uint32_t srcWidth, uint32_t srcHeight, uint32_t dstWidth, uint32_t dstHeight) = 0;
88 virtual bool ShouldUseImmediateMode()
const = 0;
89 virtual bool SupportsCommandBuffers()
const = 0;
90 virtual bool SupportsTesselation()
const = 0;
91 virtual bool SupportsGeometryShader()
const = 0;
92 virtual bool SupportsComputeShader()
const = 0;
93 virtual bool SupportsMultiDrawIndirect()
const = 0;
95 virtual void BindDefaultFramebuffer() = 0;
96 virtual void BindDefaultFramebufferWrite() = 0;
97 virtual void BindDefaultFramebufferRead() = 0;
99 virtual void WaitUntilIdle() = 0;
103 virtual void DrawImmediateIndexed(GeometryType geom_type,
bool largeBuffer, int32_t baseVertex, uint32_t indexOffsetPtr, uint32_t indexCount) = 0;
104 virtual void DrawImmediateVertices(GeometryType geom_type, uint32_t base, uint32_t count) = 0;
105 virtual void SetImmediateBlending(
106 BlendOperation colorOp, BlendFactor colorSrc, BlendFactor colorDst,
107 BlendOperation alphaOp, BlendFactor alphaSrc, BlendFactor alphaDst
109 virtual void EnableDepthWrite(
bool isDepthEnabled) = 0;
110 virtual void SetColorMask(ColorMask mask) = 0;
111 virtual void ResizeViewport(uint32_t w, uint32_t h) = 0;
113 const char* GetVendorNameFromID(uint32_t vendorID) {
116 return "Advanced Micro Devices (AMD)";
119 return "Imagination Technologies";
122 return "NVIDIA Corporation";
125 return "Arm Limited";
128 return "Qualcomm Technologies, Inc.";
133 return "Intel Corporation";
Definition Texture.hpp:40
Definition Texture.hpp:42
Definition Texture.hpp:52