mirror of https://github.com/bkaradzic/bgfx
texturev: Added basic texture info.
This commit is contained in:
parent
64eba2aa93
commit
a5419a8f52
|
@ -155,6 +155,8 @@ static const InputBinding s_bindingView[] =
|
|||
{ entry::Key::KeyB, entry::Modifier::None, 1, NULL, "view rgb b" },
|
||||
{ entry::Key::KeyA, entry::Modifier::None, 1, NULL, "view rgb a" },
|
||||
|
||||
{ entry::Key::KeyI, entry::Modifier::None, 1, NULL, "view info" },
|
||||
|
||||
{ entry::Key::KeyH, entry::Modifier::None, 1, NULL, "view help" },
|
||||
|
||||
{ entry::Key::Return, entry::Modifier::None, 1, NULL, "view files" },
|
||||
|
@ -212,6 +214,7 @@ struct View
|
|||
, m_fit(true)
|
||||
, m_alpha(false)
|
||||
, m_help(false)
|
||||
, m_info(false)
|
||||
, m_files(false)
|
||||
, m_sdf(false)
|
||||
{
|
||||
|
@ -246,7 +249,7 @@ struct View
|
|||
mip = atoi(_argv[2]);
|
||||
}
|
||||
|
||||
m_mip = bx::uint32_iclamp(mip, 0, m_info.numMips-1);
|
||||
m_mip = bx::uint32_iclamp(mip, 0, m_textureInfo.numMips-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -275,7 +278,7 @@ struct View
|
|||
layer = atoi(_argv[2]);
|
||||
}
|
||||
|
||||
m_layer = bx::uint32_iclamp(layer, 0, m_info.numLayers-1);
|
||||
m_layer = bx::uint32_iclamp(layer, 0, m_textureInfo.numLayers-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -528,6 +531,10 @@ struct View
|
|||
{
|
||||
m_help ^= true;
|
||||
}
|
||||
else if (0 == bx::strCmp(_argv[1], "info") )
|
||||
{
|
||||
m_info ^= true;
|
||||
}
|
||||
else if (0 == bx::strCmp(_argv[1], "files") )
|
||||
{
|
||||
m_files ^= true;
|
||||
|
@ -613,7 +620,7 @@ struct View
|
|||
typedef stl::vector<std::string> FileList;
|
||||
FileList m_fileList;
|
||||
|
||||
bgfx::TextureInfo m_info;
|
||||
bgfx::TextureInfo m_textureInfo;
|
||||
Geometry::Enum m_cubeMapGeo;
|
||||
uint32_t m_fileIndex;
|
||||
uint32_t m_scaleFn;
|
||||
|
@ -633,6 +640,7 @@ struct View
|
|||
bool m_fit;
|
||||
bool m_alpha;
|
||||
bool m_help;
|
||||
bool m_info;
|
||||
bool m_files;
|
||||
bool m_sdf;
|
||||
};
|
||||
|
@ -1202,7 +1210,7 @@ int _main_(int _argc, char** _argv)
|
|||
|
||||
if (dragging)
|
||||
{
|
||||
if (view.m_info.cubeMap
|
||||
if (view.m_textureInfo.cubeMap
|
||||
&& Geometry::Quad == view.m_cubeMapGeo)
|
||||
{
|
||||
char exec[64];
|
||||
|
@ -1226,6 +1234,11 @@ int _main_(int _argc, char** _argv)
|
|||
cmdExec("view files");
|
||||
}
|
||||
|
||||
if (ImGui::MenuItem("Info", NULL, view.m_info) )
|
||||
{
|
||||
cmdExec("view info");
|
||||
}
|
||||
|
||||
// if (ImGui::MenuItem("Save As") )
|
||||
{
|
||||
}
|
||||
|
@ -1244,7 +1257,7 @@ int _main_(int _argc, char** _argv)
|
|||
cmdExec("view filter");
|
||||
}
|
||||
|
||||
if (ImGui::BeginMenu("Cubemap", view.m_info.cubeMap) )
|
||||
if (ImGui::BeginMenu("Cubemap", view.m_textureInfo.cubeMap) )
|
||||
{
|
||||
if (ImGui::MenuItem("Quad", NULL, Geometry::Quad == view.m_cubeMapGeo) )
|
||||
{
|
||||
|
@ -1323,6 +1336,38 @@ int _main_(int _argc, char** _argv)
|
|||
help = view.m_help;
|
||||
}
|
||||
|
||||
if (view.m_info)
|
||||
{
|
||||
if (ImGui::Begin("Info", NULL, ImVec2(300.0f, 200.0f) ) )
|
||||
{
|
||||
if (ImGui::BeginChild("##info", ImVec2(0.0f, 0.0f) ) )
|
||||
{
|
||||
ImGui::Text("Dimensions: %d x %d"
|
||||
, view.m_textureInfo.width
|
||||
, view.m_textureInfo.height
|
||||
);
|
||||
|
||||
ImGui::Text("Format: %s"
|
||||
, bimg::getName(bimg::TextureFormat::Enum(view.m_textureInfo.format) )
|
||||
);
|
||||
|
||||
ImGui::Text("Layers: %d / %d"
|
||||
, view.m_layer
|
||||
, view.m_textureInfo.numLayers - 1
|
||||
);
|
||||
|
||||
ImGui::Text("Mips: %d / %d"
|
||||
, view.m_mip
|
||||
, view.m_textureInfo.numMips - 1
|
||||
);
|
||||
|
||||
ImGui::EndChild();
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
}
|
||||
}
|
||||
|
||||
if (view.m_files)
|
||||
{
|
||||
char temp[bx::kMaxFilePath];
|
||||
|
@ -1471,7 +1516,7 @@ int _main_(int _argc, char** _argv)
|
|||
| BGFX_TEXTURE_V_CLAMP
|
||||
| BGFX_TEXTURE_W_CLAMP
|
||||
, 0
|
||||
, &view.m_info
|
||||
, &view.m_textureInfo
|
||||
, &orientation
|
||||
);
|
||||
|
||||
|
@ -1492,28 +1537,28 @@ int _main_(int _argc, char** _argv)
|
|||
if (isValid(texture) )
|
||||
{
|
||||
const char* name = "";
|
||||
if (view.m_info.cubeMap)
|
||||
if (view.m_textureInfo.cubeMap)
|
||||
{
|
||||
name = " CubeMap";
|
||||
}
|
||||
else if (1 < view.m_info.depth)
|
||||
else if (1 < view.m_textureInfo.depth)
|
||||
{
|
||||
name = " 3D";
|
||||
view.m_info.numLayers = view.m_info.depth;
|
||||
view.m_textureInfo.numLayers = view.m_textureInfo.depth;
|
||||
}
|
||||
else if (1 < view.m_info.numLayers)
|
||||
else if (1 < view.m_textureInfo.numLayers)
|
||||
{
|
||||
name = " 2D Array";
|
||||
}
|
||||
|
||||
bx::stringPrintf(title, "%s (%d x %d%s, mips: %d, layers %d, %s)"
|
||||
, fp.get()
|
||||
, view.m_info.width
|
||||
, view.m_info.height
|
||||
, view.m_textureInfo.width
|
||||
, view.m_textureInfo.height
|
||||
, name
|
||||
, view.m_info.numMips
|
||||
, view.m_info.numLayers
|
||||
, bimg::getName(bimg::TextureFormat::Enum(view.m_info.format) )
|
||||
, view.m_textureInfo.numMips
|
||||
, view.m_textureInfo.numLayers
|
||||
, bimg::getName(bimg::TextureFormat::Enum(view.m_textureInfo.format) )
|
||||
);
|
||||
}
|
||||
else
|
||||
|
@ -1597,7 +1642,7 @@ int _main_(int _argc, char** _argv)
|
|||
|
||||
if (view.m_fit)
|
||||
{
|
||||
float wh[3] = { float(view.m_info.width), float(view.m_info.height), 0.0f };
|
||||
float wh[3] = { float(view.m_textureInfo.width), float(view.m_textureInfo.height), 0.0f };
|
||||
float result[3];
|
||||
bx::vec3MulMtx(result, wh, orientation);
|
||||
result[0] = bx::fround(bx::fabs(result[0]) );
|
||||
|
@ -1622,11 +1667,11 @@ int _main_(int _argc, char** _argv)
|
|||
* zoom.getValue()
|
||||
;
|
||||
|
||||
setGeometry(view.m_info.cubeMap ? view.m_cubeMapGeo : Geometry::Quad
|
||||
, -int(view.m_info.width * ss)/2
|
||||
, -int(view.m_info.height * ss)/2
|
||||
, int(view.m_info.width * ss)
|
||||
, int(view.m_info.height * ss)
|
||||
setGeometry(view.m_textureInfo.cubeMap ? view.m_cubeMapGeo : Geometry::Quad
|
||||
, -int(view.m_textureInfo.width * ss)/2
|
||||
, -int(view.m_textureInfo.height * ss)/2
|
||||
, int(view.m_textureInfo.width * ss)
|
||||
, int(view.m_textureInfo.height * ss)
|
||||
, view.m_abgr
|
||||
);
|
||||
|
||||
|
@ -1640,9 +1685,9 @@ int _main_(int _argc, char** _argv)
|
|||
layer.set(float(view.m_layer), 0.25f);
|
||||
|
||||
float params[4] = { mip.getValue(), layer.getValue(), 0.0f, 0.0f };
|
||||
if (1 < view.m_info.depth)
|
||||
if (1 < view.m_textureInfo.depth)
|
||||
{
|
||||
params[1] = layer.getValue()/view.m_info.depth;
|
||||
params[1] = layer.getValue()/view.m_textureInfo.depth;
|
||||
}
|
||||
|
||||
bgfx::setUniform(u_params, params);
|
||||
|
@ -1670,18 +1715,18 @@ int _main_(int _argc, char** _argv)
|
|||
);
|
||||
|
||||
bgfx:: ProgramHandle program = textureProgram;
|
||||
if (1 < view.m_info.depth)
|
||||
if (1 < view.m_textureInfo.depth)
|
||||
{
|
||||
program = texture3DProgram;
|
||||
}
|
||||
else if (view.m_info.cubeMap)
|
||||
else if (view.m_textureInfo.cubeMap)
|
||||
{
|
||||
program = Geometry::Quad == view.m_cubeMapGeo
|
||||
? textureCubeProgram
|
||||
: textureCube2Program
|
||||
;
|
||||
}
|
||||
else if (1 < view.m_info.numLayers)
|
||||
else if (1 < view.m_textureInfo.numLayers)
|
||||
{
|
||||
program = textureArrayProgram;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue