Skip to content

Symbol font module#67

Closed
G-e-n-e-v-e-n-s-i-S wants to merge 24 commits intoMagicSetEditorPacks:mainfrom
G-e-n-e-v-e-n-s-i-S:symbol-font-module
Closed

Symbol font module#67
G-e-n-e-v-e-n-s-i-S wants to merge 24 commits intoMagicSetEditorPacks:mainfrom
G-e-n-e-v-e-n-s-i-S:symbol-font-module

Conversation

@G-e-n-e-v-e-n-s-i-S
Copy link
Collaborator

@G-e-n-e-v-e-n-s-i-S G-e-n-e-v-e-n-s-i-S commented Sep 20, 2024

What slows MSE down the most are by far the blending operations. (Not because they are unoptimized, but just because they are expensive.) So I believe that for mana symbols at least, we should pre-blend everything. Now that does lead to about 5000 trybrid symbol files (with all 10 colors, snow, colorless, artifact, large and small variants). I think it's worth it, but I can be convinced otherwise.

One good option to reduce this number is to define a canonical ordering for the symbols. Right now I've rendered all combinations, so there's W/U/B but also W/B/U, B/W/U, etc... That would divide the number by 6 if my math is correct.

Also, I rotated the trybrids 180 degrees so they look more like the hybrids:
rotated trybrid

The chaos symbol had two bindings: chaos and A. I removed A to use it for artifact mana. This breaks compatibility.

For hybrid generic mana, I did 2/[WUBRG] and 3/[WUBRG], but I didn't implement the [0-9]/[WUBRG] cause I'm lazy, and no-one uses these.

I have yet to do a pass on the existing symbol fonts, to delete redundant files and implement the module. This may be better to do in another PR.

@CajunAvenger
Copy link
Collaborator

CajunAvenger commented Sep 20, 2024

i am very skeptical of manual blending mana symbols, we don't really see lag time from rendering symbols, it's going to be a hurdle for any new symbol font, and is probably going to remove if not completely overshadow the file size gain we get from condensing into a module

the three main things i see visibly slow down MSE are

  1. initializing Mainframe DFC: this is a combination of it being a monster script and being a canvas size change. both of those cause little hangs that are barely noticeable on their own
  2. something is slowing down sets once they get too big, which is maybe just the nature of editing a larger text file. this happens even in a set of blank colorless cards, so it's not the blending hitting it
  3. dungeons applying the mask after blending it: the Preview Mode on Dungeon's advanced scripts is it showing the mask it uses on the dungeon texture, it can produce that image in a reasonable amount of time, but for some reason applying it as a mask is what makes it lag like crazy, rather than the 30 or so blend operations happening before that step

@CajunAvenger
Copy link
Collaborator

i'm not sure i'm even going to be able to review this its so much to fetch x.x

@G-e-n-e-v-e-n-s-i-S
Copy link
Collaborator Author

None of your arguments convince me, but if you feel strongly about it, I'll change it.

@CajunAvenger
Copy link
Collaborator

are you getting any notable performance increases?

my first place to look for optimizations here would have been reducing the file size, most mana symbols are way bigger than they need to be. you cut them down to like 40x40, you don't lose any size on a 750w frame but you have about 5% of the pixels to run through the blend script

there was a bug where, if the user would press ctrl+r while the cursor was in a text field that had entries, in it's insert symbol menu, that started with + or -, then it would prevent the user from typing the characters that were in those entries.
@G-e-n-e-v-e-n-s-i-S
Copy link
Collaborator Author

This is reviewable. Once it's merged I can start deleting redundant files in existing symbol fonts. I think it's best if I do this in another PR.

@CajunAvenger CajunAvenger added this to the 3.1.0 Battles milestone Jan 22, 2025
@G-e-n-e-v-e-n-s-i-S
Copy link
Collaborator Author

Yeah this branch is lost...

How are we always getting the craziest bugs from github.... first the infinite number of files changed, now this...

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

Successfully merging this pull request may close these issues.

2 participants