4 ms·
> That's... it. Just array lookups, 2D images, and a hashtable. No, that's not all that Casey did. I mean, perhaps from a very reductionist point of view it is
by johnfn 4y ago
> That's... it. Just array lookups, 2D images, and a hashtable.
No, that's not all that Casey did. I mean, perhaps from a very reductionist point of view it is, yes, but there's a thousand ways to implement "array lookups, 2D images and a hashtable" that are less efficient than the way that Casey did it (and probably most would be less efficient than the MS team as well...) Do you know the ins and outs of Direct2D in order to write all that out efficiently? I certainly don't.
- jiggawatts 4y agoSigh... Casey demonstrated... and it ought to be obvious... that the "ins-and-outs" of Direct2D don't matter. If you actually bother to cache the glyphs into sprites, then Direct2D can be absurdly slow (it isn't) and still get something like 1000 fps. Your comment is almost a parody of what went down. How can you not see that generating a 16x20 pixel image can't possibly be the bottleneck on a modern PC unless you're doing something spectacularly wrong!?
- johnfn 4y ago> Casey demonstrated... and it ought to be obvious... that the "ins-and-outs" of Direct2D don't matter. I don't know what this means. Casey clearly uses Direct2D in his repo. If he were to demonstrate that Direct2D doesn't matter, he shouldn't have used it. > Your comment is almost a parody of what went down. There are thousands of programmers out there who haven't built a terminal as fast as RefTerm, and then there's Casey Muratori. If a hundred more Refterms show up tomorrow, I'll happily change my mind. Heck, you can even prove me wrong by coding one up yourself, if you'd like!
- jiggawatts 4y agoHe artificially constrained refterm to use DirectText specifically, because that's what the Windows Terminal team was using, and Casey wanted to prove that this could be made performant. The specific argument the Microsoft guys were making was that DirectText/Direct2D had inherent limitations that fundamentally prevented certain scenarios running fast, such as a mix of many different colours. Casey proved them wrong, but to do that he had to use the same underlying libraries so as not to be seen as somehow "cheating".