rename ui RectInstance -> DRect

This commit is contained in:
jacob 2025-11-12 15:25:11 -06:00
parent 391fc33a5e
commit 030d9ad6a8
5 changed files with 39 additions and 32 deletions

View File

@ -326,6 +326,13 @@ JobDef(V_VisWorker, sig, job_id)
} }
UnlockTicketMutex(&sim_shared->input_back_tm); UnlockTicketMutex(&sim_shared->input_back_tm);
//////////////////////////////
//- Render
{
}
////////////////////////////// //////////////////////////////
//- End vis frame //- End vis frame

View File

@ -17,8 +17,8 @@
@IncludeGpu ui_draw.gpu @IncludeGpu ui_draw.gpu
//- Shaders //- Shaders
@VertexShader UI_RectVS @VertexShader UI_DRectVS
@PixelShader UI_RectPS @PixelShader UI_DRectPS
//- Embeds //- Embeds
@EmbedDir UI_Resources ui_res @EmbedDir UI_Resources ui_res

View File

@ -672,7 +672,7 @@ i64 UI_EndFrame(UI_Frame frame)
{ {
g->eframe.layout_arena = AcquireArena(Gibi(64)); g->eframe.layout_arena = AcquireArena(Gibi(64));
g->eframe.rects_arena = AcquireArena(Gibi(64)); g->eframe.rects_arena = AcquireArena(Gibi(64));
g->eframe.draw_rects_tbuff = GPU_AcquireTransientBuffer(GPU_QueueKind_Direct, sizeof(UI_RectInstance)); g->eframe.draw_rects_tbuff = GPU_AcquireTransientBuffer(GPU_QueueKind_Direct, sizeof(UI_DRect));
} }
ResetArena(g->eframe.layout_arena); ResetArena(g->eframe.layout_arena);
ResetArena(g->eframe.rects_arena); ResetArena(g->eframe.rects_arena);
@ -1232,8 +1232,8 @@ i64 UI_EndFrame(UI_Frame frame)
{ {
/* Box rect */ /* Box rect */
{ {
UI_RectInstance *rect = PushStruct(g->eframe.rects_arena, UI_RectInstance); UI_DRect *rect = PushStruct(g->eframe.rects_arena, UI_DRect);
rect->flags |= UI_RectFlag_DrawTexture * !!(box->cmd.background_texture != 0); rect->flags |= UI_DRectFlag_DrawTexture * !!(box->cmd.background_texture != 0);
rect->p0 = box->p0; rect->p0 = box->p0;
rect->p1 = box->p1; rect->p1 = box->p1;
rect->tex_uv0 = VEC2(0, 0); rect->tex_uv0 = VEC2(0, 0);
@ -1368,8 +1368,8 @@ i64 UI_EndFrame(UI_Frame frame)
Vec2 glyph_size = SubVec2(atlas_p1, atlas_p0); Vec2 glyph_size = SubVec2(atlas_p1, atlas_p0);
if (glyph_size.x != 0 || glyph_size.y != 0) if (glyph_size.x != 0 || glyph_size.y != 0)
{ {
UI_RectInstance *rect = PushStruct(g->eframe.rects_arena, UI_RectInstance); UI_DRect *rect = PushStruct(g->eframe.rects_arena, UI_DRect);
rect->flags |= UI_RectFlag_DrawTexture; rect->flags |= UI_DRectFlag_DrawTexture;
rect->p0 = AddVec2(baseline, VEC2(rr.pos, 0)); rect->p0 = AddVec2(baseline, VEC2(rr.pos, 0));
rect->p0 = AddVec2(rect->p0, rr.offset); rect->p0 = AddVec2(rect->p0, rr.offset);
rect->p1 = AddVec2(rect->p0, glyph_size); rect->p1 = AddVec2(rect->p0, glyph_size);
@ -1413,13 +1413,13 @@ i64 UI_EndFrame(UI_Frame frame)
/* Render rects */ /* Render rects */
{ {
UI_RectSig sig = ZI; UI_DRectSig sig = ZI;
sig.viewport_size = RoundVec2ToVec2I32(render_viewport.size); sig.viewport_size = RoundVec2ToVec2I32(render_viewport.size);
sig.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler()); sig.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler());
sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer); sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer);
GPU_Rasterize(cl, GPU_Rasterize(cl,
&sig, &sig,
UI_RectVS, UI_RectPS, UI_DRectVS, UI_DRectPS,
1, 1,
viewport, viewport,
scissor, scissor,
@ -1431,14 +1431,14 @@ i64 UI_EndFrame(UI_Frame frame)
/* Render rect wireframes */ /* Render rect wireframes */
if (AnyBit(g->bframe.frame_flags, UI_FrameFlag_Debug)) if (AnyBit(g->bframe.frame_flags, UI_FrameFlag_Debug))
{ {
UI_RectSig sig = ZI; UI_DRectSig sig = ZI;
sig.viewport_size = RoundVec2ToVec2I32(render_viewport.size); sig.viewport_size = RoundVec2ToVec2I32(render_viewport.size);
sig.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler()); sig.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler());
sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer); sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer);
sig.debug_enabled = 1; sig.debug_enabled = 1;
GPU_Rasterize(cl, GPU_Rasterize(cl,
&sig, &sig,
UI_RectVS, UI_RectPS, UI_DRectVS, UI_DRectPS,
1, 1,
viewport, viewport,
scissor, scissor,

View File

@ -1,9 +1,9 @@
ConstantBuffer<UI_RectSig> UI_rect_sig : register (b0); ConstantBuffer<UI_DRectSig> UI_drect_sig : register (b0);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Rect //~ Rect
Struct(UI_RectPS_Input) Struct(UI_DRectPS_Input)
{ {
Semantic(Vec4, sv_position); Semantic(Vec4, sv_position);
@ -15,24 +15,24 @@ Struct(UI_RectPS_Input)
Semantic(Vec2, tex_uv); Semantic(Vec2, tex_uv);
}; };
Struct(UI_RectPS_Output) Struct(UI_DRectPS_Output)
{ {
Semantic(Vec4, sv_target0); Semantic(Vec4, sv_target0);
}; };
//- Vertex shader //- Vertex shader
UI_RectPS_Input VSDef(UI_RectVS, Semantic(u32, sv_instanceid), Semantic(u32, sv_vertexid)) UI_DRectPS_Input VSDef(UI_DRectVS, Semantic(u32, sv_instanceid), Semantic(u32, sv_vertexid))
{ {
ConstantBuffer<UI_RectSig> sig = UI_rect_sig; ConstantBuffer<UI_DRectSig> sig = UI_drect_sig;
StructuredBuffer<UI_RectInstance> rects = UniformResourceFromRid(sig.rects); StructuredBuffer<UI_DRect> rects = UniformResourceFromRid(sig.rects);
UI_RectInstance rect = rects[sv_instanceid]; UI_DRect rect = rects[sv_instanceid];
Vec2 rect_uv = RectUvFromVertexId(sv_vertexid); Vec2 rect_uv = RectUvFromVertexId(sv_vertexid);
Vec2 tex_uv = lerp(rect.tex_uv0, rect.tex_uv1, rect_uv); Vec2 tex_uv = lerp(rect.tex_uv0, rect.tex_uv1, rect_uv);
Vec2 screen_vert = lerp(rect.p0, rect.p1, rect_uv); Vec2 screen_vert = lerp(rect.p0, rect.p1, rect_uv);
UI_RectPS_Input result; UI_DRectPS_Input result;
result.sv_position = Vec4(NdcFromViewport(sig.viewport_size, screen_vert).xy, 0, 1); result.sv_position = Vec4(NdcFromViewport(sig.viewport_size, screen_vert).xy, 0, 1);
result.background_lin = rect.background_lin; result.background_lin = rect.background_lin;
result.border_lin = rect.border_lin; result.border_lin = rect.border_lin;
@ -45,11 +45,11 @@ UI_RectPS_Input VSDef(UI_RectVS, Semantic(u32, sv_instanceid), Semantic(u32, sv_
} }
//- Pixel shader //- Pixel shader
UI_RectPS_Output PSDef(UI_RectPS, UI_RectPS_Input input) UI_DRectPS_Output PSDef(UI_DRectPS, UI_DRectPS_Input input)
{ {
ConstantBuffer<UI_RectSig> sig = UI_rect_sig; ConstantBuffer<UI_DRectSig> sig = UI_drect_sig;
StructuredBuffer<UI_RectInstance> rects = UniformResourceFromRid(sig.rects); StructuredBuffer<UI_DRect> rects = UniformResourceFromRid(sig.rects);
UI_RectInstance rect = rects[input.rect_idx]; UI_DRect rect = rects[input.rect_idx];
Vec2 p = input.sv_position.xy; Vec2 p = input.sv_position.xy;
Vec2 rect_uv = input.rect_uv; Vec2 rect_uv = input.rect_uv;
@ -105,7 +105,7 @@ UI_RectPS_Output PSDef(UI_RectPS, UI_RectPS_Input input)
{ {
background_color = border_color; background_color = border_color;
} }
else if (rect.flags & UI_RectFlag_DrawTexture) else if (rect.flags & UI_DRectFlag_DrawTexture)
{ {
SamplerState sampler = UniformSamplerFromRid(sig.sampler); SamplerState sampler = UniformSamplerFromRid(sig.sampler);
Texture2D<Vec4> tex = NonUniformResourceFromRid(rect.tex); Texture2D<Vec4> tex = NonUniformResourceFromRid(rect.tex);
@ -128,7 +128,7 @@ UI_RectPS_Output PSDef(UI_RectPS, UI_RectPS_Input input)
final_color = rect.debug_lin; final_color = rect.debug_lin;
} }
UI_RectPS_Output output; UI_DRectPS_Output output;
output.sv_target0 = final_color; output.sv_target0 = final_color;
return output; return output;
} }

View File

@ -1,7 +1,7 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Rect types //~ Rect types
Struct(UI_RectSig) Struct(UI_DRectSig)
{ {
/* ----------------------------------------------------- */ /* ----------------------------------------------------- */
Vec2I32 viewport_size; /* 02 consts */ Vec2I32 viewport_size; /* 02 consts */
@ -14,17 +14,17 @@ Struct(UI_RectSig)
u32 _pad2; /* 01 consts (padding) */ u32 _pad2; /* 01 consts (padding) */
/* ----------------------------------------------------- */ /* ----------------------------------------------------- */
}; };
AssertRootConst(UI_RectSig, 8); AssertRootConst(UI_DRectSig, 8);
Enum(UI_RectFlag) Enum(UI_DRectFlag)
{ {
UI_RectFlag_None = 0, UI_DRectFlag_None = 0,
UI_RectFlag_DrawTexture = (1 << 0), UI_DRectFlag_DrawTexture = (1 << 0),
}; };
Struct(UI_RectInstance) Struct(UI_DRect)
{ {
UI_RectFlag flags; UI_DRectFlag flags;
Vec2 p0; Vec2 p0;
Vec2 p1; Vec2 p1;
Vec4 tint_lin; Vec4 tint_lin;