From a87844818a3225483f5de2ecce547a8d5350525a Mon Sep 17 00:00:00 2001 From: Dominic Masters <dominic@domsplace.com> Date: Thu, 8 Dec 2022 23:00:33 -0800 Subject: [PATCH] Improved the standardization of UI --- assets/.~lock.Poker Gamedoc.docx# | 1 + assets/Poker Gamedoc.docx | Bin 0 -> 7189 bytes assets/betting mockup.png | Bin 0 -> 23087 bytes src/dawn/display/RenderPipeline.cpp | 3 +- .../visualnovel/ui/VisualNovelTextbox.cpp | 6 ---- .../visualnovel/ui/VisualNovelTextbox.hpp | 13 ++----- src/dawnpokergame/scenes/TestScene.hpp | 2 +- src/dawnpokergame/ui/PokerGameBorder.hpp | 32 ++++++++++++++++++ src/dawnpokergame/ui/PokerGameTextbox.hpp | 30 +++++++++------- src/dawnpokergame/ui/PokerPlayerDisplay.cpp | 23 +++++++++++-- src/dawnpokergame/ui/PokerPlayerDisplay.hpp | 12 +++++-- 11 files changed, 86 insertions(+), 36 deletions(-) create mode 100644 assets/.~lock.Poker Gamedoc.docx# create mode 100644 assets/Poker Gamedoc.docx create mode 100644 assets/betting mockup.png create mode 100644 src/dawnpokergame/ui/PokerGameBorder.hpp diff --git a/assets/.~lock.Poker Gamedoc.docx# b/assets/.~lock.Poker Gamedoc.docx# new file mode 100644 index 00000000..5b1dfa4c --- /dev/null +++ b/assets/.~lock.Poker Gamedoc.docx# @@ -0,0 +1 @@ +,DESKTOP-6I6NIQ7/domfi,DESKTOP-6I6NIQ7,08.12.2022 23:00,file:///C:/Users/domfi/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/assets/Poker Gamedoc.docx b/assets/Poker Gamedoc.docx new file mode 100644 index 0000000000000000000000000000000000000000..4aa15c3695e736593c0117ac45d20e51dbf2cc97 GIT binary patch literal 7189 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ℜ{;rq7 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 literal 0 HcmV?d00001 diff --git a/assets/betting mockup.png b/assets/betting mockup.png new file mode 100644 index 0000000000000000000000000000000000000000..c08a393183dd45a0bbe2fe18a42f86bf9c3fd6b5 GIT binary patch literal 23087 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�}@Kh+H`MjWq~VRxe( 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 Buq*%o literal 0 HcmV?d00001 diff --git a/src/dawn/display/RenderPipeline.cpp b/src/dawn/display/RenderPipeline.cpp index 1226f148..6addf8cd 100644 --- a/src/dawn/display/RenderPipeline.cpp +++ b/src/dawn/display/RenderPipeline.cpp @@ -127,8 +127,7 @@ void RenderPipeline::renderUI( // Clear / Bind / Update the render target. renderTarget->bind(); this->renderManager->setRenderFlags( - RENDER_MANAGER_RENDER_FLAG_BLEND | - RENDER_MANAGER_RENDER_FLAG_DEPTH_TEST + RENDER_MANAGER_RENDER_FLAG_BLEND ); // Prepare the UI Shader diff --git a/src/dawn/visualnovel/ui/VisualNovelTextbox.cpp b/src/dawn/visualnovel/ui/VisualNovelTextbox.cpp index a3d0a91a..0482a96d 100644 --- a/src/dawn/visualnovel/ui/VisualNovelTextbox.cpp +++ b/src/dawn/visualnovel/ui/VisualNovelTextbox.cpp @@ -142,12 +142,6 @@ void VisualNovelTextbox::drawSelf(UIShader *shader, glm::mat4 self) { } -void VisualNovelTextbox::setBorder(Texture *texture, glm::vec2 dimensions) { - this->border.texture = texture; - this->border.setBorderSize(dimensions); - this->updatePositions(); -} - void VisualNovelTextbox::setFont(Font *font) { this->label.setFont(font); this->label.updateMesh(); diff --git a/src/dawn/visualnovel/ui/VisualNovelTextbox.hpp b/src/dawn/visualnovel/ui/VisualNovelTextbox.hpp index 6ef73bb7..e1e7c719 100644 --- a/src/dawn/visualnovel/ui/VisualNovelTextbox.hpp +++ b/src/dawn/visualnovel/ui/VisualNovelTextbox.hpp @@ -19,8 +19,6 @@ namespace Dawn { int32_t lineCurrent = 0; glm::vec2 labelPadding = glm::vec2(0, 0); UIEmpty selfParent; - UIBorder border; - UILabel label; float_t timeCharacter = 0.0f; bool_t visible = false; @@ -41,6 +39,9 @@ namespace Dawn { int32_t getCountOfVisibleLines(); public: + UIBorder border; + UILabel label; + Event<> eventCharacterRevealed; Event<> eventCurrentCharactersRevealed; Event<> eventNewPage; @@ -66,14 +67,6 @@ namespace Dawn { */ void setFont(Font *font); - /** - * Sets the border information for this textbox. - * - * @param texture Texture to use for the border. - * @param dimensions Dimensions of the border. - */ - void setBorder(Texture *texture, glm::vec2 dimensions); - /** * Sets the string (label) for this textbox. * diff --git a/src/dawnpokergame/scenes/TestScene.hpp b/src/dawnpokergame/scenes/TestScene.hpp index b787a4d1..dfcbcce4 100644 --- a/src/dawnpokergame/scenes/TestScene.hpp +++ b/src/dawnpokergame/scenes/TestScene.hpp @@ -57,7 +57,7 @@ namespace Dawn { auto player = VNPenny::create(this); auto uiPlayer = canvas->addElement<PokerPlayerDisplay>(); - uiPlayer->setTransform(UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_STRETCH, glm::vec4(i * 220, 0, 0, 0), 0); + uiPlayer->setTransform(UI_COMPONENT_ALIGN_START, UI_COMPONENT_ALIGN_START, glm::vec4(i * 220, 0, 220, 200), 0); uiPlayer->setPlayer(player->getComponent<PokerPlayer>()); } diff --git a/src/dawnpokergame/ui/PokerGameBorder.hpp b/src/dawnpokergame/ui/PokerGameBorder.hpp new file mode 100644 index 00000000..b7d3a46b --- /dev/null +++ b/src/dawnpokergame/ui/PokerGameBorder.hpp @@ -0,0 +1,32 @@ +// Copyright (c) 2022 Dominic Masters +// +// This software is released under the MIT License. +// https://opensource.org/licenses/MIT + +#pragma once +#include "ui/UIBorder.hpp" +#include "asset/assets/TextureAsset.hpp" +#include "game/DawnGame.hpp" + +namespace Dawn { + class PokerGameBorder { + public: + static std::vector<Asset*> getAssets(AssetManager *man) { + return std::vector<Asset*>{ + man->get<TextureAsset>("texture_test") + }; + } + + static void apply(UIBorder *border) { + auto text = border->getGame()->assetManager.get<TextureAsset>("texture_test"); + border->texture = &text->texture; + border->setBorderSize(glm::vec2(16, 16)); + } + + static UIBorder * create(UICanvas *canvas) { + auto border = canvas->addElement<UIBorder>(); + PokerGameBorder::apply(border); + return border; + } + }; +} \ No newline at end of file diff --git a/src/dawnpokergame/ui/PokerGameTextbox.hpp b/src/dawnpokergame/ui/PokerGameTextbox.hpp index 48de8546..8c7b749e 100644 --- a/src/dawnpokergame/ui/PokerGameTextbox.hpp +++ b/src/dawnpokergame/ui/PokerGameTextbox.hpp @@ -4,31 +4,37 @@ // https://opensource.org/licenses/MIT #pragma once +#include "ui/PokerGameBorder.hpp" #include "visualnovel/ui/VisualNovelTextbox.hpp" -#include "asset/assets/TextureAsset.hpp" #include "asset/assets/TrueTypeAsset.hpp" namespace Dawn { class PokerGameTextbox { public: static std::vector<Asset*> getAssets(AssetManager *man) { - return std::vector<Asset*>{ - man->get<TrueTypeAsset>("truetype_ark"), - man->get<TextureAsset>("texture_test") - }; + assertNotNull(man); + + std::vector<Asset*> assets; + vectorAppend(&assets, &PokerGameBorder::getAssets(man)); + assets.push_back(man->get<TrueTypeAsset>("truetype_ark")); + return assets; } - static VisualNovelTextbox * create(UICanvas *canvas) { - auto assMan = &canvas->getGame()->assetManager; + static void apply(VisualNovelTextbox *textbox) { + assertNotNull(textbox); - auto assetFont = assMan->get<TrueTypeAsset>("truetype_ark"); - auto assetTexture = assMan->get<TextureAsset>("texture_test"); - - auto textbox = canvas->addElement<VisualNovelTextbox>(); - textbox->setBorder(&assetTexture->texture, glm::vec2(16, 16)); + auto assetFont = textbox->getGame()->assetManager.get<TrueTypeAsset>("truetype_ark"); + PokerGameBorder::apply(&textbox->border); textbox->setFont(&assetFont->font); textbox->setFontSize(40); textbox->setLabelPadding(glm::vec2(10, 8)); + } + + static VisualNovelTextbox * create(UICanvas *canvas) { + assertNotNull(canvas); + + auto textbox = canvas->addElement<VisualNovelTextbox>(); + PokerGameTextbox::apply(textbox); textbox->setTransform( UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END, glm::vec4(0, 238, 0, 0), diff --git a/src/dawnpokergame/ui/PokerPlayerDisplay.cpp b/src/dawnpokergame/ui/PokerPlayerDisplay.cpp index 325bd5ce..a28897c0 100644 --- a/src/dawnpokergame/ui/PokerPlayerDisplay.cpp +++ b/src/dawnpokergame/ui/PokerPlayerDisplay.cpp @@ -12,12 +12,31 @@ PokerPlayerDisplay::PokerPlayerDisplay(UICanvas *canvas) : UIEmpty(canvas), labelName(canvas), labelChips(canvas), + borderInner(canvas), + border(canvas), animChips(&animChipsValue) { this->font = getGame()->assetManager.get<TrueTypeAsset>("truetype_ark"); + // Border + this->addChild(&this->border); + PokerGameBorder::apply(&this->border); + this->border.setTransform( + UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_STRETCH, + glm::vec4(0, 0, 0, 0), + -0.0f + ); + + // Border Inner + this->addChild(&this->borderInner); + this->borderInner.setTransform( + UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_STRETCH, + glm::vec4(this->border.getBorderSize(), this->border.getBorderSize()), + 0.0f + ); + // Player Name - this->addChild(&this->labelName); + this->borderInner.addChild(&this->labelName); this->labelName.setText("Player Name"); this->labelName.setFont(&this->font->font); this->labelName.setFontSize(40); @@ -28,7 +47,7 @@ PokerPlayerDisplay::PokerPlayerDisplay(UICanvas *canvas) : ); // Chips label - this->addChild(&this->labelChips); + this->borderInner.addChild(&this->labelChips); this->labelChips.setFont(&this->font->font); this->labelChips.setFontSize(40); this->labelChips.setTransform( diff --git a/src/dawnpokergame/ui/PokerPlayerDisplay.hpp b/src/dawnpokergame/ui/PokerPlayerDisplay.hpp index 1f8054d9..e98829b5 100644 --- a/src/dawnpokergame/ui/PokerPlayerDisplay.hpp +++ b/src/dawnpokergame/ui/PokerPlayerDisplay.hpp @@ -6,10 +6,12 @@ #pragma once #include "ui/UILabel.hpp" #include "ui/UIEmpty.hpp" +#include "ui/UIBorder.hpp" #include "poker/PokerPlayer.hpp" #include "asset/AssetManager.hpp" #include "asset/assets/TrueTypeAsset.hpp" #include "display/animation/SimpleAnimation.hpp" +#include "ui/PokerGameBorder.hpp" namespace Dawn { class PokerPlayerDisplay : public UIEmpty { @@ -21,6 +23,9 @@ namespace Dawn { PokerPlayer *player = nullptr; UILabel labelName; UILabel labelChips; + UIEmpty borderInner; + UIBorder border; + TrueTypeAsset *font; void onPlayerChipsChanged(); @@ -28,9 +33,10 @@ namespace Dawn { public: static std::vector<Asset*> getAssets(AssetManager *assMan) { - return std::vector<Asset*>{ - assMan->get<TrueTypeAsset>("truetype_ark") - }; + std::vector<Asset*> assets; + vectorAppend(&assets, &PokerGameBorder::getAssets(assMan)); + assets.push_back(assMan->get<TrueTypeAsset>("truetype_ark")); + return assets; } PokerPlayerDisplay(UICanvas *canvas);