#pragma once
#ifndef REAL_BUILD
# include "externals.hh"
#endif

struct T_UIApp;
struct T_TextureManager;
struct T_ShaderManager;
struct T_OutputDebugger;
struct T_UISync;


struct UI : public ebcl::A_PrivateImplementation
{
    public:
	static void Init( ) noexcept;
	static void Shutdown( ) noexcept;

	static T_UIApp& Main( ) noexcept;
	static T_TextureManager& Textures( ) noexcept;
	static T_ShaderManager& Shaders( ) noexcept;
	static T_OutputDebugger& ODbg( ) noexcept;
	static T_UISync& Sync( ) noexcept;

    private:
	UI( ) noexcept;
	NO_COPY( UI );
	NO_MOVE( UI );
};