mirror of https://github.com/bkaradzic/bgfx
texturev: Added horizontal and vertical flip.
This commit is contained in:
parent
acfad63e8f
commit
32866e9e75
|
@ -136,7 +136,9 @@ static const InputBinding s_bindingApp[] =
|
||||||
|
|
||||||
const char* s_resetCmd =
|
const char* s_resetCmd =
|
||||||
"view zoom 1.0\n"
|
"view zoom 1.0\n"
|
||||||
"view rotate 0\n"
|
"view rotate x 0\n"
|
||||||
|
"view rotate y 0\n"
|
||||||
|
"view rotate z 0\n"
|
||||||
"view cubemap\n"
|
"view cubemap\n"
|
||||||
"view pan\n"
|
"view pan\n"
|
||||||
"view ev\n"
|
"view ev\n"
|
||||||
|
@ -160,8 +162,11 @@ static const InputBinding s_bindingView[] =
|
||||||
{ entry::Key::Plus, entry::Modifier::None, 1, NULL, "view zoom +0.1" },
|
{ entry::Key::Plus, entry::Modifier::None, 1, NULL, "view zoom +0.1" },
|
||||||
{ entry::Key::Minus, entry::Modifier::None, 1, NULL, "view zoom -0.1" },
|
{ entry::Key::Minus, entry::Modifier::None, 1, NULL, "view zoom -0.1" },
|
||||||
|
|
||||||
{ entry::Key::KeyZ, entry::Modifier::None, 1, NULL, "view rotate -90" },
|
{ entry::Key::KeyZ, entry::Modifier::None, 1, NULL, "view rotate z -90" },
|
||||||
{ entry::Key::KeyZ, entry::Modifier::LeftShift, 1, NULL, "view rotate +90" },
|
{ entry::Key::KeyZ, entry::Modifier::LeftShift, 1, NULL, "view rotate z +90" },
|
||||||
|
|
||||||
|
{ entry::Key::KeyX, entry::Modifier::None, 1, NULL, "view rotate x +180" },
|
||||||
|
{ entry::Key::KeyY, entry::Modifier::None, 1, NULL, "view rotate y +180" },
|
||||||
|
|
||||||
{ entry::Key::Up, entry::Modifier::None, 1, NULL, "view pan\n"
|
{ entry::Key::Up, entry::Modifier::None, 1, NULL, "view pan\n"
|
||||||
"view file-up" },
|
"view file-up" },
|
||||||
|
@ -273,7 +278,6 @@ struct View
|
||||||
, m_angx(0.0f)
|
, m_angx(0.0f)
|
||||||
, m_angy(0.0f)
|
, m_angy(0.0f)
|
||||||
, m_zoom(1.0f)
|
, m_zoom(1.0f)
|
||||||
, m_angle(0.0f)
|
|
||||||
, m_orientation(0.0f)
|
, m_orientation(0.0f)
|
||||||
, m_flipH(0.0f)
|
, m_flipH(0.0f)
|
||||||
, m_flipV(0.0f)
|
, m_flipV(0.0f)
|
||||||
|
@ -290,6 +294,10 @@ struct View
|
||||||
, m_sdf(false)
|
, m_sdf(false)
|
||||||
, m_inLinear(false)
|
, m_inLinear(false)
|
||||||
{
|
{
|
||||||
|
m_rotate[0] = 0.0f;
|
||||||
|
m_rotate[1] = 0.0f;
|
||||||
|
m_rotate[2] = 0.0f;
|
||||||
|
|
||||||
load();
|
load();
|
||||||
|
|
||||||
m_textureInfo.format = bgfx::TextureFormat::Count;
|
m_textureInfo.format = bgfx::TextureFormat::Count;
|
||||||
|
@ -476,24 +484,28 @@ struct View
|
||||||
{
|
{
|
||||||
if (_argc >= 3)
|
if (_argc >= 3)
|
||||||
{
|
{
|
||||||
|
int8_t axis = bx::clamp(bx::toLower(_argv[2][0]) - 'x', 0, 2);
|
||||||
|
|
||||||
float angle;
|
float angle;
|
||||||
bx::fromString(&angle, _argv[2]);
|
bx::fromString(&angle, _argv[3]);
|
||||||
|
|
||||||
if (_argv[2][0] == '+'
|
if (_argv[3][0] == '+'
|
||||||
|| _argv[2][0] == '-')
|
|| _argv[3][0] == '-')
|
||||||
{
|
{
|
||||||
m_angle += bx::toRad(angle);
|
m_rotate[axis] += bx::toRad(angle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_angle = bx::toRad(angle);
|
m_rotate[axis] = bx::toRad(angle);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_angle = bx::wrap(m_angle, bx::kPi*2.0f);
|
m_rotate[axis] = bx::wrap(m_rotate[axis], bx::kPi*2.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_angle = 0.0f;
|
m_rotate[0] = 0.0f;
|
||||||
|
m_rotate[1] = 0.0f;
|
||||||
|
m_rotate[2] = 0.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (0 == bx::strCmp(_argv[1], "orientation") )
|
else if (0 == bx::strCmp(_argv[1], "orientation") )
|
||||||
|
@ -516,7 +528,8 @@ struct View
|
||||||
{
|
{
|
||||||
float angle;
|
float angle;
|
||||||
bx::fromString(&angle, _argv[3]);
|
bx::fromString(&angle, _argv[3]);
|
||||||
*dst = bx::toRad(angle);
|
angle = bx::toRad(angle);
|
||||||
|
*dst = bx::wrap(angle, bx::kPi*2.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -869,7 +882,7 @@ struct View
|
||||||
float m_angx;
|
float m_angx;
|
||||||
float m_angy;
|
float m_angy;
|
||||||
float m_zoom;
|
float m_zoom;
|
||||||
float m_angle;
|
float m_rotate[3];
|
||||||
float m_orientation;
|
float m_orientation;
|
||||||
float m_flipH;
|
float m_flipH;
|
||||||
float m_flipV;
|
float m_flipV;
|
||||||
|
@ -1451,7 +1464,9 @@ int _main_(int _argc, char** _argv)
|
||||||
Interpolator scale(1.0f);
|
Interpolator scale(1.0f);
|
||||||
Interpolator posx(0.0f);
|
Interpolator posx(0.0f);
|
||||||
Interpolator posy(0.0f);
|
Interpolator posy(0.0f);
|
||||||
InterpolatorAngle angle(0.0f);
|
InterpolatorAngle rotateX(0.0f);
|
||||||
|
InterpolatorAngle rotateY(0.0f);
|
||||||
|
InterpolatorAngle rotateZ(0.0f);
|
||||||
InterpolatorAngle angx(0.0f);
|
InterpolatorAngle angx(0.0f);
|
||||||
InterpolatorAngle angy(0.0f);
|
InterpolatorAngle angy(0.0f);
|
||||||
|
|
||||||
|
@ -1467,7 +1482,9 @@ int _main_(int _argc, char** _argv)
|
||||||
|| scale.isActive()
|
|| scale.isActive()
|
||||||
|| posx.isActive()
|
|| posx.isActive()
|
||||||
|| posy.isActive()
|
|| posy.isActive()
|
||||||
|| angle.isActive()
|
|| rotateX.isActive()
|
||||||
|
|| rotateY.isActive()
|
||||||
|
|| rotateZ.isActive()
|
||||||
|| angx.isActive()
|
|| angx.isActive()
|
||||||
|| angy.isActive()
|
|| angy.isActive()
|
||||||
;
|
;
|
||||||
|
@ -1983,7 +2000,9 @@ int _main_(int _argc, char** _argv)
|
||||||
|
|
||||||
keyBindingHelp("LMB+drag", "Pan.");
|
keyBindingHelp("LMB+drag", "Pan.");
|
||||||
keyBindingHelp("=/- or MW", "Zoom in/out.");
|
keyBindingHelp("=/- or MW", "Zoom in/out.");
|
||||||
keyBindingHelp("z/Z", "Rotate.");
|
keyBindingHelp("x", "Horizontal flip (z-axis relative).");
|
||||||
|
keyBindingHelp("y", "Vertical flip (z-axis relative).");
|
||||||
|
keyBindingHelp("z/Z", "Rotate around Z axis.");
|
||||||
keyBindingHelp("0", "Reset.");
|
keyBindingHelp("0", "Reset.");
|
||||||
keyBindingHelp("1", "Fit to window.");
|
keyBindingHelp("1", "Fit to window.");
|
||||||
ImGui::NextLine();
|
ImGui::NextLine();
|
||||||
|
@ -2174,7 +2193,7 @@ int _main_(int _argc, char** _argv)
|
||||||
bgfx::dbgTextClear();
|
bgfx::dbgTextClear();
|
||||||
|
|
||||||
float orientation[16];
|
float orientation[16];
|
||||||
bx::mtxRotateXYZ(orientation, view.m_flipH, view.m_flipV, angle.getValue()+view.m_orientation);
|
bx::mtxRotateXYZ(orientation, rotateY.getValue()+view.m_flipH, rotateX.getValue()+view.m_flipV, rotateZ.getValue()+view.m_orientation);
|
||||||
|
|
||||||
if (view.m_fit)
|
if (view.m_fit)
|
||||||
{
|
{
|
||||||
|
@ -2192,7 +2211,9 @@ int _main_(int _argc, char** _argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
zoom.set(view.m_zoom, transitionTime);
|
zoom.set(view.m_zoom, transitionTime);
|
||||||
angle.set(view.m_angle, transitionTime);
|
rotateX.set(view.m_rotate[0], transitionTime);
|
||||||
|
rotateY.set(view.m_rotate[1], transitionTime);
|
||||||
|
rotateZ.set(view.m_rotate[2], transitionTime);
|
||||||
angx.set(view.m_angx, transitionTime);
|
angx.set(view.m_angx, transitionTime);
|
||||||
angy.set(view.m_angy, transitionTime);
|
angy.set(view.m_angy, transitionTime);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue