Skip to content
  • David Edmundson's avatar
    [libkwineffects] Replace property name lookup with calling the virtual methods · 7834bec5
    David Edmundson authored
    Summary:
    EffectWindow proxies its properties from the client/deleted's
    properties.
    
    QObject::property(char*) is a slow string search. It's a loop
    of string comparisons not a hash lookup!
    
    QML's use of properties is different, there's a property cache.
    
    It's fetched multiple times for every window in every paint of some
    effects (such as blur). Hotspot shows this as a significant amount of
    the render pass (X11) with nothing in kwin animating.
    
    This patch replaces the macro that does
    parent()->property("propertyName")
    with a macro calling the relevant function directly without metaobjects.
    
    This also improves type safety for future changes.
    
    Test Plan:
    Existing unit tests
    Ran it for a bit
    
    Reviewers: #kwin, graesslin
    
    Subscribers: graesslin, zzag, broulik, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D16602
    7834bec5