#pragma once    
#include "CommonHeader.h"
#include "Platform/Window.h"
#include "Renderer.h"

namespace XEngine::graphics{
/**
 * @brief 平台接口结构体
 * @details 定义了图形渲染平台的初始化与关闭函数指针
 */
struct platform_interface{
    bool(*initialize)(void);
    void(*shutdown)(void);

    struct {
        surface(*create)(platform::window);
        void(*remove)(surface_id);
        void(*resize)(surface_id, u32, u32);
        u32(*width)(surface_id);
        u32(*height)(surface_id);
        void(*render)(surface_id);
    } surface;
};
}// namespace XEngine::graphics

