Giter Club home page Giter Club logo

after-effects's Issues

CheckBoxDef causes an error if you don't explicitly set a label

It appears that the API zero-initializes PF_ParamDefs, which means that a CheckBoxDef's nameptr is null by default.

After Effects doesn't like this, and will give a hard-to-debug "the plugin failed to initialize" error if you don't explicitly set the checkbox's label.

One way to fix this would be to initialize nameptr to point to an empty string, but that'd require separating out the initialization code for each type of parameter.

Use Cargo workspaces?

Right now, it seems like every package gets compiled at once, which results in rust-analyzer cargo checking every single example, and generating a dozen lockfiles which I have to stash every time I switch branches. Using Cargo workspaces to separate things out would help avoid this.

Parameters' UI flags cannot be modified in-place

I have some code which updates whether parameters are disabled during the UPDATE_PARAMS_UI callback. The natural way to do this is to loop over the parameters in the passed Parameters struct and call set_ui_flags on them. However, this causes a crash.

The parameters passed in, at least for this callback, should be considered read-only and must be cloned before being modified. I'm not sure if this applies to all parameters in all callbacks or just certain ones, or if this applies to all parameter properties or just the UI flags. The API should enforce this.

Enable panic handling in release mode?

Right now, there's code to catch panics and display them as error dialogs, but it only runs in debug mode. Is there a significant performance or binary size cost to enabling this in release mode as well? There are many benefits of doing so:

  • Many debug builds run quite slowly. Being able to debug panics with fast release builds would be helpful.
  • If you don't use debug builds at all because they're so slow, you may not even be aware that the panic handler exists and is a very helpful debugging tool. I only learned about it when you mentioned it in #6.
  • If an effect panics and it is caught, users can save their work instead of having After Effects instantly crash and lose it all.
  • Displaying the panic message in the dialog box allows users to file more descriptive bug reports that point to the offending code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.