1. 01 Sep, 2020 1 commit
  2. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
      4ce853e8
    • Vlad Zahorodnii's avatar
      Switch to SPDX license markers · 1fb9f6f1
      Vlad Zahorodnii authored
      The main advantage of SPDX license identifiers over the traditional
      license headers is that it's more difficult to overlook inappropriate
      licenses for kwin, for example GPL 3. We also don't have to copy a
      lot of boilerplate text.
      
      In order to create this change, I ran licensedigger -r -c from the
      toplevel source directory.
      1fb9f6f1
  3. 19 Sep, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Use nullptr everywhere · 62a7db70
      Vlad Zahorodnii authored
      Summary:
      Because KWin is a very old project, we use three kinds of null pointer
      literals: 0, NULL, and nullptr. Since C++11, it's recommended to use
      nullptr keyword.
      
      This change converts all usages of 0 and NULL literal to nullptr. Even
      though it breaks git history, we need to do it in order to have consistent
      code as well to ease code reviews (it's very tempting for some people to
      add unrelated changes to their patches, e.g. converting NULL to nullptr).
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson, romangg
      
      Reviewed By: #kwin, davidedmundson, romangg
      
      Subscribers: romangg, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D23618
      62a7db70
  4. 22 Jul, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Run clang-tidy with modernize-use-override check · 8af2fa73
      Vlad Zahorodnii authored
      Summary:
      Currently code base of kwin can be viewed as two pieces. One is very
      ancient, and the other one is more modern, which uses new C++ features.
      
      The main problem with the ancient code is that it was written before
      C++11 era. So, no override or final keywords, lambdas, etc.
      
      Quite recently, KDE compiler settings were changed to show a warning if
      a virtual method has missing override keyword. As you might have already
      guessed, this fired back at us because of that ancient code. We had
      about 500 new compiler warnings.
      
      A "solution" was proposed to that problem - disable -Wno-suggest-override
      and the other similar warning for clang. It's hard to call a solution
      because those warnings are disabled not only for the old code, but also
      for new. This is not what we want!
      
      The main argument for not actually fixing the problem was that git
      history will be screwed as well because of human factor. While good git
      history is a very important thing, we should not go crazy about it and
      block every change that somehow alters git history. git blame allows to
      specify starting revision for a reason.
      
      The other argument (human factor) can be easily solved by using tools
      such as clang-tidy. clang-tidy is a clang-based linter for C++. It can
      be used for various things, e.g. fixing coding style(e.g. add missing
      braces to if statements, readability-braces-around-statements check),
      or in our case add missing override keywords.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, apol, romangg, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D22371
      8af2fa73
  5. 07 Feb, 2019 1 commit
  6. 30 Sep, 2017 1 commit
    • Martin Flöser's avatar
      Move SceneOpenGL into a dedicated plugin · 8ae37c42
      Martin Flöser authored
      Summary:
      Unfortunately a rather large change which required more refactoring than
      initially expected. The main problem was that some parts needed to go
      into platformsupport so that the platform plugins can link them. Due to
      the rather monolithic nature of scene_opengl.h a few changes were
      required:
      * SceneOpenGL::Texture -> SceneOpenGLTexture
      * SceneOpenGL::TexturePrivate -> SceneOpenGLTexturePrivate
      * texture based code into dedicated files
      * SwapProfiler code into dedicated files
      * SwapProfiler only used in x11 variants
      * Safety checks for OpenGL scene moved into the new plugin
      * signal declared in SceneOpenGL moved to Scene, so that we don't need
      to include SceneOpenGL in composite
      
      Test Plan: Nested OpenGL compositor works
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7740
      8ae37c42
  7. 25 Jan, 2016 1 commit
  8. 11 Apr, 2013 1 commit
    • Martin Flöser's avatar
      Do not use stackingOrder in LanczosFilter to get all EffectWindows · 0cbc7919
      Martin Flöser authored
      LanczosFilter tries to discard all cached textures in the timer event by
      getting the stacking order and iterating over it. But this approach seems
      wrong from several aspects.
      
      First of all the xStackingOrder does not include Deleted windows. So if
      a cached texture still exists on an EffectWindow for a Deleted it would
      not be discarded.
      
      Also the xStackingOrder could result in an update from X because the
      stacking order is currently considered dirty.
      
      Last but not least the EffectsHandler::stackingOrder creates a temporary
      list of EffectWindows - good for Effects but not necessarily useful
      inside KWin core.
      
      Instead the LanczosFilter gets the list of Clients, desktops, unmanaged
      and deleted and iterates over them to check whether there is a texture to
      discard.
      
      REVIEW: 109954
      0cbc7919
  9. 12 Mar, 2013 2 commits
  10. 02 Jan, 2013 1 commit
  11. 13 Aug, 2011 1 commit
    • Martin Flöser's avatar
      Remove define KWIN_HAVE_OPENGL_COMPOSITING · 987bc837
      Martin Flöser authored
      Due to changes in build system we have always either OpenGL or OpenGL ES.
      This allows to remove the KWIN_HAVE_OPENGL_COMPOSITING define. In the
      effects the define is kept as KWIN_HAVE_OPENGL which can be used in
      future to build also an XRender only effect system.
      987bc837
  12. 31 Jan, 2011 1 commit
  13. 30 Jan, 2011 3 commits
  14. 18 Jan, 2011 1 commit
  15. 19 Nov, 2010 1 commit
  16. 10 Nov, 2010 1 commit
  17. 01 Nov, 2010 1 commit
    • Martin Flöser's avatar
      Cache generated Lanczos textures. · 3e689ff2
      Martin Flöser authored
      This provides a significant performance improvement especially for Present Windows.
      Whenever a lanczos resampling is done the resulted texture is cached, till the
      window is damaged or a texture of different size is required. This means that
      for a taskbar thumbnail the resampling only occurs once unless the window is damaged
      and for present windows it only occurs when the windows are resized and then only
      after the windows have already been moved. Highlighting windows does not cause
      a resampling any more.
      See review request http://svn.reviewboard.kde.org/r/5708/
      
      svn path=/trunk/KDE/kdebase/workspace/; revision=1191874
      3e689ff2
  18. 13 Sep, 2010 1 commit
    • Fredrik Höglund's avatar
      Make the lanczos shader use a fixed number of iterations in the loop. · 119c06e4
      Fredrik Höglund authored
      This makes it possible for the GLSL compiler to unroll it, which also
      avoids the need to use relative addressing. With this change the shader
      should hopefully work with the R300G driver.
      
      The unused kernel weights are set to zero so they don't contribute
      to the end result.
      
      Thanks to Tom Stellard and Marek Olšák for their suggestions on how
      to solve this problem.
      
      CCBUG: 243191
      
      svn path=/trunk/KDE/kdebase/workspace/; revision=1175021
      119c06e4
  19. 12 Jun, 2010 2 commits
  20. 02 Jun, 2010 1 commit