I am working to develop a display driver that can take advantage of the
Windows CE 6.0 support for changing the screen resolution dynamically. It
seems there is very little documentation on this feature, other than the fact
that it exists.

What is the process for communicating a dynamic resolution change to the
graphics system? Is there some API call needed? I noticed in the sample
RageXL driver a reference to using the DrvDisablePDEV function to delete the
primary surface in order to create a new primary surface with the new display
resolution. But does the display driver initiate this process directly by
calling DrvDisablePDEV? Or is there some other way that this is done?

I assume it is unsafe to delete the primary surface while the graphics
system may be using references to it, so I want to understand the correct
procedure for accomplishing this resolution change.

Thanks for any help,
Danny

Re: Dynamic display resolution change in CE 6.0 by wince

wince
Thu Apr 10 02:28:15 PDT 2008

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.

Re: Dynamic display resolution change in CE 6.0 by Michel

Michel
Thu Apr 10 06:07:04 PDT 2008

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.ms@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.

Re: Dynamic display resolution change in CE 6.0 by Dean

Dean
Thu Apr 10 06:39:32 PDT 2008

That would be Danny, not me :) Although I don't have the info either...

--
Dean Ramsier - eMVP
BSQUARE Corporation


"Michel Verhagen (eMVP)" <michel@nospam.box> wrote in message
news:ujPqGvwmIHA.5280@TK2MSFTNGP02.phx.gbl...
> 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.ms@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.



Re: Dynamic display resolution change in CE 6.0 by Michel

Michel
Thu Apr 10 06:53:59 PDT 2008

oops... ;) At least you know I'm thinking about you... Don't know if
that is such a good thing though... :D


Good luck,

Michel Verhagen, eMVP
Check out my blog: http://GuruCE.com/blog

GuruCE
http://GuruCE.com
Consultancy, training and development services.


Dean Ramsier wrote:
> That would be Danny, not me :) Although I don't have the info either...
>

Re: Dynamic display resolution change in CE 6.0 by wince

wince
Thu Apr 10 08:46:28 PDT 2008

Hi,Michel,You are always so quickly and so kind. :P
Thank you for pointing the truth.

Danny,I think I misunderstood you.I thought you would like to build a
image for different hardware(LCD).
I'm sorry that I have no idea about the new feature in wince6.0.

Re: Dynamic display resolution change in CE 6.0 by Michel

Michel
Thu Apr 10 13:33:53 PDT 2008

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.ms@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.

Re: Dynamic display resolution change in CE 6.0 by Danny

Danny
Thu Apr 10 14:39:00 PDT 2008

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.ms@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.
>

Re: Dynamic display resolution change in CE 6.0 by Michel

Michel
Fri Apr 11 06:39:25 PDT 2008

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 and
ChangeDisplaySettingsEx() 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.ms@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.

Re: Dynamic display resolution change in CE 6.0 by Ishwar

Ishwar
Wed Apr 23 13:42:15 PDT 2008

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.


Re: Dynamic display resolution change in CE 6.0 by Paul

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.
>



Re: Dynamic display resolution change in CE 6.0 by Ishwar

Ishwar
Thu May 15 16:33:43 PDT 2008

On Apr 23, 4:54 pm, "Paul G. Tobey [eMVP]" <p space tobey no spam AT
no instrument no spam DOT com> wrote:
> 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" <ishwa...@gmail.com> wrote in messagenews: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 th