static void Main (string[] args) {
#if DEBUG
//Instance.VALIDATION = true;
- //Instance.RENDER_DOC_CAPTURE = true;
+ Instance.RENDER_DOC_CAPTURE = true;
#endif
using (Program vke = new Program ()) {
vke.Run ();
DescriptorSet dsComp, dsFSQ;//descriptor set for the mvp matrice.
vke.Image imgContour, imgColor;
- VkFormat rastFormat = VkFormat.B8g8r8a8Uint;
+ VkFormat rastFormat = VkFormat.R32g32Sfloat;
const VkSampleCountFlags contourSamplesCount = VkSampleCountFlags.SampleCount1;
void createIbo() {
}
Console.WriteLine("");
}
-
-
}
- UpdateFrequency = 20;
+ UpdateFrequency = 1;
vbo = new HostBuffer<Vertex> (dev, VkBufferUsageFlags.VertexBuffer, vertices.ToArray());
vbo.SetName("vbo");
cmds = cmdPool.AllocateCommandBuffer (swapChain.ImageCount);
}
- //view update override, see base method for more informations.
- public override void UpdateView () {
-
- base.UpdateView ();
- }
Vector2 curMousePos;
const float pointSizeSquared = 50;
#extension GL_ARB_shading_language_420pack : enable
layout (location = 0) in flat uint inContourID;
-layout (location = 0) out uvec4 outFragColor;
+layout (location = 0) out vec2 outFragColor;
void main()
{
- outFragColor = uvec4(1u << gl_PrimitiveID, inContourID, 0, 255);
+ uint tmp = 1u << gl_PrimitiveID;
+ outFragColor = vec2(float(tmp), inContourID);
}
\ No newline at end of file
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
-layout (set = 0, binding = 0, rgba8ui) readonly uniform uimage2D inputImage;
+layout (set = 0, binding = 0, rg32f) readonly uniform image2D inputImage;
layout (set = 0, binding = 1, rgba8) writeonly uniform image2D outputImage;
layout(push_constant) uniform PushConsts {
int start = -1;
for(int i=0; i<is.x; i++) {
ivec2 uv = ivec2(i, gl_GlobalInvocationID.x);
- uvec4 ct = imageLoad(inputImage, uv);
- uint contourID = ct.g;
- uint primID = ct.r;
+ vec2 ct = imageLoad(inputImage, uv).rg;
+ uint contourID = uint(ct.g);
+ uint primID = uint(ct.r);
if (primID > 0) {
imageStore(outputImage, uv, vec4(1.f,0.f,0.f,1.f));
if ((bc % 2) != 0) {
if (start >= 0) {
for(int j=start; j<i; j++) {
- imageStore(outputImage, ivec2(j, gl_GlobalInvocationID.x), vec4(0.f,1.f,0.f,1.f));
+ imageStore(outputImage, ivec2(j, gl_GlobalInvocationID.x), vec4(0.f,0.f,1.f,1.f));
}
}
start = i + 1;