summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/tools/texturev/texturev.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/tools/texturev/texturev.cpp')
-rw-r--r--3rdparty/bgfx/tools/texturev/texturev.cpp76
1 files changed, 59 insertions, 17 deletions
diff --git a/3rdparty/bgfx/tools/texturev/texturev.cpp b/3rdparty/bgfx/tools/texturev/texturev.cpp
index f4704de0153..01d36b091ca 100644
--- a/3rdparty/bgfx/tools/texturev/texturev.cpp
+++ b/3rdparty/bgfx/tools/texturev/texturev.cpp
@@ -80,6 +80,11 @@ static const InputBinding s_bindingView[] =
{ entry::Key::PageUp, entry::Modifier::None, 1, NULL, "view file-pgup" },
{ entry::Key::PageDown, entry::Modifier::None, 1, NULL, "view file-pgdown" },
+ { entry::Key::KeyR, entry::Modifier::None, 1, NULL, "view rgb r" },
+ { entry::Key::KeyG, entry::Modifier::None, 1, NULL, "view rgb g" },
+ { entry::Key::KeyB, entry::Modifier::None, 1, NULL, "view rgb b" },
+ { entry::Key::KeyA, entry::Modifier::None, 1, NULL, "view rgb a" },
+
{ entry::Key::KeyH, entry::Modifier::None, 1, NULL, "view help" },
INPUT_BINDING_END
@@ -105,8 +110,10 @@ struct View
: m_fileIndex(0)
, m_scaleFn(0)
, m_mip(0)
+ , m_abgr(UINT32_MAX)
, m_zoom(1.0f)
, m_filter(true)
+ , m_alpha(false)
, m_help(false)
{
}
@@ -191,6 +198,33 @@ struct View
++m_fileIndex;
m_fileIndex = bx::uint32_min(m_fileIndex, numFiles);
}
+ else if (0 == strcmp(_argv[1], "rgb") )
+ {
+ if (_argc >= 3)
+ {
+ if (_argv[2][0] == 'r')
+ {
+ m_abgr ^= 0x000000ff;
+ }
+ else if (_argv[2][0] == 'g')
+ {
+ m_abgr ^= 0x0000ff00;
+ }
+ else if (_argv[2][0] == 'b')
+ {
+ m_abgr ^= 0x00ff0000;
+ }
+ else if (_argv[2][0] == 'a')
+ {
+ m_alpha ^= true;
+ }
+ }
+ else
+ {
+ m_abgr = UINT32_MAX;
+ m_alpha = false;
+ }
+ }
else if (0 == strcmp(_argv[1], "help") )
{
m_help ^= true;
@@ -260,8 +294,10 @@ struct View
uint32_t m_fileIndex;
uint32_t m_scaleFn;
uint32_t m_mip;
+ uint32_t m_abgr;
float m_zoom;
bool m_filter;
+ bool m_alpha;
bool m_help;
};
@@ -294,7 +330,7 @@ struct PosUvColorVertex
bgfx::VertexDecl PosUvColorVertex::ms_decl;
-bool screenQuad(int32_t _x, int32_t _y, int32_t _width, uint32_t _height, bool _originBottomLeft = false)
+bool screenQuad(int32_t _x, int32_t _y, int32_t _width, uint32_t _height, uint32_t _abgr, bool _originBottomLeft = false)
{
if (bgfx::checkAvailTransientVertexBuffer(6, PosUvColorVertex::ms_decl) )
{
@@ -349,12 +385,12 @@ bool screenQuad(int32_t _x, int32_t _y, int32_t _width, uint32_t _height, bool _
vertex[5].m_u = minu;
vertex[5].m_v = minv;
- vertex[0].m_abgr = UINT32_MAX;
- vertex[1].m_abgr = UINT32_MAX;
- vertex[2].m_abgr = UINT32_MAX;
- vertex[3].m_abgr = UINT32_MAX;
- vertex[4].m_abgr = UINT32_MAX;
- vertex[5].m_abgr = UINT32_MAX;
+ vertex[0].m_abgr = _abgr;
+ vertex[1].m_abgr = _abgr;
+ vertex[2].m_abgr = _abgr;
+ vertex[3].m_abgr = _abgr;
+ vertex[4].m_abgr = _abgr;
+ vertex[5].m_abgr = _abgr;
bgfx::setVertexBuffer(&vb);
@@ -697,22 +733,26 @@ int _main_(int _argc, char** _argv)
ImGui::Text("Key bindings:\n\n");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "ESC"); ImGui::SameLine(64); ImGui::Text("Exit.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "h"); ImGui::SameLine(64); ImGui::Text("Toggle help screen.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "f"); ImGui::SameLine(64); ImGui::Text("Toggle full-screen.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "ESC"); ImGui::SameLine(64); ImGui::Text("Exit.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "h"); ImGui::SameLine(64); ImGui::Text("Toggle help screen.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "f"); ImGui::SameLine(64); ImGui::Text("Toggle full-screen.");
+ ImGui::NextLine();
+
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "-"); ImGui::SameLine(64); ImGui::Text("Zoom out.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "="); ImGui::SameLine(64); ImGui::Text("Zoom in.");
ImGui::NextLine();
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "-"); ImGui::SameLine(64); ImGui::Text("Zoom out.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "="); ImGui::SameLine(64); ImGui::Text("Zoom in.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), ","); ImGui::SameLine(64); ImGui::Text("MIP level up.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "."); ImGui::SameLine(64); ImGui::Text("MIP level down.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "/"); ImGui::SameLine(64); ImGui::Text("Toggle linear/point texture sampling.");
ImGui::NextLine();
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), ","); ImGui::SameLine(64); ImGui::Text("MIP level up.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "."); ImGui::SameLine(64); ImGui::Text("MIP level down.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "/"); ImGui::SameLine(64); ImGui::Text("Toggle linear/point texture sampling.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "up"); ImGui::SameLine(64); ImGui::Text("Previous texture.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "down"); ImGui::SameLine(64); ImGui::Text("Next texture.");
ImGui::NextLine();
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "up"); ImGui::SameLine(64); ImGui::Text("Previous texture.");
- ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "down"); ImGui::SameLine(64); ImGui::Text("Next texture.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "r/g/b"); ImGui::SameLine(64); ImGui::Text("Toggle R, G, or B color channel.");
+ ImGui::TextColored(ImVec4(1.0f, 1.0f, 0.0f, 1.0f), "a"); ImGui::SameLine(64); ImGui::Text("Toggle alpha blending.");
ImGui::NextLine();
ImGui::Dummy(ImVec2(0.0f, 0.0f) );
@@ -797,6 +837,7 @@ int _main_(int _argc, char** _argv)
, int(height - view.m_info.height * ss)/2
, int(view.m_info.width * ss)
, int(view.m_info.height * ss)
+ , view.m_abgr
);
float mtx[16];
@@ -821,6 +862,7 @@ int _main_(int _argc, char** _argv)
bgfx::setState(0
| BGFX_STATE_RGB_WRITE
| BGFX_STATE_ALPHA_WRITE
+ | (view.m_alpha ? BGFX_STATE_BLEND_ALPHA : BGFX_STATE_NONE)
);
bgfx::submit(0, view.m_info.cubeMap ? textureCubeProgram : textureProgram);