Replies: 6 comments 11 replies
-
Why use Win32 at all? You're gonna make people start off by rewriting a bunch of code Why rewrite the code to bring in that abstraction so early? That can wait until later - or just use the abstraction from the beginning Why use D3D11 without ComPtr? People are gonna have to rewrite a bunch of that code In short: do not make every other step be "Okay here's a new thing now go rewrite a bunch of code" |
Beta Was this translation helpful? Give feedback.
-
I agree with everything said initially, except for:
I've personally had issues with getting (docking) DearImGui working in Dx12 properly because it relies so much on behaviour done in WNDPROC, SDL completely takes that control away from you (and GLFW does too) and SDL doesn't even allow a callback/hook into it either. It definitely pays of knowing how to use it properly, and its far from obsolete really... |
Beta Was this translation helpful? Give feedback.
-
I think providing perspective is important, so point number 1 and 2 are important; I find most of my peers who struggle to learn graphics API concepts struggle due to assuming everything is a preprogrammed state machine, where it has no level of dynamic components. To start by showing that - options do exist - types are types for a reason, it provides a bit of that perspective. A tutorial should remove some of that intuition required to learn, else it is not effective as a tutorial; and showing 2 methods to explain the complexities with 1 method further helps with this concept For the rest, I agree - especially with COM, unless you want to touch in manual Release and AddRef to describe how the black magic works. |
Beta Was this translation helpful? Give feedback.
-
Seems mostly reasonable and I agree with the points made about starting from the raw API to implementing abstractions. As long as the abstractions are motivated by showing the redundancy with raw API calls then it makes sense. There is definitely going to be a lot of friction in the process of "porting" the raw API stuff over to the abstractions, however. I also think there needs to be at least one dedicated section in the beginning that explains how the graphics pipeline works (and how D3D11 implements it), because that stuff is totally foundational to understanding everything else in the API. I've got a doc on that that I've been writing up which I can post here at some point if we'd like. |
Beta Was this translation helpful? Give feedback.
-
I mean, what keeps us from giving it a try, compiling a thing like that together, and then showing it to some uninitiated people, see what they feel about it, or if they can follow along, idk Worst case we scap it and go a different way (I am not afraid to do that, its not a time sink, and not waste of time) |
Beta Was this translation helpful? Give feedback.
-
I might be biased, but I honestly think WIN32 is not that hard at all... Would you go further than handling keyboard and mouse input in a graphical application? Drag and drop files? Just an extra flag and one more case in the message procedure. I think windows scaling can be handled by DXGI itself. I would write the entire tutorial using WIN32 (and of course, the point of the tutorial is teaching DirectX11...) |
Beta Was this translation helpful? Give feedback.
-
Why don't we start by doing the following
Reasoning:
That means Windowing and Input via
RawInput
(and provide the same "experience" we have right now in HelloWindow (mouse click and ekypress cause console output)Reasoning:
Reasoning:
Reasoning:
Reasoning:
Few words about why ComPtr makes sense and how its being used.
Probably one or two sentences and a link into MSDN
Reasoning:
That stuff could be the very first chapter of the tutorial before we do anything else, like meshes and explaining shaders etc
Beta Was this translation helpful? Give feedback.
All reactions