39 lines
810 B
C++
39 lines
810 B
C++
#pragma once
|
|
|
|
#include <renderer/rhi/rhi.h>
|
|
#include <glad/glad.h>
|
|
#include <memory>
|
|
|
|
namespace extra2d {
|
|
|
|
// 前向声明
|
|
class GLDevice;
|
|
class GLFramebuffer;
|
|
|
|
/**
|
|
* @brief OpenGL 上下文实现
|
|
*/
|
|
class GLContext : public RHIContext {
|
|
public:
|
|
explicit GLContext(GLDevice* device);
|
|
~GLContext() override;
|
|
|
|
bool initialize() override;
|
|
void shutdown() override;
|
|
|
|
void beginFrame() override;
|
|
void endFrame() override;
|
|
|
|
void setViewport(int32_t x, int32_t y, uint32_t width, uint32_t height) override;
|
|
void bindDefaultFramebuffer() override;
|
|
RHIFramebuffer* getDefaultFramebuffer() override;
|
|
|
|
bool isFeatureSupported(const char* feature) const override;
|
|
|
|
private:
|
|
GLDevice* device_;
|
|
std::unique_ptr<GLFramebuffer> defaultFramebuffer_;
|
|
};
|
|
|
|
} // namespace extra2d
|