BYOR: Bring Your Own Renderer?

Hey all! :)

I've been using 4coder a lot both at work and on my personal projects. The C/C++ customization options are the best I've seen in any editor I've used and I'd like to keep working on my own build to replace the need for any other way to edit text I might have.

Mainly I have two big tasks I've not tackled yet, the main one (because I don't think it's possible at the moment?) is to write my text renderer for it. My job is mainly graphics and I'd like to come have fun with text rendering in 4coder so I wanted to ask if that is remotely possible today (or with the next version).

If it's not possible right now, would it be too hard to expose whatever primitives 4coder uses to render? I imagine that a list of quads and glyphs would get us pretty much there, and we just render that as we please. Maybe we'd need a way to hack into the initialization code to be able to do some custom initialization code for the renderer, but that maybe be hackable as of right now. We just would need to not do any of the OpenGL stuff and call our hook with whatever we need to create a surface on the platform (HWND, etc.).

Maybe I'm missing something here that would make this very hard to expose but if it turns out it isn't it would be one of my preferred features. I'll share all the code I write for this purpose if people are interested (or even if they aren't really 😂).

The other thing I wanted to do is to do a Kakoune-like model for editing text (https://kakoune.org/), which does require support for multiple cursors. This one is less important cause I believe there is nothing stopping us doing that right now (we'd need to ignore all the 4coder cursor stuff but what can you do :P)

I believe this being the nicest hackable editor out there, being able to do some of these things would be really nice :)

Thanks everyone for this amazing community! And especially to you Allen for your great work!

Cheers!

Ruben.


Edited by Ruben Osorio on Reason: Initial post
The renderer is not that exposed yet, and although there will be a lot of new customizable rendering capabilities in the next build it won't go that far. Still making it possible to fully replace the renderer back end is on my long term to-do for 4coder.
That's really good news! I'll do all the non-rendering stuff I want to do then starting with the next version and the new API and patiently wait for the customizable renderer capabilities :) hopefully they'll come soon!

Thanks again for your work Allen! It's saving me a lot of pain in a lot of ways :)
Hey, can you email me at [email protected]? I'd like to discuss this some more.