2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-07-07 07:25:52 +00:00

constexpr refactor

This commit is contained in:
Jack Andersen 2019-02-23 21:16:37 -10:00
parent 4b0c7e6410
commit 56c72423e0
14 changed files with 59 additions and 59 deletions

View File

@ -82,11 +82,11 @@ public:
~Button() { closeMenu({}); } ~Button() { closeMenu({}); }
Button(ViewResources& res, View& parentView, IButtonBinding* controlBinding, std::string_view text, Button(ViewResources& res, View& parentView, IButtonBinding* controlBinding, std::string_view text,
Icon* icon = nullptr, Style style = Style::Block, const zeus::CColor& bgColor = zeus::CColor::skWhite, Icon* icon = nullptr, Style style = Style::Block, const zeus::CColor& bgColor = zeus::skWhite,
RectangleConstraint constraint = RectangleConstraint()); RectangleConstraint constraint = RectangleConstraint());
Button(ViewResources& res, View& parentView, IButtonBinding* controlBinding, std::string_view text, Button(ViewResources& res, View& parentView, IButtonBinding* controlBinding, std::string_view text,
const zeus::CColor& textColor, Icon* icon = nullptr, Style style = Style::Block, const zeus::CColor& textColor, Icon* icon = nullptr, Style style = Style::Block,
const zeus::CColor& bgColor = zeus::CColor::skWhite, RectangleConstraint constraint = RectangleConstraint()); const zeus::CColor& bgColor = zeus::skWhite, RectangleConstraint constraint = RectangleConstraint());
void mouseDown(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey); void mouseDown(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
void mouseUp(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey); void mouseUp(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
void mouseMove(const boo::SWindowCoord&); void mouseMove(const boo::SWindowCoord&);

View File

@ -49,7 +49,7 @@ private:
std::string m_text; std::string m_text;
OKButton(FileBrowser& fb, ViewResources& res, std::string_view text) : m_fb(fb), m_text(text) { OKButton(FileBrowser& fb, ViewResources& res, std::string_view text) : m_fb(fb), m_text(text) {
m_button.m_view.reset( m_button.m_view.reset(
new Button(res, fb, this, text, nullptr, Button::Style::Block, zeus::CColor::skWhite, new Button(res, fb, this, text, nullptr, Button::Style::Block, zeus::skWhite,
RectangleConstraint(100 * res.pixelFactor(), -1, RectangleConstraint::Test::Minimum))); RectangleConstraint(100 * res.pixelFactor(), -1, RectangleConstraint::Test::Minimum)));
} }
std::string_view name(const Control* control) const { return m_text; } std::string_view name(const Control* control) const { return m_text; }
@ -63,7 +63,7 @@ private:
std::string m_text; std::string m_text;
CancelButton(FileBrowser& fb, ViewResources& res, std::string_view text) : m_fb(fb), m_text(text) { CancelButton(FileBrowser& fb, ViewResources& res, std::string_view text) : m_fb(fb), m_text(text) {
m_button.m_view.reset(new Button( m_button.m_view.reset(new Button(
res, fb, this, text, nullptr, Button::Style::Block, zeus::CColor::skWhite, res, fb, this, text, nullptr, Button::Style::Block, zeus::skWhite,
RectangleConstraint(m_fb.m_ok.m_button.m_view->nominalWidth(), -1, RectangleConstraint::Test::Minimum))); RectangleConstraint(m_fb.m_ok.m_button.m_view->nominalWidth(), -1, RectangleConstraint::Test::Minimum)));
} }
std::string_view name(const Control* control) const { return m_text; } std::string_view name(const Control* control) const { return m_text; }

View File

@ -25,8 +25,8 @@ public:
TextView::Alignment align = TextView::Alignment::Left, size_t lineCapacity = 256, TextView::Alignment align = TextView::Alignment::Left, size_t lineCapacity = 256,
float lineHeight = 1.0); float lineHeight = 1.0);
void typesetGlyphs(std::string_view str, const zeus::CColor& defaultColor = zeus::CColor::skWhite, unsigned wrap = 0); void typesetGlyphs(std::string_view str, const zeus::CColor& defaultColor = zeus::skWhite, unsigned wrap = 0);
void typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultColor = zeus::CColor::skWhite, void typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultColor = zeus::skWhite,
unsigned wrap = 0); unsigned wrap = 0);
void colorGlyphs(const zeus::CColor& newColor); void colorGlyphs(const zeus::CColor& newColor);

View File

@ -89,8 +89,8 @@ public:
std::vector<RenderGlyph>& accessGlyphs() { return m_glyphs; } std::vector<RenderGlyph>& accessGlyphs() { return m_glyphs; }
const std::vector<RenderGlyph>& accessGlyphs() const { return m_glyphs; } const std::vector<RenderGlyph>& accessGlyphs() const { return m_glyphs; }
void typesetGlyphs(std::string_view str, const zeus::CColor& defaultColor = zeus::CColor::skWhite); void typesetGlyphs(std::string_view str, const zeus::CColor& defaultColor = zeus::skWhite);
void typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultColor = zeus::CColor::skWhite); void typesetGlyphs(std::wstring_view str, const zeus::CColor& defaultColor = zeus::skWhite);
void invalidateGlyphs(); void invalidateGlyphs();
void colorGlyphs(const zeus::CColor& newColor); void colorGlyphs(const zeus::CColor& newColor);

View File

@ -73,7 +73,7 @@ class View {
public: public:
struct SolidShaderVert { struct SolidShaderVert {
zeus::CVector3f m_pos; zeus::CVector3f m_pos;
zeus::CColor m_color = zeus::CColor::skClear; zeus::CColor m_color = zeus::skClear;
}; };
struct TexShaderVert { struct TexShaderVert {
zeus::CVector3f m_pos; zeus::CVector3f m_pos;
@ -81,7 +81,7 @@ public:
}; };
struct ViewBlock { struct ViewBlock {
zeus::CMatrix4f m_mv; zeus::CMatrix4f m_mv;
zeus::CColor m_color = zeus::CColor::skWhite; zeus::CColor m_color = zeus::skWhite;
void setViewRect(const boo::SWindowRect& root, const boo::SWindowRect& sub) { void setViewRect(const boo::SWindowRect& root, const boo::SWindowRect& sub) {
m_mv[0][0] = 2.0f / root.size[0]; m_mv[0][0] = 2.0f / root.size[0];
m_mv[1][1] = 2.0f / root.size[1]; m_mv[1][1] = 2.0f / root.size[1];

View File

@ -55,11 +55,11 @@ public:
}; };
class DefaultThemeData : public IThemeData { class DefaultThemeData : public IThemeData {
zeus::CColor m_uiText = zeus::CColor::skWhite; zeus::CColor m_uiText = zeus::skWhite;
zeus::CColor m_uiAltText = zeus::CColor::skGrey; zeus::CColor m_uiAltText = zeus::skGrey;
zeus::CColor m_fieldText = zeus::CColor::skBlack; zeus::CColor m_fieldText = zeus::skBlack;
zeus::CColor m_fieldMarkedText = {0.25, 0.25, 0.25, 1.0}; zeus::CColor m_fieldMarkedText = {0.25, 0.25, 0.25, 1.0};
zeus::CColor m_selectedFieldText = zeus::CColor::skWhite; zeus::CColor m_selectedFieldText = zeus::skWhite;
zeus::CColor m_vpBg = {0.2, 0.2, 0.2, 1.0}; zeus::CColor m_vpBg = {0.2, 0.2, 0.2, 1.0};
zeus::CColor m_tbBg = {0.2, 0.2, 0.2, 0.9}; zeus::CColor m_tbBg = {0.2, 0.2, 0.2, 0.9};

View File

@ -48,9 +48,9 @@ Button::Button(ViewResources& res, View& parentView, IButtonBinding* controlBind
m_verts[i].m_color = c2; m_verts[i].m_color = c2;
} else { } else {
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
m_verts[i].m_color = zeus::CColor::skClear; m_verts[i].m_color = zeus::skClear;
for (int i = 31; i < 35; ++i) for (int i = 31; i < 35; ++i)
m_verts[i].m_color = zeus::CColor::skClear; m_verts[i].m_color = zeus::skClear;
} }
for (int i = 28; i < 31; ++i) for (int i = 28; i < 31; ++i)
m_verts[i].m_color = m_textColor; m_verts[i].m_color = m_textColor;
@ -212,7 +212,7 @@ void Button::ButtonTarget::setInactive() {
m_button._loadVerts(); m_button._loadVerts();
} else { } else {
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
m_button.m_verts[i].m_color = zeus::CColor::skClear; m_button.m_verts[i].m_color = zeus::skClear;
m_button._loadVerts(); m_button._loadVerts();
m_button.m_text->colorGlyphs(m_button.m_textColor); m_button.m_text->colorGlyphs(m_button.m_textColor);
} }
@ -231,7 +231,7 @@ void Button::MenuTarget::setInactive() {
for (int i = 28; i < 31; ++i) for (int i = 28; i < 31; ++i)
m_button.m_verts[i].m_color = m_button.m_textColor; m_button.m_verts[i].m_color = m_button.m_textColor;
for (int i = 31; i < 35; ++i) for (int i = 31; i < 35; ++i)
m_button.m_verts[i].m_color = zeus::CColor::skClear; m_button.m_verts[i].m_color = zeus::skClear;
m_button._loadVerts(); m_button._loadVerts();
} }
} }
@ -320,7 +320,7 @@ void Button::ButtonTarget::setDisabled() {
m_button._loadVerts(); m_button._loadVerts();
} else { } else {
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
m_button.m_verts[i].m_color = zeus::CColor::skClear; m_button.m_verts[i].m_color = zeus::skClear;
m_button._loadVerts(); m_button._loadVerts();
zeus::CColor dimText = m_button.m_textColor; zeus::CColor dimText = m_button.m_textColor;
dimText[3] *= 0.5; dimText[3] *= 0.5;
@ -343,7 +343,7 @@ void Button::MenuTarget::setDisabled() {
for (int i = 28; i < 31; ++i) for (int i = 28; i < 31; ++i)
m_button.m_verts[i].m_color = dimText; m_button.m_verts[i].m_color = dimText;
for (int i = 31; i < 35; ++i) for (int i = 31; i < 35; ++i)
m_button.m_verts[i].m_color = zeus::CColor::skClear; m_button.m_verts[i].m_color = zeus::skClear;
m_button._loadVerts(); m_button._loadVerts();
} }
} }

View File

@ -16,7 +16,7 @@ IconView::IconView(ViewResources& res, View& parentView, Icon& icon) : View(res,
{{1, 0, 0}, icon.m_uvCoords[3]}, {{1, 0, 0}, icon.m_uvCoords[3]},
}; };
m_vertexBinding.load<decltype(verts)>(verts); m_vertexBinding.load<decltype(verts)>(verts);
setBackground(zeus::CColor::skBlue); setBackground(zeus::skBlue);
} }
void IconView::resized(const boo::SWindowRect& root, const boo::SWindowRect& sub) { void IconView::resized(const boo::SWindowRect& root, const boo::SWindowRect& sub) {

View File

@ -18,10 +18,10 @@ MessageWindow::MessageWindow(ViewResources& res, View& parentView, Type type, st
constraint() = RectangleConstraint(400 * res.pixelFactor(), 80 * res.pixelFactor() + m_text->nominalHeight()); constraint() = RectangleConstraint(400 * res.pixelFactor(), 80 * res.pixelFactor() + m_text->nominalHeight());
m_ok.m_view.reset(new Button(res, *this, &m_okBind, m_okBind.m_name, nullptr, Button::Style::Block, m_ok.m_view.reset(new Button(res, *this, &m_okBind, m_okBind.m_name, nullptr, Button::Style::Block,
zeus::CColor::skWhite, RectangleConstraint(150 * res.pixelFactor()))); zeus::skWhite, RectangleConstraint(150 * res.pixelFactor())));
if (type == Type::ConfirmOkCancel) if (type == Type::ConfirmOkCancel)
m_cancel.m_view.reset(new Button(res, *this, &m_cancelBind, m_cancelBind.m_name, nullptr, Button::Style::Block, m_cancel.m_view.reset(new Button(res, *this, &m_cancelBind, m_cancelBind.m_name, nullptr, Button::Style::Block,
zeus::CColor::skWhite, RectangleConstraint(150 * res.pixelFactor()))); zeus::skWhite, RectangleConstraint(150 * res.pixelFactor())));
updateContentOpacity(0.0); updateContentOpacity(0.0);
} }

View File

@ -122,12 +122,12 @@ void ModalWindow::setLineColors(float t) {
m_cornersOutline[0]->colorGlyphs(c1); m_cornersOutline[0]->colorGlyphs(c1);
if (t < 0.5) { if (t < 0.5) {
m_cornersOutline[1]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[1]->colorGlyphs(zeus::skClear);
m_cornersOutline[2]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[2]->colorGlyphs(zeus::skClear);
m_cornersOutline[3]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[3]->colorGlyphs(zeus::skClear);
} else if (t < 1.0) { } else if (t < 1.0) {
m_cornersOutline[1]->colorGlyphs(c2); m_cornersOutline[1]->colorGlyphs(c2);
m_cornersOutline[2]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[2]->colorGlyphs(zeus::skClear);
m_cornersOutline[3]->colorGlyphs(c2); m_cornersOutline[3]->colorGlyphs(c2);
} else { } else {
m_cornersOutline[1]->colorGlyphs(c2); m_cornersOutline[1]->colorGlyphs(c2);
@ -173,12 +173,12 @@ void ModalWindow::setLineColorsOut(float t) {
m_cornersOutline[2]->colorGlyphs(c1); m_cornersOutline[2]->colorGlyphs(c1);
if (t < 0.5) { if (t < 0.5) {
m_cornersOutline[1]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[1]->colorGlyphs(zeus::skClear);
m_cornersOutline[0]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[0]->colorGlyphs(zeus::skClear);
m_cornersOutline[3]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[3]->colorGlyphs(zeus::skClear);
} else if (t < 1.0) { } else if (t < 1.0) {
m_cornersOutline[1]->colorGlyphs(c2); m_cornersOutline[1]->colorGlyphs(c2);
m_cornersOutline[0]->colorGlyphs(zeus::CColor::skClear); m_cornersOutline[0]->colorGlyphs(zeus::skClear);
m_cornersOutline[3]->colorGlyphs(c2); m_cornersOutline[3]->colorGlyphs(c2);
} else { } else {
m_cornersOutline[1]->colorGlyphs(c2); m_cornersOutline[1]->colorGlyphs(c2);

View File

@ -85,11 +85,11 @@ void Table::_setHeaderVerts(const boo::SWindowRect& sub) {
zeus::CColor cm2 = *c2; zeus::CColor cm2 = *c2;
if (sCol == c) { if (sCol == c) {
if (sDir == SortDirection::Ascending) { if (sDir == SortDirection::Ascending) {
cm1 *= zeus::CColor::skGreen; cm1 *= zeus::skGreen;
cm2 *= zeus::CColor::skGreen; cm2 *= zeus::skGreen;
} else if (sDir == SortDirection::Descending) { } else if (sDir == SortDirection::Descending) {
cm1 *= zeus::CColor::skRed; cm1 *= zeus::skRed;
cm2 *= zeus::CColor::skRed; cm2 *= zeus::skRed;
} }
} }

View File

@ -99,13 +99,13 @@ void TextField::setText(std::string_view str) {
void TextField::setInactive() { void TextField::setInactive() {
const IThemeData& theme = rootView().themeData(); const IThemeData& theme = rootView().themeData();
if (m_error) { if (m_error) {
m_verts[0].m_color = theme.textfield1Inactive() * zeus::CColor::skRed; m_verts[0].m_color = theme.textfield1Inactive() * zeus::skRed;
m_verts[1].m_color = theme.textfield2Inactive() * zeus::CColor::skRed; m_verts[1].m_color = theme.textfield2Inactive() * zeus::skRed;
m_verts[2].m_color = theme.textfield1Inactive() * zeus::CColor::skRed; m_verts[2].m_color = theme.textfield1Inactive() * zeus::skRed;
m_verts[3].m_color = theme.textfield2Inactive() * zeus::CColor::skRed; m_verts[3].m_color = theme.textfield2Inactive() * zeus::skRed;
m_verts[4].m_color = theme.textfield2Inactive() * zeus::CColor::skRed; m_verts[4].m_color = theme.textfield2Inactive() * zeus::skRed;
for (int i = 5; i < 28; ++i) for (int i = 5; i < 28; ++i)
m_verts[i].m_color = theme.textfield2Inactive() * zeus::CColor::skRed; m_verts[i].m_color = theme.textfield2Inactive() * zeus::skRed;
} else { } else {
m_verts[0].m_color = theme.textfield1Inactive(); m_verts[0].m_color = theme.textfield1Inactive();
m_verts[1].m_color = theme.textfield2Inactive(); m_verts[1].m_color = theme.textfield2Inactive();
@ -122,13 +122,13 @@ void TextField::setInactive() {
void TextField::setHover() { void TextField::setHover() {
const IThemeData& theme = rootView().themeData(); const IThemeData& theme = rootView().themeData();
if (m_error) { if (m_error) {
m_verts[0].m_color = theme.textfield1Hover() * zeus::CColor::skRed; m_verts[0].m_color = theme.textfield1Hover() * zeus::skRed;
m_verts[1].m_color = theme.textfield2Hover() * zeus::CColor::skRed; m_verts[1].m_color = theme.textfield2Hover() * zeus::skRed;
m_verts[2].m_color = theme.textfield1Hover() * zeus::CColor::skRed; m_verts[2].m_color = theme.textfield1Hover() * zeus::skRed;
m_verts[3].m_color = theme.textfield2Hover() * zeus::CColor::skRed; m_verts[3].m_color = theme.textfield2Hover() * zeus::skRed;
m_verts[4].m_color = theme.textfield2Hover() * zeus::CColor::skRed; m_verts[4].m_color = theme.textfield2Hover() * zeus::skRed;
for (int i = 5; i < 28; ++i) for (int i = 5; i < 28; ++i)
m_verts[i].m_color = theme.textfield2Inactive() * zeus::CColor::skRed; m_verts[i].m_color = theme.textfield2Inactive() * zeus::skRed;
} else { } else {
m_verts[0].m_color = theme.textfield1Hover(); m_verts[0].m_color = theme.textfield1Hover();
m_verts[1].m_color = theme.textfield2Hover(); m_verts[1].m_color = theme.textfield2Hover();
@ -145,13 +145,13 @@ void TextField::setHover() {
void TextField::setDisabled() { void TextField::setDisabled() {
const IThemeData& theme = rootView().themeData(); const IThemeData& theme = rootView().themeData();
if (m_error) { if (m_error) {
m_verts[0].m_color = theme.textfield1Disabled() * zeus::CColor::skRed; m_verts[0].m_color = theme.textfield1Disabled() * zeus::skRed;
m_verts[1].m_color = theme.textfield2Disabled() * zeus::CColor::skRed; m_verts[1].m_color = theme.textfield2Disabled() * zeus::skRed;
m_verts[2].m_color = theme.textfield1Disabled() * zeus::CColor::skRed; m_verts[2].m_color = theme.textfield1Disabled() * zeus::skRed;
m_verts[3].m_color = theme.textfield2Disabled() * zeus::CColor::skRed; m_verts[3].m_color = theme.textfield2Disabled() * zeus::skRed;
m_verts[4].m_color = theme.textfield2Disabled() * zeus::CColor::skRed; m_verts[4].m_color = theme.textfield2Disabled() * zeus::skRed;
for (int i = 5; i < 28; ++i) for (int i = 5; i < 28; ++i)
m_verts[i].m_color = theme.textfield2Disabled() * zeus::CColor::skRed; m_verts[i].m_color = theme.textfield2Disabled() * zeus::skRed;
} else { } else {
m_verts[0].m_color = theme.textfield1Disabled(); m_verts[0].m_color = theme.textfield1Disabled();
m_verts[1].m_color = theme.textfield2Disabled(); m_verts[1].m_color = theme.textfield2Disabled();
@ -516,14 +516,14 @@ void TextField::think() {
errMult = m_viewVertBlock.m_color; errMult = m_viewVertBlock.m_color;
errBg = rootView().themeData().tooltipBackground() * m_viewVertBlock.m_color; errBg = rootView().themeData().tooltipBackground() * m_viewVertBlock.m_color;
} else if (m_errorFrames >= 360) { } else if (m_errorFrames >= 360) {
errMult = zeus::CColor::skClear; errMult = zeus::skClear;
errBg = rootView().themeData().tooltipBackground(); errBg = rootView().themeData().tooltipBackground();
errBg[3] = 0.0; errBg[3] = 0.0;
} else { } else {
float t = (m_errorFrames - 300) / 60.0; float t = (m_errorFrames - 300) / 60.0;
errMult = zeus::CColor::lerp(m_viewVertBlock.m_color, zeus::CColor::skClear, t); errMult = zeus::CColor::lerp(m_viewVertBlock.m_color, zeus::skClear, t);
errBg = zeus::CColor::lerp(rootView().themeData().tooltipBackground() * m_viewVertBlock.m_color, errBg = zeus::CColor::lerp(rootView().themeData().tooltipBackground() * m_viewVertBlock.m_color,
zeus::CColor::skClear, t); zeus::skClear, t);
} }
for (size_t i = 32; i < 41; ++i) for (size_t i = 32; i < 41; ++i)
m_verts[i].m_color = errBg; m_verts[i].m_color = errBg;
@ -782,7 +782,7 @@ void TextField::resized(const boo::SWindowRect& root, const boo::SWindowRect& su
m_verts[39].m_pos.assign(eX, eY + eHeight, 0); m_verts[39].m_pos.assign(eX, eY + eHeight, 0);
m_verts[40].m_pos.assign(eX + 14 * pf, eY + eHeight, 0); m_verts[40].m_pos.assign(eX + 14 * pf, eY + eHeight, 0);
for (size_t i = 32; i < 41; ++i) for (size_t i = 32; i < 41; ++i)
m_verts[i].m_color = zeus::CColor::skClear; m_verts[i].m_color = zeus::skClear;
} }
m_vertsBinding.load<decltype(m_verts)>(m_verts); m_vertsBinding.load<decltype(m_verts)>(m_verts);

View File

@ -35,7 +35,7 @@ Tooltip::Tooltip(ViewResources& res, View& parentView, std::string_view title, s
m_title.reset(new TextView(res, *this, res.m_heading14)); m_title.reset(new TextView(res, *this, res.m_heading14));
m_title->typesetGlyphs(m_titleStr); m_title->typesetGlyphs(m_titleStr);
m_message.reset(new MultiLineTextView(res, *this, res.m_mainFont)); m_message.reset(new MultiLineTextView(res, *this, res.m_mainFont));
m_message->typesetGlyphs(m_messageStr, zeus::CColor::skWhite, int(TOOLTIP_MAX_TEXT_WIDTH * res.pixelFactor())); m_message->typesetGlyphs(m_messageStr, zeus::skWhite, int(TOOLTIP_MAX_TEXT_WIDTH * res.pixelFactor()));
float pf = res.pixelFactor(); float pf = res.pixelFactor();
std::pair<int, int> margin = m_cornersOutline[0]->queryGlyphDimensions(0); std::pair<int, int> margin = m_cornersOutline[0]->queryGlyphDimensions(0);

@ -1 +1 @@
Subproject commit 9b4434e6e0e2cb35a966a0d699c3046e3848c874 Subproject commit b854e76dc9bc15f5fcdccfa4d7bb29d95d377058