All pastes #518151 Raw Edit

Unnamed

public text v1 · immutable
#518151 ·published 2007-05-29 06:47 UTC
rendered paste body
/*
	EmWindow is the cross-platform object representing the window that
	displays the emulation.  It is not the actual thing that appears on
	the monitor as a window, but merely deals with cross-platform
	aspects of handling it, such as updating its contents, changing
	skins, etc.

	EmWindow handles all the cross-platform issues.  It can deal with
	the upper-level parts of updating the LCD area, wiggling the window
	if the vibrator is going, changing skins, etc.

	EmWindow manages most of the platform-specific aspects by defining
	HostFoo methods, which are then defined differently on each
	platform.  These HostFoo methods are implemented in
	EmWindow<Host>.cpp.

	EmWindow<Host> is also defined in EmWindow<Host>.cpp, and holds any
	platform-specific data (such as the HWND on Windows, etc.).  It
	declares and implements any support functions needed on that
	particular platform, but which can't be declared in EmWindow because
	either not all platforms need those functions, or they involve
	platform-specific types.

	One creates a window by calling "window = new EmWindow<Host>;"
	followed by "window->WindowInit();".  Cross-platform code can then
	call high-level functions in EmWindow such as HandleUpdate and
	HandlePen.  Platform-specific code can perform platform-specific
	operations.  When it's time to close the window, call
	"window->WindowDispose();" followed by "delete window;"
*/