#pragma once #include #include #include 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 defaultFramebuffer_; }; } // namespace extra2d