mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-07 09:45:25 +08:00
qt 6.5.1 original
This commit is contained in:
41
tests/manual/rhi/computebuffer/buffer.comp
Normal file
41
tests/manual/rhi/computebuffer/buffer.comp
Normal file
@ -0,0 +1,41 @@
|
||||
#version 440
|
||||
|
||||
layout (local_size_x = 256) in;
|
||||
|
||||
struct Data
|
||||
{
|
||||
vec2 pos;
|
||||
float dir;
|
||||
};
|
||||
|
||||
layout(std140, binding = 0) buffer StorageBuffer
|
||||
{
|
||||
Data d[];
|
||||
} buf;
|
||||
|
||||
layout(std140, binding = 1) uniform UniformBuffer
|
||||
{
|
||||
float step;
|
||||
uint count;
|
||||
} ubuf;
|
||||
|
||||
void main()
|
||||
{
|
||||
uint index = gl_GlobalInvocationID.x;
|
||||
if (index < ubuf.count) {
|
||||
vec2 p = buf.d[index].pos;
|
||||
float dir = buf.d[index].dir;
|
||||
|
||||
p.x += dir * ubuf.step * 0.01;
|
||||
if (p.x > 1.0) {
|
||||
p.x = 1.0;
|
||||
buf.d[index].dir *= -1.0;
|
||||
}
|
||||
if (p.x < -1.0) {
|
||||
p.x = -1.0;
|
||||
buf.d[index].dir *= -1.0;
|
||||
}
|
||||
|
||||
buf.d[index].pos = p;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user