// Win32 console Platform implementation.

#ifndef PLATFORM_WIN32_CONSOLE_HPP
#define PLATFORM_WIN32_CONSOLE_HPP

#include "Platform.hpp"

class Platform_Win32Console : public Platform {
protected:
	Platform_Win32Console(void *handle_out, void *handle_in);

public:
	void *handle_out;
	void *handle_in;

	virtual std::unordered_set<char> get_input(void) override;
	virtual void render(PixelBuffer const &PixelBuffer) override;
	virtual void set_title(std::string const &title) override;

	// Returns a correctly initialized console object, or exits the program on
	// any error.
	static Platform_Win32Console init();
};

#endif // PLATFORM_WIN32_CONSOLE_HPP