Paul
Wed Apr 23 13:54:34 PDT 2008
I've never done this and don't have any particular insight into the
mechanics of it, if it's even possible, but it would be worth looking at the
source code for the shell to see if anything short of a restart will change
its sizing of the desktop and so on. If you have the source for the Window
Manager portion of GWES, you could also see what is needed to change its
impression of the size of the display surface...
Paul T.
"Ishwar AKA Painkiller" <ishwarms@gmail.com> wrote in message
news:c6a30dbe-559a-49c6-a23e-fafd9e180e54@x35g2000hsb.googlegroups.com...
> Yes APPs can use EnumDisplaySettings and ChangeDisplaySettingsEx()
> but it also needs reboot.
> I am also looking to crack this..... I was able to get the VGA FB
> without restart
> but FB still filled with QVGA image :((
>
> On Apr 11, 9:39 am, "Michel Verhagen (eMVP)" <mic...@nospam.box>
> wrote:
>> Response from voidcoder (I asked around):
>>
>> While I haven't tried this myself yet, but it looks like it is
>> possible. Basically it is done through the GPE::NumModes(),
>> GPE::GetModeInfo() and GPE::SetMode() methods. He has to override
>> those methods in his GPE/DDGPE derived class in the disp driver
>> in order to support dynamic res changes. One of the sample display
>> drivers (I believe it is ATI RAGEX, don't have sources close at
>> hand at the mo) supports this.
>>
>> Apps call EnumDisplaySettings() to find supported resolutions
>> andChangeDisplaySettingsEx() to change it.
>>
>> Good luck,
>>
>> Michel Verhagen, eMVP
>> Check out my blog:
http://GuruCE.com/blog
>>
>> GuruCE Ltd.
>> Microsoft Embedded Partner
>>
http://GuruCE.com
>> Consultancy, training and development services.
>>
>> Danny wrote:
>> > Michael,
>>
>> > I have looked a bit at the RageXL driver, and there are some places
>> > where
>> > that driver does special handling for the case of changing the display
>> > resolution. But it is still not clear to me how the display resolution
>> > change is initiated.
>>
>> > I will try to add this support by intercepting changes to the display
>> > mode
>> > (via SetDisplayMode()), and then manually deleting and reallocating the
>> > primary surface. Not sure if this will be accepted behavior.
>>
>> > Thanks for the attempts to help,
>> > Danny
>>
>> > "Michel Verhagen (eMVP)" wrote:
>>
>> >> Danny,
>>
>> >> The ATI RageXL display driver code seems to (want to) support dynamic
>> >> resolution changes. See
>> >> \WINCE600\PUBLIC\COMMON\OAK\DRIVERS\DISPLAY\RAGEXL\DAL\DALLIB\SRC\dalgco.c,
>> >> line 1430
>>
>> >> But... It looks like a dead end because
>> >> DAL_MODECHANGE_MAJOR_DESKTOPRESORBPPCHANGE is only used in that file
>> >> and
>> >> the header file. No other code seems to use it... Could be a leftover
>> >> from the port of this driver from XP.
>>
>> >> I think your best chance is to open a support incident with Microsoft
>> >> and get some sample code / help from the team. Documentation / example
>> >> code should definitely be extended for this functionality...
>>
>> >> Good luck,
>>
>> >> Michel Verhagen, eMVP
>> >> Check out my blog:
http://GuruCE.com/blog
>>
>> >> GuruCE
>> >>
http://GuruCE.com
>> >> Consultancy, training and development services.
>>
>> >> Michel Verhagen (eMVP) wrote:
>> >>> Doing it from the bootloader is NOT dynamic. It requires a reboot,
>> >>> and
>> >>> that trick has been used since the earliest versions of Windows CE.
>> >>> What
>> >>> Dean wants is info on the dynamic display change that is now
>> >>> supported
>> >>> on CE 6.0
>>
>> >>> Sorry Dean, no experience with that yet, but I'll see what I can
>> >>> find...
>>
>> >>> Good luck,
>>
>> >>> Michel Verhagen, eMVP
>> >>> Check out my blog:
http://GuruCE.com/blog
>>
>> >>> GuruCE
>> >>>
http://GuruCE.com
>> >>> Consultancy, training and development services.
>>
>> >>>wince...@gmail.com wrote:
>> >>>> Danny,forget the display driver.You can do it in bootloader if your
>> >>>> platform has one.Then you can chang screen resolution dynamically in
>> >>>> it.You can store lcd infomation in g_ebootCFG and init LCD
>> >>>> controller
>> >>>> in bootloader.What you have to do in dispaly driver is getting the
>> >>>> LCD
>> >>>> information(just LCD_XSIZE and LCD_YSIZE).You even needn't init LCD
>> >>>> controller in display driver since you have it done in bootloader.
>>
>> >>>> Good luck.
>