Need help in understanding how VSE code works

Hello everyone!
Me and several other guys want to improve VSE Text editor functionality. And now i have some problems in understanding how VSE code actually works.
First of all, i need to understand how text effects (like bold, italic or font loading) are implemented, where i can find and read this functions? The next question is how callbacks from the ui works? And where i can find how text rendering works?
I would really appreciate if somebody could tell me where i can find all that stuff and give a brief explanation how it works.
Thank you!

I’m not very familiar with the code, but I can give some pointers that might help.

  • You can find the functions for VSE’s side of text rendering in source/blender/sequencer/intern/
  • Text is drawn with BLF. Here Harley mentioned unifying 3D and 2D text code. If your plans involve implementing more complex text layouts, it might be a good idea to talk with him about it. More than that I don’t know.
  • Here’s an example of the font size property. The update function used for it can be found in the same file. You can also read this page, though I personally find it easier to look at examples in the code.

There was an issue about improving the VSE text here. Is it part of your project?
Before you start working on features that might take time to implement, it’s a good idea to talk about your plans with the other developers: as an issue on the projects page or in the #vse channel. That way you can ensure that the plans align with those of the other developers, and the feature gets included.

If you haven’t already, to learn more about Blender’s code you can read the Developer Wiki, especially the New Developer Introduction, Code & Design Documentation, and File Structure pages. VSE code is explained here.
The main VSE developer Richard Antalik (iss) might be quite busy with other work so I’m not sure how much he’s able to help. I may (or may not) be able to help if it’s part of some code I know about.

1 Like

Thank you a lot for your reply!
Viewed source/blender/sequencer/intern/ today. Found out how TextStrip is created and renders after that, but only with default values. Still can not understand how TextStrip editing works after its creation.
Yes, i am related to this project.