This unify the C++ and GLSL codebase style. The GLSL types are still in the backend compatibility layers to support python shaders. However, the C++ shader compilation layer doesn't have them to enforce correct type usage. Note that this is going to break pretty much all PRs in flight that targets shader code. Rel #137261 Pull Request: https://projects.blender.org/blender/blender/pulls/137369
38 lines
810 B
GLSL
38 lines
810 B
GLSL
/* SPDX-FileCopyrightText: 2024 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#include "infos/gpu_shader_sequencer_info.hh"
|
|
|
|
VERTEX_SHADER_CREATE_INFO(gpu_shader_sequencer_strips)
|
|
|
|
void main()
|
|
{
|
|
int id = gl_InstanceID;
|
|
strip_id = id;
|
|
int vid = gl_VertexID;
|
|
SeqStripDrawData strip = strip_data[id];
|
|
float4 rect = float4(strip.left_handle, strip.bottom, strip.right_handle, strip.top);
|
|
/* Expand by 1px to fit pixel grid rounding. */
|
|
float2 expand = float2(1.0f, 1.0f);
|
|
rect.xy -= expand;
|
|
rect.zw += expand;
|
|
|
|
float2 co;
|
|
if (vid == 0) {
|
|
co = rect.xw;
|
|
}
|
|
else if (vid == 1) {
|
|
co = rect.xy;
|
|
}
|
|
else if (vid == 2) {
|
|
co = rect.zw;
|
|
}
|
|
else {
|
|
co = rect.zy;
|
|
}
|
|
|
|
co_interp = co;
|
|
gl_Position = ModelViewProjectionMatrix * float4(co, 0.0f, 1.0f);
|
|
}
|