MCPcopy Create free account
hub / github.com/RenderKit/embree / ShadeVertsLinearUV

Method ShadeVertsLinearUV

tutorials/common/imgui/imgui_draw.cpp:1873–1895  ·  view source on GitHub ↗

Distribute UV over (a, b) rectangle

Source from the content-addressed store, hash-verified

1871
1872// Distribute UV over (a, b) rectangle
1873void ImGui::ShadeVertsLinearUV(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, bool clamp)
1874{
1875 const ImVec2 size = b - a;
1876 const ImVec2 uv_size = uv_b - uv_a;
1877 const ImVec2 scale = ImVec2(
1878 size.x != 0.0f ? (uv_size.x / size.x) : 0.0f,
1879 size.y != 0.0f ? (uv_size.y / size.y) : 0.0f);
1880
1881 ImDrawVert* vert_start = draw_list->VtxBuffer.Data + vert_start_idx;
1882 ImDrawVert* vert_end = draw_list->VtxBuffer.Data + vert_end_idx;
1883 if (clamp)
1884 {
1885 const ImVec2 min = ImMin(uv_a, uv_b);
1886 const ImVec2 max = ImMax(uv_a, uv_b);
1887 for (ImDrawVert* vertex = vert_start; vertex < vert_end; ++vertex)
1888 vertex->uv = ImClamp(uv_a + ImMul(ImVec2(vertex->pos.x, vertex->pos.y) - a, scale), min, max);
1889 }
1890 else
1891 {
1892 for (ImDrawVert* vertex = vert_start; vertex < vert_end; ++vertex)
1893 vertex->uv = uv_a + ImMul(ImVec2(vertex->pos.x, vertex->pos.y) - a, scale);
1894 }
1895}
1896
1897//-----------------------------------------------------------------------------
1898// [SECTION] ImFontConfig

Callers

nothing calls this directly

Calls 5

ImVec2Function · 0.85
ImMinFunction · 0.85
ImMaxFunction · 0.85
ImClampFunction · 0.85
ImMulFunction · 0.85

Tested by

no test coverage detected