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 }