Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Final Boss of Compositing/Blending/Exporting #144

Closed
MarkVabulas opened this issue Apr 9, 2024 · 8 comments
Closed

[Feature Request] Final Boss of Compositing/Blending/Exporting #144

MarkVabulas opened this issue Apr 9, 2024 · 8 comments

Comments

@MarkVabulas
Copy link
Contributor

So I know that the whole system uses GDI+ for doing the rendering/compositing part of the software and it's super effective.

Feature request:

  • Add another renderer type which supports shaders in addition to more advanced blending modes (OpenGL/Vulkan/DirectX)

The above request says it all.

This would provide the user with the ability to use advanced blending modes, shaders, and procedural generation. (As well as a side effect (ultra-long-ways-away) of allowing custom 3D rendering directly onto cards. That itself, generated 3D shapes onto cards, could be a game-changer for how some board games look these days :)

Since the Rendering subsystem is currently separated, adding another renderer type should be feasible. It would additionally mean that card generation and processing could use the GPU, which would massively speed up previews and exports.

@MarkVabulas
Copy link
Contributor Author

Here's an example of a library for using Vulkan in C#, and how it does offscreen rendering. There's a lot that would need to be boilerplated, and the end result of writing the CardRenderer should still expose an identical interface to the current one, but with that being said, it's not overly complicated code. See, for example, the Prepare and Render functions.

https://github.com/mellinoe/vk/blob/master/src/samples/offscreen/OffscreenExample.cs

@nhmkdev
Copy link
Owner

nhmkdev commented Apr 10, 2024

finalboss
(Apologies to those this reference is lost on...)

@MarkVabulas
Copy link
Contributor Author

If I create a matching implementation to CardRenderer that maintains your interface and was opaque to the end-user (and end-programmer), would you consider adding it? (The main additions over the current CardRenderer are that the font system would have to be rewritten, it would give more interesting layer blending modes, and programmatic Graphics entries, which would allow for coding up what it looks like)

@nhmkdev
Copy link
Owner

nhmkdev commented Apr 11, 2024

I'd definitely consider adding it! 👍 I probably have a ton of questions (my mind is mostly on SubLayouts and all the other recent requests and occasional bugs). The main one is around how does this impact what a user has in terms of per-element capabilities? Is there a whole new ui for all the switches/toggles? If so, this might be much better for a CardMaker2 project as to not make the current one even more complicated than it has become. 😅

@MarkVabulas
Copy link
Contributor Author

Would you be amenable to a Zoom call to discuss this in more detail, even if it never gets developed?

@nhmkdev
Copy link
Owner

nhmkdev commented Apr 12, 2024

Sure, if you want. Any specific topics? Pulling CardMaker out of the stone age of windows 98? 🤣

@nhmkdev
Copy link
Owner

nhmkdev commented Apr 13, 2024

I'm going to start a wishlist around this topic here: #149

Plenty of discussion opportunities if you want to add your thoughts/ideas.

@MarkVabulas
Copy link
Contributor Author

Deprecated in favor of #149

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants