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);
//////////////////////////////
//- Render
{
}
//////////////////////////////
//- End vis frame

View File

@ -17,8 +17,8 @@
@IncludeGpu ui_draw.gpu
//- Shaders
@VertexShader UI_RectVS
@PixelShader UI_RectPS
@VertexShader UI_DRectVS
@PixelShader UI_DRectPS
//- Embeds
@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.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.rects_arena);
@ -1232,8 +1232,8 @@ i64 UI_EndFrame(UI_Frame frame)
{
/* Box rect */
{
UI_RectInstance *rect = PushStruct(g->eframe.rects_arena, UI_RectInstance);
rect->flags |= UI_RectFlag_DrawTexture * !!(box->cmd.background_texture != 0);
UI_DRect *rect = PushStruct(g->eframe.rects_arena, UI_DRect);
rect->flags |= UI_DRectFlag_DrawTexture * !!(box->cmd.background_texture != 0);
rect->p0 = box->p0;
rect->p1 = box->p1;
rect->tex_uv0 = VEC2(0, 0);
@ -1368,8 +1368,8 @@ i64 UI_EndFrame(UI_Frame frame)
Vec2 glyph_size = SubVec2(atlas_p1, atlas_p0);
if (glyph_size.x != 0 || glyph_size.y != 0)
{
UI_RectInstance *rect = PushStruct(g->eframe.rects_arena, UI_RectInstance);
rect->flags |= UI_RectFlag_DrawTexture;
UI_DRect *rect = PushStruct(g->eframe.rects_arena, UI_DRect);
rect->flags |= UI_DRectFlag_DrawTexture;
rect->p0 = AddVec2(baseline, VEC2(rr.pos, 0));
rect->p0 = AddVec2(rect->p0, rr.offset);
rect->p1 = AddVec2(rect->p0, glyph_size);
@ -1413,13 +1413,13 @@ i64 UI_EndFrame(UI_Frame frame)
/* Render rects */
{
UI_RectSig sig = ZI;
UI_DRectSig sig = ZI;
sig.viewport_size = RoundVec2ToVec2I32(render_viewport.size);
sig.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler());
sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer);
GPU_Rasterize(cl,
&sig,
UI_RectVS, UI_RectPS,
UI_DRectVS, UI_DRectPS,
1,
viewport,
scissor,
@ -1431,14 +1431,14 @@ i64 UI_EndFrame(UI_Frame frame)
/* Render rect wireframes */
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.sampler = GPU_SamplerStateRidFromResource(GPU_GetCommonPointSampler());
sig.rects = GPU_StructuredBufferRidFromResource(draw_rects_buffer);
sig.debug_enabled = 1;
GPU_Rasterize(cl,
&sig,
UI_RectVS, UI_RectPS,
UI_DRectVS, UI_DRectPS,
1,
viewport,
scissor,

View File

@ -1,9 +1,9 @@
ConstantBuffer<UI_RectSig> UI_rect_sig : register (b0);
ConstantBuffer<UI_DRectSig> UI_drect_sig : register (b0);
////////////////////////////////////////////////////////////
//~ Rect
Struct(UI_RectPS_Input)
Struct(UI_DRectPS_Input)
{
Semantic(Vec4, sv_position);
@ -15,24 +15,24 @@ Struct(UI_RectPS_Input)
Semantic(Vec2, tex_uv);
};
Struct(UI_RectPS_Output)
Struct(UI_DRectPS_Output)
{
Semantic(Vec4, sv_target0);
};
//- 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;
StructuredBuffer<UI_RectInstance> rects = UniformResourceFromRid(sig.rects);
UI_RectInstance rect = rects[sv_instanceid];
ConstantBuffer<UI_DRectSig> sig = UI_drect_sig;
StructuredBuffer<UI_DRect> rects = UniformResourceFromRid(sig.rects);
UI_DRect rect = rects[sv_instanceid];
Vec2 rect_uv = RectUvFromVertexId(sv_vertexid);
Vec2 tex_uv = lerp(rect.tex_uv0, rect.tex_uv1, 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.background_lin = rect.background_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
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;
StructuredBuffer<UI_RectInstance> rects = UniformResourceFromRid(sig.rects);
UI_RectInstance rect = rects[input.rect_idx];
ConstantBuffer<UI_DRectSig> sig = UI_drect_sig;
StructuredBuffer<UI_DRect> rects = UniformResourceFromRid(sig.rects);
UI_DRect rect = rects[input.rect_idx];
Vec2 p = input.sv_position.xy;
Vec2 rect_uv = input.rect_uv;
@ -105,7 +105,7 @@ UI_RectPS_Output PSDef(UI_RectPS, UI_RectPS_Input input)
{
background_color = border_color;
}
else if (rect.flags & UI_RectFlag_DrawTexture)
else if (rect.flags & UI_DRectFlag_DrawTexture)
{
SamplerState sampler = UniformSamplerFromRid(sig.sampler);
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;
}
UI_RectPS_Output output;
UI_DRectPS_Output output;
output.sv_target0 = final_color;
return output;
}

View File

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