kwin/autotests
Martin Flöser 3f4995fb9b Refactor the specification of OpenGL context attributes
Summary:
The current way to specify the OpenGL context attributes does no longer
scale as can be seen in D6344. There are too many different context
attribute sets and with every addition we grow lots of copied code. The
chances to introduce errors in that code which is difficult to debug are
very high. As can be seen in the glx backend which defines major 1,
minor 2, but it should be major 2, minor 1.

This change reworks this code by creating a builder class which contains
only an abstract definition of what needs to be in the attributes.
E.g. the version, whether it's robust and so on.

Now we can just have a list of possible attributes in a well described
way:
    auto builder;
    builder.setVersion(3, 1);
    builder.setRobust(true);

All possible builders are added to a list and operated on in a for loop
which tries to creat a context. Once it succeeded it breaks the list.
In addition a debug statement is added which prints out the set of
options which went into the context.

So far this is only done for EGL, GLX can follow once D6344 is merged.

Test Plan: New unit test added, kwin_wayland OpenGL tests run and verified

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6396
2017-06-26 22:13:47 +02:00
..
integration [autotests] Test creating core context profile 2017-06-25 09:48:46 +02:00
libinput [libinput] Change unset of scroll method and acceleration profile 2016-12-06 13:45:54 +01:00
libkwineffects [libkwineffects] Port getXServerVersion from X11 to xcb 2016-08-23 11:45:59 +02:00
libxrenderutils [autotests] Add missing add_test() 2016-09-08 15:24:21 +02:00
tabbox [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
abstract_client.h [autotests] Adjust to changes regarding AbstractClient 2015-05-08 12:43:47 +02:00
client.h
CMakeLists.txt Refactor the specification of OpenGL context attributes 2017-06-26 22:13:47 +02:00
fakeeffectplugin.cpp
fakeeffectplugin.json PluginEffectLoader doesn't use KPluginTrader any more 2015-07-07 09:36:15 +02:00
fakeeffectplugin_version.cpp
fakeeffectplugin_version.json PluginEffectLoader doesn't use KPluginTrader any more 2015-07-07 09:36:15 +02:00
mock_abstract_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_abstract_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_client.h Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
mock_effectshandler.cpp Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_effectshandler.h Add a KSharedConfigPtr for kcminputrc to KWin::Application 2017-04-24 21:01:03 +02:00
mock_screens.cpp Warnings--: unused parameters 2015-06-12 17:17:21 +02:00
mock_screens.h add Screens::name(int screen); STUB but for XRandr 2015-05-15 23:55:27 +02:00
mock_workspace.cpp [autotests] Adjust to changes regarding AbstractClient 2015-05-08 12:43:47 +02:00
mock_workspace.h [autotests] Adjust to changes regarding AbstractClient 2015-05-08 12:43:47 +02:00
onscreennotificationtest.cpp Fade out OnScreenNotification when moving with the mouse over it 2017-01-04 18:04:15 +01:00
onscreennotificationtest.h Introduce a KWin internal on-screen-notification service 2016-12-21 19:43:49 +01:00
opengl_context_attribute_builder_test.cpp Refactor the specification of OpenGL context attributes 2017-06-26 22:13:47 +02:00
test_builtin_effectloader.cpp [effects] Add a colorpicker effect 2016-11-25 09:30:34 +01:00
test_client_machine.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_gestures.cpp Add support for activating screenedges through touch swipe gestures 2017-03-27 17:44:02 +02:00
test_plugin_effectloader.cpp new logout effect 2017-03-15 17:47:22 +01:00
test_screen_edges.cpp Fix switch desktop through edge when moving window 2017-06-20 06:57:33 +02:00
test_screen_paint_data.cpp Pass the current output geometry to ScreenPaintData 2016-10-17 09:02:30 +02:00
test_screens.cpp Port left over qDebug to qCDebug 2015-07-31 13:25:51 +02:00
test_scripted_effectloader.cpp Add support for new touch screen callbacks to KWin scripts and scripted effects 2017-04-07 16:18:09 +02:00
test_virtual_desktops.cpp Add support for global touchpad swipe gestures 2017-03-27 17:43:44 +02:00
test_window_paint_data.cpp
test_x11_timestamp_update.cpp Improve the x11 timestamp handling 2017-05-03 21:36:34 +02:00
test_xcb_size_hints.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xcb_window.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xcb_wrapper.cpp Remove KWin::display from kwinglobals 2016-11-16 18:00:00 +01:00
test_xrandr_screens.cpp Support multiple event types in X11EventFilter 2016-11-16 07:48:19 +01:00
testutils.h [autotests] Add Q_CONSTRUCTOR_FUNCTION to X11 specific tests to force xcb 2016-09-08 15:22:48 +02:00
workspace.h