yes
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
#version 310 es
|
||||
|
||||
layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
layout(binding = 0) buffer InOut {
|
||||
uint values[1024];
|
||||
} sb_inout;
|
||||
|
||||
void main (void) {
|
||||
uvec3 size = gl_NumWorkGroups * gl_WorkGroupSize;
|
||||
uint numValuesPerInv = uint(sb_inout.values.length()) / (size.x*size.y*size.z);
|
||||
uint groupNdx = size.x*size.y*gl_GlobalInvocationID.z + size.x*gl_GlobalInvocationID.y + gl_GlobalInvocationID.x;
|
||||
uint offset = numValuesPerInv*groupNdx;
|
||||
|
||||
for (uint ndx = 0u; ndx < numValuesPerInv; ndx++)
|
||||
sb_inout.values[offset + ndx] = ~sb_inout.values[offset + ndx];
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
#version 310 es
|
||||
|
||||
layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
layout(binding = 0) buffer InOut
|
||||
{
|
||||
uint values[];
|
||||
} sb_inout;
|
||||
|
||||
void main (void)
|
||||
{
|
||||
uvec3 size = gl_NumWorkGroups * gl_WorkGroupSize;
|
||||
uint numValuesPerInv = uint(sb_inout.values.length()) / (size.x*size.y*size.z);
|
||||
uint groupNdx = size.x*size.y*gl_GlobalInvocationID.z + size.x*gl_GlobalInvocationID.y + gl_GlobalInvocationID.x;
|
||||
uint offset = numValuesPerInv*groupNdx;
|
||||
|
||||
for (uint ndx = 0u; ndx < numValuesPerInv; ndx++)
|
||||
sb_inout.values[offset + ndx] = ~sb_inout.values[offset + ndx];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
#version 430
|
||||
layout(location = 0) in vec4 in_color;
|
||||
layout(location = 0) out vec4 out_color;
|
||||
void main()
|
||||
{
|
||||
out_color = in_color;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#version 430
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
gl_Position = in_position;
|
||||
if (gl_VertexIndex == in_refVertexIndex)
|
||||
out_color = in_color;
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#version 430
|
||||
|
||||
layout(location = 0) in vec4 in_color;
|
||||
layout(location = 0) out vec4 out_color;
|
||||
layout (set=0, binding=0, std430) buffer StorageBlock
|
||||
{
|
||||
uint counter;
|
||||
} ssbo;
|
||||
|
||||
void main()
|
||||
{
|
||||
out_color = in_color;
|
||||
atomicAdd(ssbo.counter, 1);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#version 430
|
||||
|
||||
vec4 positions[3] = vec4[](
|
||||
vec4(0.5f, 0.5f, 1.0f, 1.0f),
|
||||
vec4(-0.3f, 0.3f, 1.0f, 1.0f),
|
||||
vec4(-1.0f, 1.0f, 1.0f, 1.0f)
|
||||
);
|
||||
|
||||
vec4 colors[3] = vec4[](
|
||||
vec4(0.0f, 0.0f, 1.0f, 1.0f), // blue
|
||||
vec4(0.0f, 1.0f, 0.0f, 1.0f), // green
|
||||
vec4(0.0f, 0.0f, 0.0f, 1.0f) // black
|
||||
);
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
float gl_PointSize;
|
||||
};
|
||||
|
||||
void main() {
|
||||
gl_Position = positions[gl_VertexIndex];
|
||||
gl_PointSize = 1.0f;
|
||||
out_color = colors[gl_VertexIndex];
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#version 430
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refInstanceIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
gl_Position = in_position;
|
||||
if (gl_InstanceIndex == in_refInstanceIndex)
|
||||
out_color = in_color;
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#version 430
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
vec2 perVertex = vec2(in_position.x, in_position.y);
|
||||
vec2 perInstance[6] = vec2[6](vec2(0.0, 0.0), vec2(0.3, 0.0), vec2(0.0, -0.3),vec2(0.3, -0.3), vec2(0.7, -0.7), vec2(-0.75, 0.8));
|
||||
|
||||
gl_Position = vec4(perVertex + perInstance[gl_InstanceIndex], 0.0, 1.0);
|
||||
|
||||
if (gl_VertexIndex == in_refVertexIndex)
|
||||
out_color = in_color;
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#version 430
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
vec2 perVertex = vec2(in_position.x, in_position.y);
|
||||
vec2 perInstance[6] = vec2[6](vec2(0.7, -0.7), vec2(-0.75, 0.8), vec2(0.0, 0.0), vec2(0.3, 0.0), vec2(0.0, -0.3),vec2(0.3, -0.3) );
|
||||
|
||||
gl_Position = vec4(perVertex + perInstance[gl_InstanceIndex], 0.0, 1.0);
|
||||
|
||||
if (gl_VertexIndex == in_refVertexIndex)
|
||||
out_color = in_color;
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#version 450 core
|
||||
#extension GL_ARB_shader_draw_parameters : require
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
vec2 perVertex = vec2(in_position.x, in_position.y);
|
||||
vec2 perInstance[5] = vec2[5](vec2(0.0, 0.0), vec2(-0.3, 0.0), vec2(0.0, 0.3), vec2(0.5, 0.5), vec2(0.75, -0.8));
|
||||
vec4 colors[4] = vec4[4](vec4(1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0));
|
||||
int baseInstanceIndex = gl_InstanceIndex - gl_BaseInstanceARB;
|
||||
|
||||
gl_Position = vec4(perVertex + perInstance[baseInstanceIndex], 0.0, 1.0);
|
||||
|
||||
if ((gl_VertexIndex - gl_BaseVertexARB) == in_refVertexIndex && gl_DrawIDARB == 0)
|
||||
out_color = in_color * colors[baseInstanceIndex];
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#version 450 core
|
||||
#extension GL_ARB_shader_draw_parameters : require
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
vec2 perVertex = vec2(in_position.x, in_position.y);
|
||||
vec2 perInstance[5] = vec2[5](vec2(0.0, 0.0), vec2(-0.3, 0.0), vec2(0.0, 0.3), vec2(0.5, 0.5), vec2(0.75, -0.8));
|
||||
vec4 colors[4] = vec4[4](vec4(1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0));
|
||||
int baseInstanceIndex = gl_InstanceIndex - gl_BaseInstanceARB;
|
||||
|
||||
gl_Position = vec4(perVertex + perInstance[baseInstanceIndex], 0.0, 1.0);
|
||||
|
||||
if ((gl_VertexIndex - 2) == in_refVertexIndex && gl_DrawIDARB == 0)
|
||||
out_color = in_color * colors[baseInstanceIndex];
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
#version 450 core
|
||||
#extension GL_ARB_shader_draw_parameters : require
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
gl_Position = vec4(in_position.xy, 0.0, 1.0);
|
||||
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
if ((gl_VertexIndex - gl_BaseVertexARB) == in_refVertexIndex && gl_DrawIDARB == 0)
|
||||
out_color = in_color;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#version 450 core
|
||||
#extension GL_ARB_shader_draw_parameters : require
|
||||
|
||||
layout(location = 0) in vec4 in_position;
|
||||
layout(location = 1) in vec4 in_color;
|
||||
layout(location = 2) in int in_refVertexIndex;
|
||||
|
||||
layout(location = 0) out vec4 out_color;
|
||||
|
||||
out gl_PerVertex {
|
||||
vec4 gl_Position;
|
||||
};
|
||||
|
||||
void main() {
|
||||
vec2 perVertex = vec2(in_position.x, in_position.y);
|
||||
vec2 perInstance[5] = vec2[5](vec2(0.0, 0.0), vec2(-0.3, 0.0), vec2(0.0, 0.3), vec2(0.5, 0.5), vec2(0.75, -0.8));
|
||||
vec2 perDraw[4] = vec2[4](vec2(0.0, 0.0), vec2(-0.3, -0.3), vec2(0.3, 0.3), vec2(1.0, 0.5));
|
||||
vec4 colors[4] = vec4[4](vec4(1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0));
|
||||
|
||||
gl_Position = vec4(perVertex + perInstance[gl_InstanceIndex - gl_BaseInstanceARB] + perDraw[gl_DrawIDARB], 0.0, 1.0);
|
||||
|
||||
if ((gl_VertexIndex - gl_BaseVertexARB) == in_refVertexIndex)
|
||||
out_color = in_color * colors[gl_DrawIDARB];
|
||||
else
|
||||
out_color = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
||||
Reference in New Issue
Block a user