#pragma once

/*
	ApplicationFramework
	by John Ryland
	Copyright (c) 2023
*/

////////////////////////////////////////////////////////////////////////////////////
//	Window Render Surface System Interface

#include "ICoreSystem.h"

namespace ApplicationFramework {

class IWindow;
class IWindowSystem;
class IRenderSystem;

class IWindowRenderSurfaceSystem : public ICoreSystem
{
public:
    IWindowRenderSurfaceSystem(IWindowSystem* windowSystem, IRenderSystem* renderSystem) {}

    virtual void* CreateWindowSurface(IWindow* window) = 0;
    virtual void DestroyWindowSurface(IWindow* window, void* surface) = 0;
};

} // ApplicationFramework namespace
