Greetings All,
I posted this earlier, but it looks like I accidentally posted it in a News Forum. I'm guessing the moderator hasn't approved it yet. Yo, Mod? Don't bother, my bad, or if you do, by chance, approve it, remove it instead.
Anywho... for some time now, I've been playing with various Amiga C++ Frameworks with little or no success. So, just for giggles, I decided to experiment with my own. First I created a prototype meant simply to open a window and communicate with it. Next, also just for giggles, since we're talkin' Amiga here,

I created a class for Displays (Screens). At present, using it looks something like this:
IntuitionBase = IntuitionLibrary.GetIntuitionBase( );
Display screen = Display(320, 200);
screen.SetLocation(0, 120);
screen.DisplayMode = DisplayModeId::LoRes;
screen.OverscanMode = OverscanModeId::Text;
screen.SetTitle("Low Res Screen.");
screen.open( );
Delay(50 * 5);
screen.close( );
IntuitionLibrary.close( );
Now, the DisplayMode and it's associated enum, DisplayModeId derive their values from the C header file, graphics/modeid.h, and what I'm wondering is this: doesn't the modeid effectively determine the resolution? If I specify LORES_KEY (from modeid.h) isn't that the same as declaring a screen resolution of 320x200? And specifying it as HIRES_KEY would be the same as declaring a 640x200 resolution, while declaring HIRESLACE_KEY is the same as 640x400?
I ask because, at present, I'm declaring a screen as "Display screen = Display(320, 200)" when it seems to me this should be the same as "Display(DisplayModeId::LoRes)".
Of course, this then begs the question, what about Overscan? How does it further affect the resolution? If the developer declares LOWRES_KEY and an overscan of OSCAN_MAX, how does this increase the display area? Does know where I might look to further define how these two modes interact?
Thoughts welcome.