human_render/src/RHI/OpenglDrv/GLDrvAPI.h
2024-11-29 01:09:00 +08:00

60 lines
1.5 KiB
C++

#pragma once
#include <vector>
#include "RHI/IRHIAPI.h"
class GLDrvAPI : public IRHIAPI {
public:
explicit GLDrvAPI() noexcept = default;
~GLDrvAPI() override = default;
bool InitEnv(const DriverSettings& setting) override;
bool InitRenderEnv(const DriverSettings& setting) override;
void UpdateRenderSize(const DriverSettings& setting) override;
void UninitEnv() override;
void PollEvents() override;
RHICommond* CreateVAOCommand(
class Mesh* mesh,
uint32 vaoHandle,
uint32 vboHandle,
uint32 eboHandle
) override;
RHICommond* DrawArrayCommand(
uint32 vaoHandle,
uint32 vaoStart,
uint32 vaoCount
) override;
RHICommond* DrawElementsCommand(
uint32 vaoHandle,
uint32 eboHandle,
uint32 eboCount
) override;
RHICommond* DeleteVAOCommand(
uint32 vaoHandle,
uint32 vboHandle,
uint32 eboHandle
) override;
RHICommond* CreateShaderCommand(
uint32 shaderHandle,
uint32 type,
const std::string& shader
) override;
RHICommond* DeleteShaderCommand(
uint32 shaderHandle
) override;
RHICommond* CreateProgramCommand(
uint32 programHandle,
const std::vector<uint32>& shaders
) override;
RHICommond* UseProgramCommand(
uint32 programHandle,
bool use
);
RHICommond* DeleteProgramCommand(
uint32 programHandle
) override;
RHICommond* CreateStartCommand() override;
RHICommond* CreateEndCommand() override;
};