texturev: Fixed layer control for 3D textures with mips.

This commit is contained in:
Branimir Karadžić 2018-03-27 18:09:31 -07:00
parent a4faa82164
commit 498175746e

View File

@ -1484,8 +1484,14 @@ int _main_(int _argc, char** _argv)
, bimg::getName(bimg::TextureFormat::Enum(view.m_textureInfo.format) )
);
ImGui::SliderInt("Layer", (int32_t*)&view.m_layer, 0, view.m_textureInfo.numLayers - 1);
ImGui::SliderInt("Mip", (int32_t*)&view.m_mip, 0, view.m_textureInfo.numMips - 1);
uint32_t numLayers = view.m_textureInfo.numLayers;
if (1 < view.m_textureInfo.depth)
{
numLayers = bx::max(1, view.m_textureInfo.depth >> view.m_mip);
}
view.m_layer = bx::clamp<int32_t>(view.m_layer, 0, numLayers - 1);
ImGui::SliderInt("Layer", (int32_t*)&view.m_layer, 0, numLayers - 1);
ImGui::SliderInt("Mip", (int32_t*)&view.m_mip, 0, view.m_textureInfo.numMips - 1);
ImGui::Separator();
@ -1834,7 +1840,7 @@ int _main_(int _argc, char** _argv)
float params[4] = { mip.getValue(), layer.getValue(), view.m_inLinear ? 1.0f : 0.0f, ev.getValue() };
if (1 < view.m_textureInfo.depth)
{
params[1] = layer.getValue()/view.m_textureInfo.depth;
params[1] = layer.getValue()/float(bx::max(1, view.m_textureInfo.depth >> view.m_mip) );
}
bgfx::setUniform(u_params, params);