[Q] Screen refresh rate? - Windows Mobile Software Development

Hi there,
I'm the developer of the 'iMulator' application, which targets the Windows Mobile platform. In theory I could reach 100fps, but since most monitors / screens have a fixed refresh rate, it would be useless to actually run the application at 100fps. That is how I came to wonder wether the displays of Phones have a cirtain refresh rate.
My question; "What is the most common refresh rate of the display found on a (Windows Mobile) phone?"
Gz reb3lzrr!

I believe the standard for WM phones is 60 hertz or whatever. I've been wrong before though.

Related

[APP][ALPHA] G Force Logger for Vehicle Performance (no, not gPC)

Hi, my name is Eric. I've been working with WinCE for a long time (since WinCE 2.0 haha) and I've regained interest in PPC programming. Working with few things here and there, mostly experimenting.
In anycase, I've got an idea to record g forces on a vehicle while it's being tested to its limits (AutoX, drag race).
Now, I know there's already a piece of software out there, gPC, but it isn't completely refined (indepth calibration, angle corrections) or completely free (by donation).
The goal of the project is to create something similar to a device called gTech which goes upwards of $300 for the basic model.
Key features will include:
- a reset function + algorithms to compensate for device orientation
- graphs of resulting logged data
- logging of calibrated data and raw data
- Driving aids
- Flashing screen to indicate reaching of new peak G (separate indicators for forward and lateral)
- a screen showing realtime overlapping graphed data for all axis
- a 2d grid with a cursor indicating current forward and lateral g
- on the same 2d graph, a drawn boundary indicating limits of g achieved (this will eventually look like an egg after working the car hard)
- and finally, real time telemetry transmission via edge/3g to a receiving computer
The ultimate goal of this project is to provide reliable data for motor enthusiasts whether they would like to see if their shifting is smooth, or if they're braking, or powering on in the right places or if their car mods have had any effect (this last one is pretty useful to quantify). In addition, provide some rudimentary tools to assist in competitions and spirited driving in the form of g limit warnings (flashing screen, large indicators of current g). In the case of spirited driving on a mountain road, the device can warn when approaching loss of traction (after collecting limit data) to prevent going off a cliff.
Venues of use:
Auto Cross
Track Days
Drag Strip
Skidpad
Of course, I have to insert here, that this device can't save your bacon if you do something idiotic and by no means do I condone dangerous driving.
With that said, all the above is what I hope to achieve and any of your comments is well appreciated.
Current Release:
v0.1
Alpha stage, rudimentary raw data output via numbers and a line (indicating X and Y recorded g) and a circle (indicating Z g). The numbers shown are the raw numbers recorded from the accelerometer and not converted to m/s^2. Although, you can probably do that math on your own if you're smart enough (simple scaling). What I've discovered is that each accelerometer is different, and even going from a negative axis (eg, device upside down) to positive axis (device right side up) will give different numbers. In addition, if you run the program, you'll notice a lot of jitteriness. I hope it doesn't affect the accuracy once I smooth them out with a segmented average.
Executable is packaged in a zip. It contains an EXE which can be straight run with Dot NET CF v2.0 (basically, all WM 6.1 devices)
Hi Canagan,
Great idea, I will certainly be testing this out.
I would like to ask, would it be possible to be able to include 1/4 mile time, and 0-60 etc so we can work out HP of the car. There is a similar app for the Iphone called Dynolicious http://gizmodo.com/5030749/iphone-apps-we-like-dynolicious-car-performance-meter
Thanks.
Whoooaaa sound a really good app ! Will test it this weekend ! Thanks
PooleyUK said:
I would like to ask, would it be possible to be able to include 1/4 mile time, and 0-60 etc so we can work out HP of the car. There is a similar app for the Iphone called Dynolicious http://gizmodo.com/5030749/iphone-apps-we-like-dynolicious-car-performance-meter
Click to expand...
Click to collapse
Yes, I can do that if there's more of a demand for it. Calculating horsepower is fairly simple, however, I may put 1/4 mile times and 0-60 towards the end of development as they require tieing into the GPS.
Great idea.. I will test it also
It seemt to be working on my Touch HD. But are the meaning of all these numbers??
CanaganD said:
Yes, I can do that if there's more of a demand for it. Calculating horsepower is fairly simple, however, I may put 1/4 mile times and 0-60 towards the end of development as they require tieing into the GPS.
Click to expand...
Click to collapse
Cool, looking forward to seeing this develop.
So far the accelerator test seems to be working fine.
would be need ive i could see how many hp mycar has

Transparent controls in native WM apps

Hey all,
I've been searching for techniques people use to make transparent controls. The problem with windows mobile is that windows always have the CLIPCHILDREN window style set. So you can't grab the contents of the parent window (in WM_ERASEBKGND for example) because it isn't there.
One technique would be to have the parent pass the handle of the background DC it uses to the child control but that involves having a memory DC around all the time. And if the child control is covering any sibling controls you'd be out of luck as well.
Another solution I've read about is to temporarily hide the child window so the parent window is forced to redraw the parts that would normally be obscured by the control. I personally do not like this approach. (the drawbacks are also discussed on some MS forum, i'm not allowed to post outside links yet, google for "Rounded Buttons : Does any one see any problems with this method" and you will find it)
So, there are ways to achieve what I'm looking for but they are far from optimal. Just wondering what everybody else is doing to achieve this.
The responses in that thread are pretty much spot on (funny to find I know over half the posters in that thread by reputation).
If you want to do this well, you really need to draw your own stuff, making a complete custom UI.
There is no proper way to do this in Windows Mobile (without runtime kernel patching, that is ).
Chainfire said:
The responses in that thread are pretty much spot on (funny to find I know over half the posters in that thread by reputation).
If you want to do this well, you really need to draw your own stuff, making a complete custom UI.
There is no proper way to do this in Windows Mobile (without runtime kernel patching, that is ).
Click to expand...
Click to collapse
What do you mean by "drawing your own stuff"? I am drawing everything myself now in all control i made using AlpheBlend() where needed. But that still doesn't resolve the background issue. Or are you referring to just drawing everything in a single WM_PAINT handler and only having one screen DC?
PegNosePete said:
What do you mean by "drawing your own stuff"? I am drawing everything myself now in all control i made using AlpheBlend() where needed. But that still doesn't resolve the background issue. Or are you referring to just drawing everything in a single WM_PAINT handler and only having one screen DC?
Click to expand...
Click to collapse
Well the method I use in my own new UI's is indeed per form (excluding WinAPI controls like edit boxes and such) draw using only one DC.
The problem is that any 'windowed' control, the parent will not draw to the DC if a 'windowed' control overlaps. Due to CLIPCHILDREN all data drawn to that position is simply lost.
Now, handling WM_PAINT you can get the entire update region, which tells you which parts of your form have to be redrawn. You must use this information, because blitting the entire form is very slow!
In essence, to do this right you well end up faking most of the GDI system, including your own 'fake' child windows, invalidating and revalidating portions, calculating the intersections of your 'fake' invalidated regions of the screen with the update region you get in WM_PAINT and redrawing those parts.
There are several different strategies to go about this, one is to redraw on demand, another one is to use double buffering.
I personally mostly use the double buffering technique, as this easily provides every 'fake' control with a bitmap of it's own region. A child control can then alphablend using the parent's buffer as one of the alphablend sources.
You can of course combine this with keeping state information whether a child, grandchild, etc is using alpha / transparency and this with an algorithm deciding which control needs double buffering or can draw on-demand, which can give both speed and memory use advantages. In a lot of situations you can then suffice with only double buffering the 'top' component (form) and a select number of child components.
Of course two drawbacks of per-control double buffering are speed and memory use. You can eliminate the complete-form double buffer with some smart coding and calculating. This will give you a slight speed and memory advantage. Memory use is high because many of your controls will have a copy of their current state.
This can be as complicated, feature-filled, fast and efficient as you are willing to make it. The better you can design the code the better it will work, but it is not a trivial task. There are many ways to go at this, no one way is definitely better than the other ways. It depends on what your applications does with it's display, how simple you are drawing (are you making a simple white background, or a background based on images for example gradient?), which method is more efficient.
The other method is getting the update region and actually perform redrawing of those invalidated sections (instead of copying from buffer). I can tell you from experience that if you are using image backgrounds and alphablend calls, this will be _much_ slower than double buffering (if done right).
I know all of this probaby makes little sense, I'm not a hero with explaining things ... you really have to figure this out for yourself, I guess.
Other advantages of building your own UI system are that if you do it smartly and buffering, it is very easy to port to directdraw, and possibly even GL. But I must warn you, on far the most devices actually using directdraw for this stuff is not much faster, it is in fact hardly noticable. If you manage to make a GL port, that can especially on older HTC devices (pre-HD2) be much faster.

Any way Alphablend API's hardware acceleration

I'm programming in VB.NET with CF 3.5, and I'm using alphablended images on a simple form. But when I'm put an image below a transparent part of another image, and I'm moving the first image, it's doesn't move, just when I'm refresh the parent of it. But for my sorry, in that way the image is blinking.
Any way to get hardware acceleration to the alphablending, to make it fast and smooth?
In the MSDN I read this:
"For Windows Embedded CE the AlphaBlend API does not require special display hardware, though it can use hardware acceleration if it is available. It can be supported in software."
Here:
http://msdn.microsoft.com/en-us/library/aa911228.aspx
I read the BitBlt uses hardware acceleration, but I can't use it on the Alphablended image.
I'm attached the custom control (created in C#), what I'm using to display alpha blended images. Maybe someone can upgrade it to use BitBlt, to use hardware acceleration.
Please help...
Anyone? Just a hint or something, please.
The situation is the same for BitBlt and AlphaBlend. Both can be hardware accelerated, but neither of them is guaranteed to be. On quite a few devices even BitBlt isn't hardware accelerated.
If you are AlphaBlending an image (TOP) over something else (BOTTOM), and you move the BOTTOM, you will get a "weird" result. This is perfectly normal and expected behaviour.
You have already seen that if you redraw the BOTTOM, and then redraw the TOP the result is fine - but may flicker.
This has nothing to do whatsoever with hardware acceleration - only that if it was really really fast (hardware acceleration or not) it would be too fast for you to see the flicker.
In this case you would need to use "double buffering" to prevent to flicker if using normal GDI ( = standard windows ) controls. Unfortunately on Windows Mobile double buffering is not (automatically) supported as with normal Windows computers.
So, you must either use a different display technology (like DirectDraw/3D or OpenGL ES) or implement the double buffering yourself.
Doing it yourself is not that difficult. Create your own control that holds both TOP and BOTTOM image. Then first draw BOTTOM to an internal bitmap, then AlphaBlend TOP on top of it. Only then draw the whole (resulting) image to the screen.
That bases is simple, though if you make your whole window this way it can quickly become complicated
I don't know if you found an answer,
but if you want to avoid flickering/blinking,
you must
- override the OnPaintBackground of the component with empty sub.
- avoid to clear a bitmap, it consumes a lot of time !
Let me know if it helps !

Multiple Calendars and New Ideas

Hi everybody,
Can someone tell me if wm7 will finally support multiple calendars? Windows developers should be spending their time fixing wm6.5 instead of reinventing the wheel.
What about internet calendars?
This is what geek wm users want! Not some fancy menu with crappy kid stuff like 'XBox Live'.
What about the battery? We should already had a more advanced battery application (where we could see how much time's left, advanced setting where we could change between economic mode to normal mode to high performance mode).
Alarm clock! Yes, I would like to have as many clocks as I want, instead of the default 3(a simple "add new alarm" button would do the trick), I have 5 different hours to wake through the week, I really don't like to configure my alarm everyday.
'Fast search Textbox' -> This is one of my ideas that could be implemented! It would be something like the textbox in the start button of vista and windows 7. This fast search could be in the wm start menu too, where we could type in, and the results would come out (avoiding scrolling through a bunch of menus).
'Internet meter'. My internet plan is really a crap, so I would like that wm would have a default Internet meter, I am sick of running out my MB around day 25 (my plan is monthly).
'Profiles'. Based on time, location and a lot of other possible variables it should set automatically some configurations, for example, if my phone is in the cradle in home, it should turn wifi on automatically instead of spending my precious MB of my crappy internet plan or if I am at school, vibration mode should automatically turn on.
'Messenger'. Messenger should already be much better implemented, I mean, Windows owns Messenger, they should be massively promoting messenger in their phones because it's really useful (at least for me).
This is what geek users like us want. Not an easy and dumb phone like iphone. And why developers focus so much in graphics instead of functionality? Are they listening to their geek customers?
Have you ever tried the emulator?
That would answer at least some of your questions concerning alarms and calendars....
The_Emperor said:
Hi everybody,
Can someone tell me if wm7 will finally support multiple calendars? Windows developers should be spending their time fixing wm6.5 instead of reinventing the wheel.
What about internet calendars?
This is what geek wm users want! Not some fancy menu with crappy kid stuff like 'XBox Live'.
What about the battery? We should already had a more advanced battery application (where we could see how much time's left, advanced setting where we could change between economic mode to normal mode to high performance mode).
Alarm clock! Yes, I would like to have as many clocks as I want, instead of the default 3(a simple "add new alarm" button would do the trick), I have 5 different hours to wake through the week, I really don't like to configure my alarm everyday.
'Fast search Textbox' -> This is one of my ideas that could be implemented! It would be something like the textbox in the start button of vista and windows 7. This fast search could be in the wm start menu too, where we could type in, and the results would come out (avoiding scrolling through a bunch of menus).
'Internet meter'. My internet plan is really a crap, so I would like that wm would have a default Internet meter, I am sick of running out my MB around day 25 (my plan is monthly).
'Profiles'. Based on time, location and a lot of other possible variables it should set automatically some configurations, for example, if my phone is in the cradle in home, it should turn wifi on automatically instead of spending my precious MB of my crappy internet plan or if I am at school, vibration mode should automatically turn on.
'Messenger'. Messenger should already be much better implemented, I mean, Windows owns Messenger, they should be massively promoting messenger in their phones because it's really useful (at least for me).
This is what geek users like us want. Not an easy and dumb phone like iphone. And why developers focus so much in graphics instead of functionality? Are they listening to their geek customers?
Click to expand...
Click to collapse
Sorry to break it to you, but Microsoft legitimately don't give a crap about 'geek wm users'. It's not in their gameplan, and it's certainly not profitable to aim devices at such a small demographic.
To answer you question, YES multiple canlendar will be handled in WP7 series
http://www.youtube.com/watch?v=vy5raUgtwp4&feature=player_embedded

Refresh rate

Hi everyone.
For those who don't know, the Nexus 5 was cursed with an imprecise refresh rate. The display controller sets it based on a hardware pot that is often out-of-spec from the factory. As a result, the phone has refresh rates around 58hz, instead of 60hz like it reports to software. The original thread is here: http://forum.xda-developers.com/goo...how-fix-stuttering-concerning-58-6hz-t2989311
Anyway, I thought I'd try to poll and see whether or not the issue was fixed with this phone. If you guys would help me I'd much appreciate it. Just follow these steps to measure what the phone's refresh rate actually is:
1. Download an old version of RetroArch from here: http://buildbot.libretro.com/stable...-v7a/1.0.0.0/RetroArch-armv7-v1.0.0.0-r28.apk
(The newer version on the play store lacks the calibration option)
2. Install the program and run it.
3. Select "Settings", then "Video", then "Calibrate Refresh Rate"
4. Follow the screen prompts and report your results here.
Ideally the result will be somewhere between 59.94hz (NTSC timing) and 60.00hz.
Thanks in advance.

Categories

Resources