1 of 1 people found this helpful
1. By "static" we mean you cannot change rotation dynamically at run time. The system generally needs to know at initialization the desired rotation.
2. Rotation is being done by the driver by faking out the OS on the screen orientaion (the driver needs to lie to the OS as to the screen orientation), then on each frame, rerender the framebuffer to the appropriate rotation, so the hardware can shift out the image at the hardware native format, but with the data rotated. This is where the limitiations kick in. The "InvalidateRect" may be trying to do something directly in the framebuffer and missing the rerender step thus screwing up. We would generally recommened against rotation because of limitations and performance issues it causes. It is much better to find a display that runs actually runs at the desired orientation.
3. Rotation and an appropriate memory area for the extra oddly shaped framebuffer (there may be more off screen memory required to get the particular rotated resolution to match the memory stride) and the extra on-screen framebuffer to which we rerender with rotation the background framebuffer to display. Your memory settings may affect that but generally not.
You just may have found one of those roatation limitations in the wayt the software works the prevents rotation from working. I know it is not what you want to hear but it is what it is...
Hope this helps. Kirk