summaryrefslogtreecommitdiffstatsci
path: root/src/vkvg_surface_internal.c
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2026-10-24 17:57:43 +0200
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2026-10-24 17:57:43 +0200
commitfdf049555e877f16d5d7ac1a7e38f08de6c38cee (patch)
treef17594bf97c2db4d4bfae06fddda652f76b9611a /src/vkvg_surface_internal.c
parent86ddd9ba28461dad4cec23f01d2a0e5c1f44b0e8 (diff)
new clipping and save/restore ok, sync need rework and debugnew_save_restore
Diffstat (limited to 'src/vkvg_surface_internal.c')
-rw-r--r--src/vkvg_surface_internal.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/vkvg_surface_internal.c b/src/vkvg_surface_internal.c
index 9483f06..bf7e91d 100644
--- a/src/vkvg_surface_internal.c
+++ b/src/vkvg_surface_internal.c
@@ -264,23 +264,23 @@ void _setupPipelines(surface_class* surf) {
VkStencilOpState polyFillOpState = {VK_STENCIL_OP_KEEP,
VK_STENCIL_OP_INVERT,
VK_STENCIL_OP_KEEP,
- VK_COMPARE_OP_EQUAL,
- STENCIL_CLIP_BIT,
- STENCIL_FILL_BIT,
+ VK_COMPARE_OP_LESS_OR_EQUAL,
+ STENCIL_CLIP_MASK,
+ STENCIL_FILL_MASK,
0};
VkStencilOpState clipingOpState = {VK_STENCIL_OP_KEEP,
VK_STENCIL_OP_INCREMENT_AND_CLAMP,
VK_STENCIL_OP_KEEP,
VK_COMPARE_OP_LESS_OR_EQUAL,
- STENCIL_ALL_BIT,
- STENCIL_ALL_BIT,
+ STENCIL_CLIP_MASK,
+ STENCIL_CLIP_MASK,
0x0};
VkStencilOpState stencilOpState = {VK_STENCIL_OP_KEEP,
- VK_STENCIL_OP_KEEP,
+ VK_STENCIL_OP_ZERO,
VK_STENCIL_OP_KEEP,
VK_COMPARE_OP_LESS_OR_EQUAL,
STENCIL_ALL_BIT,
- STENCIL_ALL_BIT,
+ STENCIL_FILL_MASK,
0x0};
VkPipelineDepthStencilStateCreateInfo dsStateCreateInfo = {
@@ -295,12 +295,10 @@ void _setupPipelines(surface_class* surf) {
VkDynamicState dynamicStateEnables[] = {
VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR,
- VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
- VK_DYNAMIC_STATE_STENCIL_REFERENCE,
- VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
+ VK_DYNAMIC_STATE_STENCIL_REFERENCE
};
VkPipelineDynamicStateCreateInfo dynamicState = {.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
- .dynamicStateCount = 2,
+ .dynamicStateCount = 3,
.pDynamicStates = dynamicStateEnables};
VkPipelineViewportStateCreateInfo viewportState = {
@@ -389,18 +387,15 @@ void _setupPipelines(surface_class* surf) {
inputAssemblyState.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
dsStateCreateInfo.back = dsStateCreateInfo.front = clipingOpState;
- dynamicState.dynamicStateCount = 5;
VK_CHECK_RESULT(vkCreateGraphicsPipelines(dev->vkDev, dev->pipelineCache, 1, &pipelineCreateInfo, NULL,
&surf->pipelineClipping));
dsStateCreateInfo.back = dsStateCreateInfo.front = stencilOpState;
blendAttachmentState.colorWriteMask = 0xf;
- dynamicState.dynamicStateCount = 5;
pipelineCreateInfo.stageCount = 2;
VK_CHECK_RESULT(
vkCreateGraphicsPipelines(dev->vkDev, dev->pipelineCache, 1, &pipelineCreateInfo, NULL, &surf->pipe_OVER));
- dynamicState.dynamicStateCount = 3;
blendAttachmentState.alphaBlendOp = blendAttachmentState.colorBlendOp = VK_BLEND_OP_SUBTRACT;
VK_CHECK_RESULT(
vkCreateGraphicsPipelines(dev->vkDev, dev->pipelineCache, 1, &pipelineCreateInfo, NULL, &surf->pipe_SUB));