Commit graph

125 commits

Author SHA1 Message Date
Thomas Lübking
2f18371e27 fix dbus service registration/invocation
REVIEW: 108016
2013-01-02 18:25:58 +01:00
Thomas Lübking
f2226adca9 activate layout, no idea why doesn't happen implicitly
BUG: 311553
FIXED-IN: 4.10
REVIEW: 107851
2013-01-02 18:23:45 +01:00
Casian Andrei
01adbe6dc5 Implement color correction (per output)
Add an option to kcmcompositing in the 'Advanced' tab, to enable or
disable color correction. It is specified that it's experimental and it
needs Kolor Manager.

Before painting for a particular screen, ColorCorrection::setupForOutput
should be called.

A screen property is added for WindowPaintData.

In kwinglutils, The fragment shaders are intercepted before being
compiled and they get a couple of lines of code inserted in order to do
the color correction. This happens only when color correction is enabled, of
course.

For D-Bus communication with KolorServer, everything is async.

The implementation basically manages a set of color lookup tables for
different outputs and for different window regions. These are taken via
D-Bus. Each lookup table has around 700 KB.

This commit reintroduces the changes from the former merge with the
"color2" branch. In this form, it can be easily reverted.

REVIEW: 106141
2012-11-13 22:47:09 +02:00
Casian Andrei
a46d247702 Revert "Merge branch 'color2'"
This merge is incomplete and it does not include the review number of
the associated review request. It should have been pushed as a single
commit, because the merged commits were not intended to be published in
their form.

This reverts commit dcba90263069a221a5489b1915c5cf1ca39d090c, reversing
changes made to 50ae07525c7fde07794e7548c3d6e5a69cb1a89d.

Conflicts:
	kwin/scene_opengl.cpp
	kwin/scene_opengl.h
2012-11-13 22:19:32 +02:00
Kai-Uwe Behrmann
479be668d7 Merge branch 'color2'
Conflicts:
	kwin/libkwineffects/kwinglplatform.cpp
2012-11-07 23:54:18 +01:00
Martin Gräßlin
6417246358 Add GHNS support for Scripted KWin Effects
BUG: 296773
FIXED-IN: 4.10
REVIEW: 107051
2012-10-28 09:49:02 +01:00
Casian Andrei
a417888b0e Implement color correction support
The implementation consists of a class in libkwineffects.

There are some slight modifications in the compositor. Regions for
different outputs are drawn at different times.

Currently only per output color correction is implemented. However, the
grounds are prepared for implementing per window color correction
easily.

The ColorCorrection class needs to communicate via D-Bus with a KDED
module, KolorServer, which is a part of KolorManager.

The only visible part for the user consists of a check box in the
advanced tab for the compositing KCM.

The actual correction is done by injecting a piece of code in the
fragment shader, code that does a 3D lookup into a special color lookup
texture. The data for these textures is obtained from KolorServer. All
D-Bus calls are async.
2012-08-20 20:37:25 +03:00
Martin Gräßlin
961b5d0720 Fix compilation of kcmcompositing without XRender
Element had been removed from ui file with
2916352c0c366338c63a8a4a7bebe4e84a969f58
2012-05-25 18:31:33 +02:00
Frederik Schwarzer
6cce2d93af String casing fixes.
REVIEW: 104995
2012-05-19 14:40:51 +02:00
Martin Gräßlin
d14cf2da92 Show detailed information why an effect cannot be loaded
Effects can specify their minimum requirements in their
desktop file:
* OpenGL
* OpenGL 2 (GLSL required)
* Shaders (either ARB or OpenGL 2)

The configuration module uses this information in combination
with which backend KWin is currently using. So if e.g. OpenGL
is used and an effect requires OpenGL 2 a detailed error
message can be showed that OpenGL 2 is required.

BUG: 209213
FIXED-IN: 4.9.0
REVIEW: 104847
2012-05-15 18:02:57 +02:00
Thomas Lübking
75b6a04732 add delay before reinit confirmation
required to mitigate false positives due to threaded init code

REVIEW: 104799
2012-04-30 22:37:40 +02:00
Martin Gräßlin
6919b4dc94 Drop CompositingPrefs from Compositing KCM
Instead of getting the information from CompositingPrefs
the running KWin instance is queried through D-Bus.
In general the running KWin should have more information
about whether Compositing will work or not.

This means the kcm no longer has to link OpenGL.

REVIEW: 104753
2012-04-29 21:50:09 +02:00
Martin Gräßlin
23708521c6 Make GLVSync a complete user controlled variable
There is no need to have it driver specific any more.
All drivers seem to support it (only Intel had been
opt-ed out without any apparent reason shown in commit log).

This was the last driver specific setting which means that
the method applyDriverSpecificSettings() got dropped from
CompositingPrefs.
2012-04-29 21:44:35 +02:00
Martin Gräßlin
bcbbf3c5a8 Drop recommendCompositing from CompositingPrefs
It's always true which means it's no longer needed.
2012-04-29 21:44:34 +02:00
Thomas Lübking
19fceb5216 add GUI config for graphicssystem
REVIEW: 103431
2012-01-24 22:42:49 +01:00
Martin Gräßlin
95430bc741 Remove window switching combo box from compositing UI
Reduces duplication of settings in different areas and was only
providing a small subset of the possible window switching capabilities.
With BoxSwitch being possible to be rendered as a "normal" window
switcher it does not make much sense anyway.
2011-11-10 21:29:45 +01:00
Montel Laurent
62c5a5e276 normalize signal/slots 2011-08-17 23:51:55 +02:00
Martin Gräßlin
987bc837d9 Remove define KWIN_HAVE_OPENGL_COMPOSITING
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.
2011-08-13 16:46:43 +02:00
Martin Gräßlin
5213c4aff6 Drop direct rendering setting
The advanced compositing option "direct rendering" could only
correctly be honored in the case of proprietary NVIDIA drivers.
In all other cases playing with the setting was most likely
harmful as it could result in inconsistent states and the
option not to be honored at all.

This patch resolves this issue by moving the detection whether
to use a direct rendering context completely into the hands of
 the set environment variables or the helper program:
* if LIBGL_ALWAYS_INDIRECT is set, we use an indirect context
* if KWIN_DIRECT_GL is set, we use a direct context
* if none of the two are set, we use the helper program, if it
  returns 0 we create a direct context, otherwise we set
  LIBGL_ALWAYS_INDIRECT and create an indirect context

If a user really wants to influence the behavior the
environment variables can be used.

REVIEW: 102074
2011-07-31 17:40:03 +02:00
Martin Gräßlin
6cfdbfe1dc Remove compositing self-check
Removes the last bits of the self-check at compositing startup.
It seems like they were only added to XRender because they were
in OpenGL and there they are not available for quite some time.

Also removes the now obsolete disable functionality checks from UI.

REVIEW: 101756
2011-06-26 09:19:22 +02:00
Martin Gräßlin
a81ddf2949 Disable Unredirect Fullscreen Windows by default
Well we don't have another choice if half of the drivers crash kwin
whenever you watch a fullscreen flash video or use a screen saver.
Unredirect Fullscreen Window was quite useful in case you used
to play heavy OpenGL games, but pretty useless for anything else.
For the game and hd video usecase we nowadays have the better way
of really suspending compositing (either by the client indicating or
with a window specific rule). The plus of suspending compositing is
that the driver doesn't crash.

And yes we are "supposed" to no longer workaround driver bugs.
Good joke, I like to redirect my inbox to everyone who things we
are not allowed to workaround driver bugs.

CCBUG: 252817
2011-05-15 09:40:19 +02:00
Thomas Lübking
364ce6fbfc Allow the user to rearm OpenGLIsUnsafe KWIn autocrash protection
Also add a usable "doesn't work why" info and WARN! the user about clicking the rearm button.
Merge "OpenGLIsUnsafe" and "CheckIsSafe" config keys
Move the entire checking into CompositingPrefs

BUG:250865
FIXED-IN:4.7
2011-05-11 20:16:08 +02:00
Martin Gräßlin
c37b7cdcba GUI option to control new GLLegacy option
Needs to be removed when compiled against GLES.
2011-05-01 13:04:29 +02:00
Thomas Lübking
0c5d47f3ae unify composite activation, 'Enable' only controls initial state 2011-03-06 22:35:13 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Martin Gräßlin
cf03487331 Remove Shadow Effect.
The shadow effect is known to be broken since at least 4.5.
It is unfortunately in a state which makes it difficult to maintain
and the architecture has some serious drawbacks. Therefore it is the
best solution to replace the effect with a new and better
implementation. For more information about the new implementation
please see the discussion on KWin mailinglist:
http://lists.kde.org/?l=kwin&m=129607406517609&w=2

This also "fixes" all existing bug reports about the shadow effect.
Most of the bugs will really be fixed when the new shadow system is
implemented, if not it is a new bug and a new report should be created
for it.

Please excuse that we go this unnormal approach to mark bugs as
fixed with code removal.
BUG: 164084
BUG: 160948
BUG: 189241
BUG: 229164
BUG: 258663
BUG: 216709
BUG: 243890
FIXED-IN: 4.7.0
2011-01-30 14:26:58 +01:00
Martin Gräßlin
2f56415a21 Removing SHM and Fallback OpenGL Compositing modes.
Our primary target is Texture From Pixmap and it is supported
by all important drivers nowadays. If a driver is not able to
support TFP using OpenGL at all is probably no good idea and
XRender is more suited.
2011-01-30 14:24:48 +01:00
Fredrik Höglund
16bd68ec5f Add a translated string for future use.
svn path=/trunk/KDE/kdebase/workspace/; revision=1195846
2010-11-12 05:36:07 +00:00
Thomas Lübking
029f93127f kick trilinear filtering if favor of the lanczos filter (now default, unless blacklisted)
make the scale method configurable and align the UI for GL and Xrender

CCBUG: 243181


svn path=/trunk/KDE/kdebase/workspace/; revision=1195698
2010-11-11 19:53:19 +00:00
Laurent Montel
e810dbc582 Use script to add QLatin1String in setObjectName directly
svn path=/trunk/KDE/kdebase/workspace/; revision=1177599
2010-09-20 18:18:36 +00:00
Martin Gräßlin
5dc513e6a4 Adding checkbox for unredirecting fullscreen windows.
FEATURE: 232532
CCBUG: 177495
FIXED-IN: 4.6.0

svn path=/trunk/KDE/kdebase/workspace/; revision=1176432
2010-09-17 17:46:34 +00:00
Aaron J. Seigo
c83c168c16 'composit[e|ing]' is technical jargon; use the terminology we use elsewhere in the UI (particularly the config UI) consistently everywhere. tested on real life users(tm)
svn path=/trunk/KDE/kdebase/workspace/; revision=1103845
2010-03-16 01:17:36 +00:00
Lucas Murray
8960c552d2 Remove OpenGL driver whitelist; Add protection against crashy glXQuery
functions and share the value with the KCM; Fallback to XRender
compositing if OpenGL fails to work correctly; Rearrange setting order
in options.h slightly and fix variable names

svn path=/trunk/KDE/kdebase/workspace/; revision=1079919
2010-01-25 10:02:08 +00:00
Martin Gräßlin
9715014b4d Less krazy issues: fix spelling errors in comments.
SVN_SILENT

svn path=/trunk/KDE/kdebase/workspace/; revision=1063337
2009-12-17 21:16:10 +00:00
Luboš Luňák
7cef1eadd5 use recommendation from compositing prefs only if there's
no explicit choice (because of driver crashes)


svn path=/trunk/KDE/kdebase/workspace/; revision=1058248
2009-12-04 09:29:08 +00:00
Andreas Hartmetz
82f6efa7d0 clearer, spelling++
svn path=/trunk/KDE/kdebase/workspace/; revision=1058185
2009-12-04 06:23:24 +00:00
Thomas Lübking
564843d76f (hopefully) bypass detection if stumbled -due to broken drivers- before
svn path=/trunk/KDE/kdebase/workspace/; revision=1056312
2009-11-29 20:35:47 +00:00
Lucas Murray
424d358fd2 Less Krazy warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042583
2009-10-30 08:10:35 +00:00
Lucas Murray
8a8428e41c Less Krazy warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042572
2009-10-30 06:51:59 +00:00
Burkhard Lück
ccd997de2e fix typo spotted by mvillarino@gmail.com on kde-i18n-doc@kde.org
svn path=/trunk/KDE/kdebase/workspace/; revision=1029459
2009-09-29 20:17:36 +00:00
Martin Gräßlin
76f17e6de1 Here comes the new TabBox. It is a complete rewrite using a MVC approach. Here some highlights:
* Models and Delegates for Clients and Desktops
 * Horizontal, vertical and tabular layout
 * Layout of one item can be configured by an XML definition
 * A desktop item can include a client list
 * An optional second list view showing only the selected item
 * A new KCM "kwintabbox"
 * An alternative TabBox with independent settings and keybindings
 * Optional Highlight Windows effect integration
 * List scrolls instead of removing items
 * Scroll wheel support
 * Cursor key support
 * Middle click on item closes window
BUG: 195745
BUG: 197187
BUG: 201103
FEATURE: 118184
FEATURE: 156723
FEATURE: 177441
FEATURE: 182897
FEATURE: 193882
GUI:

svn path=/trunk/KDE/kdebase/workspace/; revision=1022861
2009-09-13 11:36:45 +00:00
Robin Harold Burchell
f892ffb0e7 Remove flicker when changing effect plugins by not fully reloading compositing plugins anymore.
Replaces one hack with another hack (due to having to support multiple kwin instances),  but provides a much better user experience.
Big thanks to mgraesslin for comments,  review,  and fixes.

BUG: 183107

svn path=/trunk/KDE/kdebase/workspace/; revision=1022489
2009-09-11 21:03:24 +00:00
Martin Gräßlin
abe5c4ff04 Complete rewrite of flip switch.
* no more usage of OpenGL directly. Only highlevel API (except multiscreen :-()
 * better animations by adjusting the TimeLine's curve shape
 * new configuration options for window positions
 * Usage without tabbox (also supporting electric border)
 * Effect Frame showing the window title
 * many more things I have forgotten to mention
BUG: 187761

svn path=/trunk/KDE/kdebase/workspace/; revision=1000437
2009-07-21 10:18:48 +00:00
Lucas Murray
d4647a3fbc Display a warning message when compositing is enabled during KDE
failsafe mode.
BUG: 197874

svn path=/trunk/KDE/kdebase/workspace/; revision=987757
2009-06-26 15:29:00 +00:00
Christoph Feck
58b9127b3e Fix layout issues in kwin kcm
* remove fixed layout spacing and margin
* respect style's QFormLayout field policy
* reduce vertical space in compositing "General" tab
* layout desktop names in two columns


svn path=/trunk/KDE/kdebase/workspace/; revision=986282
2009-06-24 13:09:58 +00:00
David Nadlinger
13b1a0580d Removed stale connect() – it was causing a runtime warning since compositingModeChanged() does not exist any more.
svn path=/trunk/KDE/kdebase/workspace/; revision=959605
2009-04-26 17:04:41 +00:00
Martin Gräßlin
63edbaff81 Show current compositing state (disabled/suspended/active) in Desktop Effects KCM and add a button to resume/suspend compositing. So it should be easier for the user to resume compositing if he does not know about the shortcut.
CCBUG: 188118

svn path=/trunk/KDE/kdebase/workspace/; revision=955636
2009-04-18 10:07:16 +00:00
Albert Astals Cid
e74249083f const & for foreach 'iterators'
svn path=/trunk/KDE/kdebase/workspace/; revision=952187
2009-04-11 11:11:50 +00:00
Martin Gräßlin
dd0ee8f1e0 Use a custom notification for not supported effects instead of a generic notification.
svn path=/trunk/KDE/kdebase/workspace/; revision=949998
2009-04-06 11:53:58 +00:00
Martin Gräßlin
faee334ed5 Only show notification about not loaded effects if compositing is enabled.
svn path=/trunk/KDE/kdebase/workspace/; revision=948323
2009-04-02 19:22:01 +00:00