Warning, /frameworks/kquickcharts/src/shaders/linechart.vert is written in an unsupported language. File is not indexed.
0001 /*
0002 * This file is part of KQuickCharts
0003 * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl>
0004 * SPDX-FileCopyrightText: 2022 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0005 *
0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 #version 440
0009 #line 8
0010
0011 layout(std140, binding = 0) uniform buf {
0012 highp mat4 matrix;
0013 lowp float opacity;
0014 lowp float lineWidth;
0015 lowp float aspect;
0016 lowp float smoothing;
0017 } ubuf;
0018
0019 #define MAXIMUM_POINT_COUNT 14
0020
0021 layout (location = 0) in highp vec4 in_vertex;
0022 layout (location = 1) in mediump vec2 in_uv;
0023
0024 layout (location = 2) in mediump vec4 in_lineColor;
0025 layout (location = 3) in mediump vec4 in_fillColor;
0026 layout (location = 4) in mediump vec2 in_bounds;
0027
0028 layout (location = 5) in highp float in_count;
0029
0030 // Input points. Since OpenGL 2.1/GLSL 1.10 does not support array vertex
0031 // attributes, we have to manually declare a number of attributes. We use
0032 // array of vec4 point tuples instead of vec2 to not cross the OpenGL limits
0033 // like e.g. GL_MAX_VERTEX_ATTRIBS for some drivers.
0034 layout (location = 8) in mediump vec4 in_points_0;
0035 layout (location = 9) in mediump vec4 in_points_1;
0036 layout (location = 10) in mediump vec4 in_points_2;
0037 layout (location = 11) in mediump vec4 in_points_3;
0038 layout (location = 12) in mediump vec4 in_points_4;
0039 layout (location = 13) in mediump vec4 in_points_5;
0040 layout (location = 14) in mediump vec4 in_points_6;
0041
0042 layout (location = 0) out mediump vec2 uv;
0043 layout (location = 1) out mediump vec4 pointTuples[MAXIMUM_POINT_COUNT / 2];
0044 layout (location = 19) out highp float pointCount;
0045 layout (location = 20) out mediump vec2 bounds;
0046 layout (location = 21) out mediump vec4 lineColor;
0047 layout (location = 22) out mediump vec4 fillColor;
0048
0049 void main() {
0050 uv = in_uv;
0051 uv.y = (1.0 + -1.0 * uv.y) * ubuf.aspect;
0052
0053 pointTuples[0] = in_points_0;
0054 pointTuples[1] = in_points_1;
0055 pointTuples[2] = in_points_2;
0056 pointTuples[3] = in_points_3;
0057 pointTuples[4] = in_points_4;
0058 pointTuples[5] = in_points_5;
0059 pointTuples[6] = in_points_6;
0060
0061 pointCount = in_count;
0062 bounds = in_bounds;
0063
0064 lineColor = in_lineColor;
0065 fillColor = in_fillColor;
0066
0067 gl_Position = ubuf.matrix * in_vertex;
0068 }