view EXCLUDE/GLTSF/include/Window.hpp @ 4731:bfc8ad7234b6

Adding some initial TSF code
author dewyatt
date Thu, 27 May 2010 20:47:52 -0400
parents 6032ada8b9e5
children 0c7c67d4e6ee
line wrap: on
line source

#ifndef WINDOW_HPP
#define WINDOW_HPP

#include <string>

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>

#include "Video_Mode.hpp"
#include "Window_Listener.hpp"

class Window
{
public:
	Window();
	~Window();

	void Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
	void Finalize();

	void Set_Listener(Window_Listener *Listener);

	void Show();
	void Hide();

	void Update();
	void Display();

private:
	static const wchar_t *Window_Class_Name;

	void Register_Class();
	void Unregister_Class();

	void Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
	void Destroy_Window();

	void Create_Context(const Video_Mode &Mode);
	void Destroy_Context();

	void Switch_To_Fullscreen(const Video_Mode &Mode);

	LRESULT Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
	static LRESULT CALLBACK Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);

	HWND my_Handle;
	Video_Mode my_Video_Mode;
	bool my_Fullscreen;
	HDC my_Device_Context;
	HGLRC my_GL_Context;
	bool my_Class_Registered;
	Window_Listener *my_Listener;
};

#endif