Files
funnygame/public/materialsystem/igamewindow.h
2026-02-05 11:10:40 +02:00

40 lines
984 B
C++

#ifndef GAME_WINDOW_H
#define GAME_WINDOW_H
#include "tier0/platform.h"
#include "tier2/iappsystem.h"
class IImage;
abstract_class IGameWindow: public IAppSystem
{
public:
virtual void Frame( float fDelta ) = 0;
virtual uint32_t GetRenderWidth() = 0;
virtual uint32_t GetRenderHeight() = 0;
virtual bool BRenderSizeUpdated() = 0;
virtual void SetOutputImage( IImage *pImage ) = 0;
virtual IImage *GetOutputImage() = 0;
virtual void *CreateVulkanSurface( void *pInstance ) = 0;
virtual void DestroyVulkanSurface( void *pInstance ) = 0;
};
abstract_class IGameWindowManager: public IAppSystem
{
public:
virtual void Frame( float fDelta ) = 0;
virtual IGameWindow *CreateWindow() = 0;
virtual void DestroyWindow( IGameWindow* pWindow ) = 0;
virtual int GetVulkanInstanceExtensionCount() = 0;
virtual const char **GetVulkanInstanceExtensions() = 0;
};
IGameWindowManager *GameWindowManager();
#define GAME_WINDOW_MANAGER_INTERFACE_VERSION "GameWindowMgr001"
#endif