ndc fix
This commit is contained in:
parent
56fd5e19ff
commit
eec8b754de
@ -72,7 +72,8 @@ Vec2 RectUvFromVertexId(u32 id)
|
|||||||
Vec2 NdcFromViewport(Vec2 viewport_size, Vec2 viewport_coords)
|
Vec2 NdcFromViewport(Vec2 viewport_size, Vec2 viewport_coords)
|
||||||
{
|
{
|
||||||
Vec2 result;
|
Vec2 result;
|
||||||
result.x = ((viewport_coords.x + 0.5f) / viewport_size.x) * 2.0f - 1.0f;
|
result = viewport_coords / viewport_size;
|
||||||
result.y = 1.0f - ((viewport_coords.y + 0.5f) / viewport_size.y) * 2.0f;
|
result *= Vec2(2, -2);
|
||||||
|
result += Vec2(-1, 1);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,10 +65,10 @@ ExitFuncDef(ShutdownUser)
|
|||||||
void PushGameUiStyle(void)
|
void PushGameUiStyle(void)
|
||||||
{
|
{
|
||||||
// UI_Push(FontSize, 48);
|
// UI_Push(FontSize, 48);
|
||||||
UI_Push(FontSize, 24);
|
// UI_Push(FontSize, 24);
|
||||||
// UI_Push(FontSize, 12);
|
UI_Push(FontSize, 12);
|
||||||
|
|
||||||
UI_Push(TextPadding, 12);
|
// UI_Push(TextPadding, SzEm);
|
||||||
// UI_Push(Border, 1);
|
// UI_Push(Border, 1);
|
||||||
// UI_Push(BorderColor, Rgba32F(1, 0, 1, 0.4));
|
// UI_Push(BorderColor, Rgba32F(1, 0, 1, 0.4));
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/ui/ui.c
12
src/ui/ui.c
@ -547,23 +547,11 @@ GPU_Resource *UI_EndBuild(Rect render_viewport)
|
|||||||
UI_RectInstance *rect = PushStruct(g->draw_rects_arena, UI_RectInstance);
|
UI_RectInstance *rect = PushStruct(g->draw_rects_arena, UI_RectInstance);
|
||||||
rect->flags |= UI_RectFlag_DrawTexture;
|
rect->flags |= UI_RectFlag_DrawTexture;
|
||||||
|
|
||||||
/* FIXME: Shouldn't have to do this */
|
|
||||||
atlas_p0.x += 1;
|
|
||||||
atlas_p0.y += 1;
|
|
||||||
atlas_p1.x += 1;
|
|
||||||
atlas_p1.y += 1;
|
|
||||||
|
|
||||||
rect->p0 = AddVec2(baseline, rr.baseline_start_offset);
|
rect->p0 = AddVec2(baseline, rr.baseline_start_offset);
|
||||||
rect->p1 = AddVec2(rect->p0, glyph_size);
|
rect->p1 = AddVec2(rect->p0, glyph_size);
|
||||||
rect->tex_uv0 = MulVec2Vec2(atlas_p0, inv_font_image_size);
|
rect->tex_uv0 = MulVec2Vec2(atlas_p0, inv_font_image_size);
|
||||||
rect->tex_uv1 = MulVec2Vec2(atlas_p1, inv_font_image_size);
|
rect->tex_uv1 = MulVec2Vec2(atlas_p1, inv_font_image_size);
|
||||||
|
|
||||||
/* FIXME: Remove this (debugging) */
|
|
||||||
#if 0
|
|
||||||
rect->border_srgb = Rgba32F(1, 0, 1, 0.4);
|
|
||||||
rect->border = 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
rect->tex = tex_rid;
|
rect->tex = tex_rid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,15 +27,9 @@ UI_RectPS_Input VSDef(UI_RectVS, Semantic(u32, sv_instanceid), Semantic(u32, sv_
|
|||||||
StructuredBuffer<UI_RectInstance> instances = UniformResourceFromRid(sig.instances);
|
StructuredBuffer<UI_RectInstance> instances = UniformResourceFromRid(sig.instances);
|
||||||
UI_RectInstance instance = instances[sv_instanceid];
|
UI_RectInstance instance = instances[sv_instanceid];
|
||||||
|
|
||||||
#if 0
|
|
||||||
Vec2 rect_uv = RectUvFromVertexId(sv_vertexid);
|
Vec2 rect_uv = RectUvFromVertexId(sv_vertexid);
|
||||||
Vec2 tex_uv = lerp(instance.tex_uv0, instance.tex_uv1, rect_uv);
|
Vec2 tex_uv = lerp(instance.tex_uv0, instance.tex_uv1, rect_uv);
|
||||||
Vec2 screen_vert = lerp(instance.p0, instance.p1, rect_uv);
|
Vec2 screen_vert = lerp(instance.p0, instance.p1, rect_uv);
|
||||||
#else
|
|
||||||
Vec2 rect_uv = RectUvFromVertexId(sv_vertexid);
|
|
||||||
Vec2 tex_uv = lerp(instance.tex_uv0, instance.tex_uv1, rect_uv);
|
|
||||||
Vec2 screen_vert = lerp(instance.p0, instance.p1, rect_uv);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UI_RectPS_Input result;
|
UI_RectPS_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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user