Warning, /frameworks/kquickcharts/src/shaders6/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 lineWidth;
0014     lowp float aspect;
0015     lowp float opacity;
0016     lowp float smoothing;
0017 } ubuf;
0018 
0019 #define MAXIMUM_POINT_COUNT 18
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 = 6) in mediump vec4 in_points_0;
0035 layout (location = 8) in mediump vec4 in_points_1;
0036 layout (location = 9) in mediump vec4 in_points_2;
0037 layout (location = 10) in mediump vec4 in_points_3;
0038 layout (location = 11) in mediump vec4 in_points_4;
0039 layout (location = 12) in mediump vec4 in_points_5;
0040 layout (location = 13) in mediump vec4 in_points_6;
0041 layout (location = 14) in mediump vec4 in_points_7;
0042 layout (location = 15) in mediump vec4 in_points_8;
0043 
0044 layout (location = 0) out mediump vec2 uv;
0045 layout (location = 1) out mediump vec4 pointTuples[MAXIMUM_POINT_COUNT / 2];
0046 layout (location = 19) out highp float pointCount;
0047 layout (location = 20) out mediump vec2 bounds;
0048 layout (location = 21) out mediump vec4 lineColor;
0049 layout (location = 22) out mediump vec4 fillColor;
0050 
0051 void main() {
0052     uv = in_uv;
0053     uv.y = (1.0 + -1.0 * uv.y) * ubuf.aspect;
0054 
0055     pointTuples[0] = in_points_0;
0056     pointTuples[1] = in_points_1;
0057     pointTuples[2] = in_points_2;
0058     pointTuples[3] = in_points_3;
0059     pointTuples[4] = in_points_4;
0060     pointTuples[5] = in_points_5;
0061     pointTuples[6] = in_points_6;
0062     pointTuples[7] = in_points_7;
0063     pointTuples[8] = in_points_8;
0064 
0065     pointCount = in_count;
0066     bounds = in_bounds;
0067 
0068     lineColor = in_lineColor;
0069     fillColor = in_fillColor;
0070 
0071     gl_Position = ubuf.matrix * in_vertex;
0072 }