diff options
Diffstat (limited to '3rdparty/bgfx/tools/texturev/texturev.cpp')
-rw-r--r-- | 3rdparty/bgfx/tools/texturev/texturev.cpp | 76 |
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); |