ab93d83890
Use FrameSVG as 9 tiles instead of uploading a big texture of the finished frame each time. This also saves the cache being populated with full created frames in different sizes; which end up taking up space in the disk and shared memory cache as well as the GPU memory. A code path falls back to the original uploading the entire texture if obscure settings are used, i.e overlay. Benchmarks: apitrace when resizing a frame goes from an average of 7.6ms per frame of CPU time just for the swizzling and uploading to 1.4ms GPU time also drops from 40us to 10us Themes will need to remove stretch-borders (when we gain nothing from stretching; i.e Breeze) to get the most out of it. REVIEW: 119330 |
||
---|---|---|
autotests | ||
docs | ||
examples | ||
src | ||
tests | ||
.reviewboardrc | ||
CMakeLists.txt | ||
COPYING | ||
COPYING.LIB | ||
KF5PlasmaConfig.cmake.in | ||
KF5PlasmaMacros.cmake | ||
metainfo.yaml | ||
README.md |
Plasma Framework
The plasma framework provides the foundations that can be used to build a primary user interface, from graphical to logical components.
Introduction
The plasma framework provides the following:
- A C++ library: libplasma
- Script engines
- QML components
libplasma
This C++ library provides:
- rendering of SVG themes
- loading of files from a certain filesystem structure: packages
- data access through data engines
- loading of the plugin structure of the workspace: containments and applets
See @ref libplasma.
Script engines
Provides support to create applets or containments in various scripting languages.
QML components
org.kde.plasma.core
Bindings for libplasma functionality, such as DataEngine and FrameSvg, see @ref core.
org.kde.plasma.components
Graphical components for common items such as buttons, lineedits, tabbars and so on. Compatible subset of the MeeGo components used on the N9, see @ref plasmacomponents.
org.kde.plasma.extras
Extra graphical components that extend org.kde.plasma.components but are not in the standard api, see @ref plasmaextracomponents.
Links
- Wiki: http://community.kde.org/Plasma#Plasma_Workspaces_2
- Mailing list: https://mail.kde.org/mailman/listinfo/plasma-devel
- IRC channel: #plasma on Freenode
- Git repository: https://projects.kde.org/projects/playground/libs/plasma-framework/repository