What resolutions do you use and should I add? - Page 1
Forum section: electronics / general

author: Ampera
author_rank: Super Contributor
timestamp: December 28, 2016, 09:42:23 am
content: Currently programming something, with the caveat being I need a predetermined list of screen modes. I am not using any graphics libraries, so I have to scale items manually.I am not here for suggestions on how to make something infinitely scale, apologies if this seems rude, but I would like some input.I have constructed a list for 3 major aspect ratios, and some common resolutions. 800x600 is as low as the program will display.4:3 support800x6001024x7681280x10241600x120016:9 support1280x7201366x7681600x9001920x10802560x14403840x216016:10 support1280x8001440x9001680x10501920x1200I think this is fairly inclusive, but are there any suggestions as to other resolutions I should add?

author: Jeroen3
author_rank: Super Contributor
timestamp: December 28, 2016, 10:06:04 am
content: Quote from: TwoOfFive on December 28, 2016, 09:42:23 amYou should revoke your programming permit.Resolution isn't that important,Pixel densityis.Your list if fairly complete. But what happens ifone does this?

author: jaromir
author_rank: Unknown
timestamp: December 28, 2016, 10:11:53 am
content: Oh resolutions, you say? Every year at this time I repeat the same resolution: "Get in shape a bit", but I found easier to settle down at standard 1920x1080.

author: RGB255_0_0
author_rank: Frequent Contributor
timestamp: December 28, 2016, 10:18:36 am
content: Quote from: Jeroen3 on December 28, 2016, 10:06:04 amIf it's windowed mode then the vertical heights of all his resolutions will be wrong anyway, so I doubt it's windowed without it being overlay.Have you thought about ultrawide support'

author: slicendice
author_rank: Frequent Contributor
timestamp: December 28, 2016, 10:23:42 am
content: Agree, resolution is not that important, but pixel density is. Especially for small screens. It all depends on what kind of objects you are displaying. Your object sizes should be standardized so that they are pretty much the same size on any display, no matter what amount of pixels are available. This is how most modern web pages and Mobile/PC applications are programmed these days. The end result will look the same on a 10" screen as on a 55" screen with both having completely different resolutions. Lets say the 55" is HD while the 10" is QFHD (4K) resolution. You only need to detect the pixel density and scale your objects accordingly.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 28, 2016, 10:50:24 am
content: Quote from: Jeroen3 on December 28, 2016, 10:06:04 amThis is true, but not for the reason that followed it:I've never seen a programming environment, with graphical capabilities, that couldn't tell you what the freaking graphics window is.DON'T MAKE A STUPID PROGRAM THAT CAN'T RESIZE!It's bad enough seeing web pages like that. Web pages I can zoom or user-CSS if I have to. Please don't curse your users with a fixed layout!Tim

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 28, 2016, 10:53:09 am
content: Quote from: Jeroen3 on December 28, 2016, 10:06:04 amAlso, besides oddball mobile (phone and laptop -- take your pick) screens, and resizable desktops and windows, other environments can lead to arbitrary desktop sizes too, like remote terminal access or running in a VM window.Between that, and DPI settings (Windows has a "desktop scale" thing, which inevitably fails to work with legacy programs -- with fixed layouts-- so it's rather useless, sadly), keeping it variable is the only way.Tim

author: hans
author_rank: Super Contributor
timestamp: December 28, 2016, 10:53:36 am
content: Foreseeable relevant screen sizes will be 800x600 up to 7680 x 4320 (8K) within 3 odd years I suppose.Just support anything between that. I wouldn't fix it to a particular resolution, as people will use DPI scaling, resize their windows themes, place extra sidebars on their desktop, and maybe generally don't want to use your application full screen (even though you intended to be used that way).In that sense; also consider half screen width of an ultrawide (e.g. 1280x1080).Microsoft Surface 3 Pro have 2160x1440, or 3:2.Also note that 1280x1024 is 5:4 and not 4:3.

author: Ampera
author_rank: Super Contributor
timestamp: December 28, 2016, 04:43:14 pm
content: It's a fullscreen program geniuses, there is no windows.If you move the taskbar or anything behind the screen absolutely nothing will happen ever.And if I were to say screw it and put only a 1280x720 video mode and balls to anything else, it would scale across most screens and show a full 1280x720 resolution at the right size. I am just trying to have my items scale better than a window manager could possibly do it, and so I can use absolute positioning as a trick for animations. I am sure I can use a GL, but that is for another time, I am doing something else.These resolutions will fill your entire screen, and they will scale to exotic resolutions, but it's easy enough to scale the program to use different aspect ratios and resolutions, I just need to know what I should use.And yes I have thought about superwide support, it's technically possible, but on some uses it will look pretty stupid.And to date there exists 0 8K displays for consumer use that I know of, with HDMI 2 barely supporting it. I was tempted to forget 4K alltogether, but I think that is a good max resolution stopping point.Numbers and aspect ratios are fine, just need a few people to tell me what resolutions they use and think should be supported, as I am doing all scaling by my own dynamic calculations.

author: rollatorwieltje
author_rank: Unknown
timestamp: December 28, 2016, 05:02:30 pm
content: Why would you need a predefined list of resolutions anyway? This isn't 1987 anymore, you can just ask the OS what the resolution and dpi is, and get a full list of all the supported resolutions.

author: elecman14
author_rank: Unknown
timestamp: December 28, 2016, 06:05:48 pm
content: Quote from: TwoOfFive on December 28, 2016, 09:42:23 amYou are using a library, you are just writing them yourself...

author: MarkF
author_rank: Super Contributor
timestamp: December 28, 2016, 07:25:37 pm
content: Quote from: TwoOfFive on December 28, 2016, 09:42:23 amWhy?Read the screen resolution at start-up and then scale all your graphic items at run time. Whether it's full screen or windowed is irrelevant.From someone who has written many graphic programs, I don't see why you need a predetermined list of screen modes. Unless, you're drawing symbols or icons that are not scalable. In which case, create several sizes (i.e. small, medium and large) and pick the appropriate size at run time.I'm curious as to what you're using to do your drawing (OpenGL, DirectX, Qt or what)? Does your program need to be cross-platform capable?Tell us why you think you need predetermined resolutions and what you are going to use them for.

author: Halcyon
author_rank: Unknown
timestamp: December 28, 2016, 10:54:33 pm
content: I use 2560x1600 on my primary desktop machine. But as someone has already pointed out...Quote from: T3sl4co1l on December 28, 2016, 10:50:24 am

author: donmr
author_rank: Regular Contributor
timestamp: December 28, 2016, 10:59:49 pm
content: Your program may think it's running full screen, but it could be in am emulated or virtual environment with just about any size "screen". I do this a lot.

author: Ampera
author_rank: Super Contributor
timestamp: December 29, 2016, 02:16:47 am
content: I guess I could have fully dynamic resizing, the only cripe is that a lot of the content is generated through a tileset, so I either stretch it and make it look awful, or expand the screen to support larger tiles.

author: ez24
author_rank: Super Contributor
timestamp: December 29, 2016, 02:22:51 am
content: Since I am stuck in California - limit the amount of coffee I drink so I do not get a DUIie caffeine is a drugBummer

author: mariush
author_rank: Super Contributor
timestamp: December 29, 2016, 02:32:38 am
content: My main monitor is 1920x1200 , my second monitor is 1920x1080.. 2nd monitor is considered extension of first monitor.I can drag window from 1st monitor to 2nd and back , maximize on individual monitors, or manually resize a window to be as wide as both monitors.Some applications will detect the resolution of my monitor as 3840 x 1080, some as 3840x1200 ... i look at it as 3840x1080 asI resize the taskbar to be two row highso the actual usable height of my 1st monitor is close to 1080 vertical pixels.So you see, something else you may want to think about when making an interface.Also, in some Windows versions, the taskbar doesn't exist , or is reported as 0-1 pixels high, some users set the taskbar as autohide, basically you should use windows api functions to get usable desktop height of the active monitor , and (if there may be the possibility) maybe you should enumerate monitors and remember on which monitor the application was last used and so on...PS. Some tip .. have a look at Steam hardware survey :http://store.steampowered.com/hwsurvey/Look at primary monitor resolution and at multi-monitor resolution ... (interesting that 7% have 3200 x 1080 pixels, strange resolution... probably due to some bandwidth limitation of some digital signal splitter)

author: Ampera
author_rank: Super Contributor
timestamp: December 29, 2016, 03:02:18 am
content: Quote from: mariush on December 29, 2016, 02:32:38 amThis is technically not a windowed application. It does output using a window manager, but it is a fullscreen window.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 29, 2016, 03:19:28 am
content: Depends on what you're doing. Even a full screen video game needs to support arbitrary screen sizes, and in less common cases, that could resize during runtime too (say if a laptop is picked up from its dock, and the monitors detach; or it's switched to a projector or other output). But nobody likes video games that prevent windowed operation. That wastes a whole screen, which is pretty silly if it's a huge display, or a low-res game (like one of the many retro pixel art games out there).A lot of old video games were build on tiles, too, so this feels completely relevant, since you mentioned it's a tiled setup.What's wrong with varying the number of tiles? The size of tiles certainly needs to scale with the desktop scale, or the window size. But it should probably also vary with size. A window that's 4000 pixels across, with more than adequate DPI for comfortable viewing, can display a lot of tiles!And yes, making layouts look good, under the vast majority of cases, is hard. That's just how it is. Either your program sucks to use, or it looks bad, or it's hard to program. (Those are simply the negatives of the "pick two triangle" rule.)To save time, you'll want to look up window managers. There ought to be something reasonable out there. (Back in my days of Java, I remember the AWT GridBagLayout being reasonably useful and powerful, and that's just one manager, just from AWT.) Afraid I know nothing of modern Windows (or whatever platform) GUI programming so I can't offer any specific tips.Tim

author: BrianHG
author_rank: Super Contributor
timestamp: December 29, 2016, 05:50:09 am
content: Don't forget 1280x960 for 4:3. That's a perfect 4x 640x480.

author: Red Squirrel
author_rank: Super Contributor
timestamp: December 29, 2016, 08:33:01 am
content: In whatever code you're using is there not a way to actually find out the current resolution? Seems to me it would be easier as it would account for all setups. What if someone runs it in a VM and has the window resized to something oddball?

author: slicendice
author_rank: Frequent Contributor
timestamp: December 29, 2016, 08:47:52 am
content: Quote from: Red Squirrel on December 29, 2016, 08:33:01 amOr better yet, remote into the system (which I do daily) from a mobile or similar. Then the resolutions get really bizarre.

author: hans
author_rank: Super Contributor
timestamp: December 29, 2016, 09:30:26 am
content: As we don't know what application it is, all we can do is complain.Fullscreen application are from the 1990s. Today's equivalent is borderless full screen or windowed. I run most if not all games in windowed mode. The reason is simple: so many applications break with ALT-TAB. And because I run multiple screens, I really want to ALT-TAB. Also, managing windows when they are windowed is much easier.It may be different for your application though.Nevertheless, I would only consider laying out your program for certain aspect ratio's (3:2, 4:3, 5:4, 16:9, 16:10, 21:9 and maybe even 21:10) and then offer a DPI scale (like 50-400% in 25% steps).

author: Ampera
author_rank: Super Contributor
timestamp: December 29, 2016, 09:34:03 am
content: Yea I am gonna have to do some strange maths trickery (It always comes down to it.)Thanks for suggestions, those reading may consider this case closed.

author: slicendice
author_rank: Frequent Contributor
timestamp: December 29, 2016, 01:37:37 pm
content: You're welcome! Hope we helped more than confused. Good luck on your project!

author: Jeroen3
author_rank: Super Contributor
timestamp: December 29, 2016, 03:03:09 pm
content: The only acceptable exception to the manual scaling principle is when you build an application for an industrial control panel (or smartphone).These devices will exists, as-is, for the next 10 to 20 years (or 5). The software is complementary to the hardware, thus the diversity of target platforms is small.Especially if you make both. A bit like Apple, there are only a few iOS resolutions that you have to support.We can only hope you fall under this exception. Goodluck.