|
|
|
|
|
by dman
2594 days ago
|
|
Ive been surprised because in codebases I have worked on, you usually have an abstract rendering api at the bottom with multiple implementations for each platform. Ive been curious why you couldnt abstract out things like window creation, layout, rendering and implement the abstract api for multiple platforms. |
|
MacOS is the only one with a concept of proxy icons. It has a distinction between the key and main window. There's a responder chain for event handling. Toolbars have a built-in editor. There's QuickLook for easy previewing of sub-files. There are standard popovers, which can be torn off.
On the Windows side, I'm sure they've got their own set of unique features and constraints that the Mac doesn't have. (The Ribbon and keyboard navigation come to mind.) Same with Linux.
Lacking a feature often means you need to design the UI different elsewhere. Without proxy icons, you might need to add a menu item to mimic that functionality, for example. These things domino into each other. There's a reason that good Mac apps and good Windows apps don't tend to look identical.
English and German are fairly similar, as languages go, but you can't just do a word-for-word replacement of English and get a good German paragraph, or vice versa. Not infrequently, you need to re-arrange everything to make it work. The pieces you have to work with are just different.
2D/3D graphics APIs (if that's what you're referring to) aren't like this. For the most part, they're all playing with the same basic pieces. When my Mac traded OpenGL for Metal, I barely noticed, even as a developer writing graphics code. When my Mac switched from Carbon to Cocoa, everybody needed to rewrite almost everything.