1. 13 Aug, 2015 1 commit
  2. 04 Aug, 2015 2 commits
    • Michael Abrahams's avatar
      Shuffle OpenGL code to ensure a context exists · d22a7a65
      Michael Abrahams authored
      Summary:
      The existing code made several glDoSomething() calls before
      KisOpenGLCanvas had entered initializeGL() for the first time.
      
      This moves calls made to create sync objects and compile shaders into
      initializeGL. KisOpenGL has two-part initialization step; the first part
      is called in main(), the second part is called inside KisOpenGLCanvas2.
      
      Reviewers: dkazakov, rempt
      
      Maniphest Tasks: T360
      
      Differential Revision: https://phabricator.kde.org/D234
      d22a7a65
    • Michael Abrahams's avatar
      Replace homebrew extension matcher with Qt Builtin · 2edc175e
      Michael Abrahams authored
      Summary:
      The functionality of QGLExtensionMatcher has been subsumed in the method
      QOpenGLContext::hasExtension().  This replaces several calls to
      glGetProcAddress with the Qt versions ctx->getProcAddress, which is able
      to catch when these calls are made without an active context.
      
      Reviewers: dkazakov, rempt
      
      Maniphest Tasks: T360
      
      Differential Revision: https://phabricator.kde.org/D233
      2edc175e
  3. 18 Jul, 2015 1 commit
  4. 19 Jun, 2015 1 commit
    • Halla Rempt's avatar
      Use QOpenGLWidget instead of QGLWidget · af959c80
      Halla Rempt authored
      This is only one step in updating our opengl canvas to Qt 5.
      
      Notes:
      
      opengl notes:
      
      * removed glu and glew, it's incompatible with qopengl
      * force 3.2 as minimum to get glFenceSync
      * remove shared context widget:
      
          When multiple QOpenGLWidgets are added as children to the same
          top-level widget, their contexts will share with each other. This
          does not apply for QOpenGLWidget instances that belong to different
          windows.
      
          This means that all QOpenGLWidgets in the same window can access each
          other's sharable resources, like textures, and there is no need for
          an extra "global share" context, as was the case with QGLWidget.
      
      * set Qt::AA_ShareOpenGLContexts to share contexts across windows: and
      comment it out again because it crashes, at least in VirtualBox.
      
      Todo: fix all the trickery in kis_opengl_canvas_p.h to get the various
      functions using Qt's function objects, fix all the places where HAVE_GLEW
      now is undefined, and get all those constants and functions using Qt.
      af959c80
  5. 15 Jun, 2015 1 commit
  6. 06 Apr, 2015 1 commit
    • Halla Rempt's avatar
      Check the 'right' way whether we're building for X11 · feb9b64e
      Halla Rempt authored
      I know, I know. Qt on Linux can now abstract over Wayland and X11. That's
      why we don't have Q_WS_X11 anymore. Replacing it by Q_OS_LINUX is worse,
      thgough.
      
      Besides, real- world applications still need to know about the windowsystem
      because Qt doesn't cover everything. This replaces Q_WS_X11 with HAVE_X11
      (cribbed from Digikam).
      
      Unfortunately, Krita is now even more broken than it was, but it's still a
      step forward, hard as that might be to believe.
      feb9b64e
  7. 20 Jan, 2015 1 commit
  8. 15 Jan, 2015 1 commit
    • Stefano Bonicatti's avatar
      Fix crash when switching off OpenGL · f6ff1ecd
      Stefano Bonicatti authored
      The wrong context was active when shaders were deleted.
      This also fix the crash when switching scaling mode or anything that
      deletes a KisOpenGLCanvas2.
      
      Changed the KisOpenGL API that deal with contexts a bit, now is possible
      to choose between switching on the shared context or a widget one.
      
      To avoid overhead switching on a context that is already current, i've
      added a check to see if the context we are trying to switch to is already current
      or not (the check doesn't use any gpu command).
      
      REVIEW:121944
      CCBUG:341496
      f6ff1ecd
  9. 09 Jan, 2015 3 commits
  10. 20 Dec, 2014 1 commit
    • Halla Rempt's avatar
      Clean up all messageboxes · e4880172
      Halla Rempt authored
      * Use QMessageBox everywhere, instead of KMessageBox in some places, and
      QMessageBox in others
      * Add a translation hint to the messagebox title
      * Make sure all messageboxes are translated.
      e4880172
  11. 12 Nov, 2014 1 commit
  12. 29 Mar, 2014 1 commit
    • Halla Rempt's avatar
      Add options to enable/disable double buffering and vsync · b3e38462
      Halla Rempt authored
      These options are hidden by default. Set showAdvancedOpenGLSettings to
      true in the krita config file to see them. Disabling vsync and/or
      double buffering causes crashes with some ATI cards, so these options
      exist to experiment with those cards/driver combinations.
      b3e38462
  13. 05 Mar, 2014 1 commit
  14. 12 Dec, 2013 3 commits
  15. 06 Dec, 2013 2 commits
  16. 28 Nov, 2013 1 commit
  17. 08 Nov, 2013 1 commit
  18. 30 Oct, 2013 1 commit
    • Dmitry Kazakov's avatar
      Added an option for High Quality image downsampling for OpenGL canvas · f87769d6
      Dmitry Kazakov authored
      1) This option activates a custom shader, which filters the image
         with a variation of trapezoidal filter using "one-but-nearest"
         mipmap level. This gives quite decent results, although it might
         be not perfect from the maths point of view.
      
      2) The patch also sets the default texture size to 256. Otherwise
         activation of mipmap generation will make the painting with smaller
         brushes insanely slow. This happens because the mipmap is regenerated
         for the whole texture every time we change a small portion of it.
      
      CCBUG:313502
      f87769d6
  19. 17 Oct, 2013 1 commit
  20. 22 Sep, 2013 1 commit
    • Halla Rempt's avatar
      Squashed commit of the following: · afb80e69
      Halla Rempt authored
      commit 8fd90a3dcbe35f7bb26f8f63dddf2fd2a74b49a4
      Merge: 92bc3a5 be195b7
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sun Sep 22 22:22:47 2013 +0200
      
          Merge remote-tracking branch 'origin/master' into krita-opengl2-rempt
      
      commit 92bc3a58c6f80433885f12a6305c69adf42122ef
      Author: Sven Langkamp <sven.langkamp@gmail.com>
      Date:   Sun Sep 22 15:16:26 2013 +0200
      
          Workaround for flickering in OpenGL 2 canvas on AMD graphic cards
          BUG:322808
          REVIEW:112883
      
      commit 8c5ec1b0d1723814a56ac028296fef93d0e620fa
      Merge: 94287d6 ec9b97a
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Fri Sep 20 08:52:16 2013 +0200
      
          Merge branch 'master' into krita-opengl2-rempt
      
          Conflicts:
          	krita/ui/tool/kis_tool_freehand.cc
      
      commit 94287d69187c6de85c1fb52c1dbd0105f8b732ea
      Merge: 83f300d 4c7b0a9
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Thu Sep 19 15:55:36 2013 +0200
      
          Merge branch 'master' into krita-opengl2-rempt
      
      commit 83f300d5a7b57d4be2fec91349c4dfb886522bc9
      M...
      afb80e69
  21. 15 Aug, 2013 1 commit
  22. 08 Aug, 2013 1 commit
  23. 20 Jun, 2013 1 commit
  24. 13 Jun, 2013 1 commit
  25. 10 Jun, 2013 1 commit
  26. 26 May, 2013 1 commit
    • Halla Rempt's avatar
      Make opengl work (again) on Windows · ce260310
      Halla Rempt authored
      The trick here was to _not_ set the format in initializeGL,
      that caused all the crashes...
      
      There is one big problem: the trilinear filtering causes weirdness
      when zoom < 100%. First new lines get gray, then they disappear.
      
      More investigation is needed.
      ce260310
  27. 20 May, 2013 1 commit
    • Halla Rempt's avatar
      Use glew again · 0be6b086
      Halla Rempt authored
      With the cmake findglew.cmake, instead of our own copy
      0be6b086
  28. 17 May, 2013 1 commit
    • Halla Rempt's avatar
      Set the format version and profile · 2d65d643
      Halla Rempt authored
      And print out some information about supported versions. If there is
      no properly supported version, fall back to the qpainter canvas.
      2d65d643
  29. 09 May, 2013 1 commit
  30. 08 May, 2013 1 commit
    • Halla Rempt's avatar
      Modernize the opengl canvas a bit · 9fc2f6d2
      Halla Rempt authored
      * Replace the use of GLEW with QtGLFunctions
      * Replace the use of the Krita shader classes with QtGLShaderProgram
      * Remove checks whether the current opengl implementation supports
        shaders.
      9fc2f6d2
  31. 04 Jan, 2010 1 commit
    • Adrian Page's avatar
      Fix problems with OpenGL on Windows. · d3b7519d
      Adrian Page authored
      - Include kis_opengl.h in order to include gl/glew headers and necessary platform dependent headers. Should hopefully fix build on OS X too.
      - Add begin/endOpenGL() methods to KisOpenGLCanvas2 (and convenience methods to KisTool to call them). These save and restore the GL state set by QPainter and should be used to wrap native OpenGL calls, allowing the two systems to work together.
      - Change check for shading language extensions to just check for OpenGL 2.0 or greater, as that should be good enough these days.
      - Change OpenGLCanvas2 to implement paintEvent() rather than paintGL(), as recommended by Qt's sample. Also split the function into smaller sub-functions.
      - Make the GLSL shader and program wrapper classes non-copyable. They were only working as they were due to compiler-dependent behaviour (return value optimisation).
      
      BUG: 220703
      
      svn path=/trunk/koffice/; revision=1070094
      d3b7519d
  32. 03 Feb, 2009 1 commit
  33. 27 Aug, 2008 1 commit
  34. 02 Apr, 2008 1 commit