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 }