Implement OverLayHandler
This commit is contained in:
parent
d4f12cb9b0
commit
b40f6d738e
81
renderd7.cpp
81
renderd7.cpp
@ -57,6 +57,7 @@ std::string mt_gpu;
|
||||
std::string mt_cmd;
|
||||
|
||||
bool shouldbe_disabled = false;
|
||||
int cnttttt = 0;
|
||||
int mt_screen;
|
||||
//int mt_width = mt_screen ? 320 : 400;
|
||||
float mt_txtSize;
|
||||
@ -167,6 +168,7 @@ void RenderD7::Exit::NdspFirm()
|
||||
void RenderD7::Msg::Display(std::string titletxt, std::string subtext, C3D_RenderTarget *target)
|
||||
{
|
||||
shouldbe_disabled = true;
|
||||
cnttttt = 0;
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, DSEVENBLACK);
|
||||
C2D_TargetClear(Bottom, DSEVENBLACK);
|
||||
@ -180,11 +182,11 @@ void RenderD7::Msg::Display(std::string titletxt, std::string subtext, C3D_Rende
|
||||
RenderD7::DrawText(5, 2, 0.7f, DSEVENWHITE, titletxt);
|
||||
RenderD7::DrawText(5, 30, 0.6f, DSEVENWHITE, subtext);
|
||||
C3D_FrameEnd(0);
|
||||
shouldbe_disabled = false;
|
||||
}
|
||||
void RenderD7::Msg::DisplayWithProgress(std::string titletext, std::string subtext, float current, float total, u32 prgbarcolor)
|
||||
{
|
||||
shouldbe_disabled = true;
|
||||
cnttttt = 0;
|
||||
RenderD7::ClearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, DSEVENBLACK);
|
||||
@ -202,7 +204,6 @@ void RenderD7::Msg::DisplayWithProgress(std::string titletext, std::string subte
|
||||
RenderD7::OnScreen(Bottom);
|
||||
RenderD7::DrawRect(0, 0, 320, 240, RenderD7::Color::Hex("#111111"));
|
||||
C3D_FrameEnd(0);
|
||||
shouldbe_disabled = false;
|
||||
}
|
||||
void RenderD7::SetupLog()
|
||||
{
|
||||
@ -239,6 +240,7 @@ void RenderD7::SpriteSheetAnimation::Play(float timespeed)
|
||||
void RenderD7::Error::DisplayError(std::string toptext, std::string errortext, int timesec)
|
||||
{
|
||||
shouldbe_disabled = true;
|
||||
cnttttt = 0;
|
||||
RenderD7::ClearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
C2D_TargetClear(Top, DSEVENBLACK);
|
||||
@ -250,12 +252,17 @@ void RenderD7::Error::DisplayError(std::string toptext, std::string errortext, i
|
||||
for (int i = 0; i < 60*timesec; i++) {
|
||||
RenderD7::DrawRect(0, 236, (int)(((float)i / (float)60*timesec) * 400.0f), 4, RenderD7::Color::Hex("#00ff00"));
|
||||
gspWaitForVBlank();
|
||||
if (i == 60*timesec) shouldbe_disabled = false;
|
||||
{
|
||||
/* code */
|
||||
}
|
||||
|
||||
}
|
||||
shouldbe_disabled = false;
|
||||
}
|
||||
void RenderD7::Error::DisplayFatalError(std::string toptext, std::string errortext)
|
||||
{
|
||||
shouldbe_disabled = true;
|
||||
cnttttt = 0;
|
||||
bool error___ = true;
|
||||
RenderD7::ClearTextBufs();
|
||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||
@ -273,7 +280,6 @@ void RenderD7::Error::DisplayFatalError(std::string toptext, std::string errorte
|
||||
RenderD7::ExitApp();
|
||||
}
|
||||
}
|
||||
shouldbe_disabled = false;
|
||||
}
|
||||
u32 RenderD7::Color::Hex(const std::string color, u8 a)
|
||||
{
|
||||
@ -360,7 +366,13 @@ bool RenderD7::MainLoop()
|
||||
frameloop();
|
||||
RenderD7::Scene::doDraw();
|
||||
RenderD7::Scene::doLogic(d7_hDown, d7_hHeld, d7_hUp, d7_touch);
|
||||
|
||||
cnttttt++;
|
||||
if (cnttttt > 90)
|
||||
{
|
||||
shouldbe_disabled = false;
|
||||
cnttttt = 0;
|
||||
}
|
||||
|
||||
return running;
|
||||
}
|
||||
|
||||
@ -1154,55 +1166,44 @@ void RenderD7::DSP_NF::Draw(void) const
|
||||
{
|
||||
RenderD7::OnScreen(Top);
|
||||
RenderD7::DrawRect(0, msgposy, 400, 70, RenderD7::Color::Hex("#111111"));
|
||||
RenderD7::DrawRect(0, 0, 20, 20, RenderD7::Color::Hex("#cccccc"));
|
||||
RenderD7::DrawRect(0, msgposy, 400, 25, RenderD7::Color::Hex("#222222"));
|
||||
RenderD7::DrawText(2, msgposy+5, 0.7f, RenderD7::Color::Hex("#ffffff"), "Warning! Code: 00027");
|
||||
RenderD7::DrawText(2, msgposy+30, 0.6f, RenderD7::Color::Hex("#ffffff"), "You cant use Sound effects because the file\n<<sdmc:/3ds/dspfirm.cdc>> was not found!");
|
||||
}
|
||||
|
||||
void RenderD7::DSP_NF::Logic()
|
||||
{
|
||||
for (int i = 0; i < 10*60; i++)
|
||||
this->delay++;
|
||||
if (msgposy > 170 && delay < 5*60) msgposy--;
|
||||
|
||||
if (delay >= 5*60)
|
||||
{
|
||||
msgposy--;
|
||||
if (msgposy < 240 - 70)
|
||||
{
|
||||
msgposy = 240 - 70;
|
||||
}
|
||||
msgposy++;
|
||||
if(msgposy > 400) this->Kill();
|
||||
}
|
||||
this->Kill();
|
||||
}
|
||||
|
||||
void OvlHandler()
|
||||
{
|
||||
//for (int i = 0; i < (int)overlays.size(); i++)
|
||||
//{
|
||||
/*if (!overlays[i].IsKilled())
|
||||
{
|
||||
overlays[i].Draw();
|
||||
overlays[i].Logic();
|
||||
}
|
||||
if (overlays[i].IsKilled())
|
||||
{
|
||||
overlays.erase(overlays.begin() + i);
|
||||
}*/
|
||||
if (!overlays.empty())
|
||||
{
|
||||
overlays.top()->Draw();
|
||||
}
|
||||
if (!overlays.empty())
|
||||
{
|
||||
overlays.top()->Logic();
|
||||
}
|
||||
if (!overlays.empty())
|
||||
{
|
||||
if (overlays.top()->IsKilled()) overlays.pop();
|
||||
}
|
||||
//}
|
||||
if (!overlays.empty())
|
||||
{
|
||||
overlays.top()->Draw();
|
||||
}
|
||||
if (!overlays.empty())
|
||||
{
|
||||
overlays.top()->Logic();
|
||||
}
|
||||
if (!overlays.empty())
|
||||
{
|
||||
if (overlays.top()->IsKilled()) overlays.pop();
|
||||
}
|
||||
|
||||
}
|
||||
int lp = 0;
|
||||
void RenderD7::FrameEnd()
|
||||
{
|
||||
if (metrikd && !shouldbe_disabled)RenderD7::DrawMetrikOvl();
|
||||
//OvlHandler();
|
||||
if (!shouldbe_disabled) OvlHandler();
|
||||
/*if (d7_hHeld & KEY_R && d7_hDown & KEY_SELECT)
|
||||
{
|
||||
RenderD7::LoadSettings();
|
||||
@ -1313,6 +1314,10 @@ void RenderD7::RSettings::Logic(u32 hDown, u32 hHeld, u32 hUp, touchPosition tou
|
||||
mt_screen = mt_screen ? 0 : 1;
|
||||
cfgstruct["metrik-settings"]["screen"] = mt_screen ? "1" : "0";
|
||||
}
|
||||
if (d7_hDown & KEY_TOUCH && RenderD7::touchTObj(d7_touch, buttons[5]))
|
||||
{
|
||||
RenderD7::AddOvl(std::make_unique<RenderD7::DSP_NF>());
|
||||
}
|
||||
if (d7_hDown & KEY_B)
|
||||
{
|
||||
cfgfile->write(cfgstruct);
|
||||
|
@ -34,7 +34,7 @@ extern "C"
|
||||
}
|
||||
|
||||
#define RENDERD7VSTRING "0.7.3"
|
||||
#define CHANGELOG "0.7.2: Implement MT to csv file saving. Add RGB2HEX. \n0.7.1: Add the New Overlay Handler. Its Just in code and does nothing yet. \n0.7.0: Made Big Progress In the MT Ovl but it still crashes On a Scnd C3D_FrameEnd(). Implement 800px but doesn't work that good. \n0.6.2: Fix Crash when exiting trouth Home Menu. \n0.6.10: rewrite Threadsystem, Improve framerate\n0.6.02: Fix Code in lang.hpp\nadd Draw Text Left Function.\nadd changelog\n0.6.01: add Threading system."
|
||||
#define CHANGELOG "0.7.3: Implement Over Render Overlay Framework\n0.7.2: Implement MT to csv file saving. Add RGB2HEX. \n0.7.1: Add the New Overlay Handler. Its Just in code and does nothing yet. \n0.7.0: Made Big Progress In the MT Ovl but it still crashes On a Scnd C3D_FrameEnd(). Implement 800px but doesn't work that good. \n0.6.2: Fix Crash when exiting trouth Home Menu. \n0.6.10: rewrite Threadsystem, Improve framerate\n0.6.02: Fix Code in lang.hpp\nadd Draw Text Left Function.\nadd changelog\n0.6.01: add Threading system."
|
||||
#define DEFAULT_CENTER 0.5f
|
||||
|
||||
extern C3D_RenderTarget* Top;
|
||||
@ -212,6 +212,7 @@ namespace RenderD7
|
||||
void Logic() override;
|
||||
private:
|
||||
int msgposy = 240;
|
||||
int delay = 0;
|
||||
};
|
||||
|
||||
void AddOvl(std::unique_ptr<RenderD7::Ovl> scene);
|
||||
|
Loading…
Reference in New Issue
Block a user