mirror of
https://github.com/wiiu-env/launchiine.git
synced 2024-11-25 11:16:51 +01:00
Update integer conversion
This commit is contained in:
parent
fd22a86dfa
commit
dba542d6b0
@ -1,5 +1,5 @@
|
||||
FROM ghcr.io/wiiu-env/devkitppc:20240704
|
||||
|
||||
COPY --from=wiiuenv/libgui:20220109 /artifacts $DEVKITPRO
|
||||
COPY --from=wiiuenv/libgui:2022020513505562e265 /artifacts $DEVKITPRO
|
||||
|
||||
WORKDIR project
|
||||
|
@ -154,11 +154,12 @@ void initExternalStorage() {
|
||||
|
||||
nn::spm::Finalize();
|
||||
}
|
||||
Application * Application::applicationInstance = nullptr;
|
||||
bool Application::exitApplication = false;
|
||||
bool Application::quitRequest = false;
|
||||
Application *Application::applicationInstance = nullptr;
|
||||
bool Application::exitApplication = false;
|
||||
bool Application::quitRequest = false;
|
||||
|
||||
Application::Application(): CThread(CThread::eAttributeAffCore1 | CThread::eAttributePinnedAff, 0, 0x800000), bgMusic(nullptr), video(nullptr), mainWindow(nullptr), fontSystem(nullptr), exitCode(0) {
|
||||
Application::Application()
|
||||
: CThread(CThread::eAttributeAffCore1 | CThread::eAttributePinnedAff, 0, 0x800000), bgMusic(nullptr), video(nullptr), mainWindow(nullptr), fontSystem(nullptr), exitCode(0) {
|
||||
controller[0] = new VPadController(GuiTrigger::CHANNEL_1);
|
||||
controller[1] = new WPadController(GuiTrigger::CHANNEL_2);
|
||||
controller[2] = new WPadController(GuiTrigger::CHANNEL_3);
|
||||
@ -167,13 +168,11 @@ Application::Application(): CThread(CThread::eAttributeAffCore1 | CThread::eAttr
|
||||
|
||||
//! create bgMusic
|
||||
bgMusic = new GuiSound(Resources::GetFile("bgMusic.ogg"), Resources::GetFileSize("bgMusic.ogg"));
|
||||
bgMusic -> SetLoop(true);
|
||||
bgMusic -> Play();
|
||||
bgMusic -> SetVolume(50);
|
||||
bgMusic->SetLoop(true);
|
||||
bgMusic->Play();
|
||||
bgMusic->SetVolume(50);
|
||||
|
||||
AsyncExecutor::execute([] {
|
||||
DEBUG_FUNCTION_LINE("Hello");
|
||||
});
|
||||
AsyncExecutor::execute([] { DEBUG_FUNCTION_LINE("Hello"); });
|
||||
|
||||
exitApplication = false;
|
||||
|
||||
@ -186,7 +185,7 @@ Application::~Application() {
|
||||
|
||||
DEBUG_FUNCTION_LINE("Destroy controller");
|
||||
|
||||
for (auto & i: controller) {
|
||||
for (auto &i : controller) {
|
||||
delete i;
|
||||
}
|
||||
|
||||
@ -212,20 +211,13 @@ int32_t Application::exec() {
|
||||
}
|
||||
|
||||
void Application::quit(int32_t code) {
|
||||
exitCode = code;
|
||||
exitCode = code;
|
||||
exitApplication = true;
|
||||
quitRequest = true;
|
||||
quitRequest = true;
|
||||
}
|
||||
|
||||
void Application::fadeOut() {
|
||||
GuiImage fadeOut(video->getTvWidth(), video->getTvHeight(), (GX2Color) {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
255
|
||||
});
|
||||
|
||||
glm::mat4 identityMatrix(1.0f);
|
||||
GuiImage fadeOut(video->getTvWidth(), video->getTvHeight(), (GX2Color){0, 0, 0, 255});
|
||||
|
||||
for (int32_t i = 0; i < 255; i += 10) {
|
||||
if (i > 255)
|
||||
@ -234,30 +226,30 @@ glm::mat4 identityMatrix(1.0f);
|
||||
fadeOut.setAlpha(i / 255.0f);
|
||||
|
||||
//! start rendering DRC
|
||||
video -> prepareDrcRendering();
|
||||
mainWindow -> drawDrc(video);
|
||||
video->prepareDrcRendering();
|
||||
mainWindow->drawDrc(video);
|
||||
|
||||
GX2SetDepthOnlyControl(GX2_DISABLE, GX2_DISABLE, GX2_COMPARE_FUNC_ALWAYS);
|
||||
fadeOut.draw(video, identityMatrix);
|
||||
fadeOut.draw(video);
|
||||
GX2SetDepthOnlyControl(GX2_ENABLE, GX2_ENABLE, GX2_COMPARE_FUNC_LEQUAL);
|
||||
|
||||
video -> drcDrawDone();
|
||||
video->drcDrawDone();
|
||||
|
||||
//! start rendering TV
|
||||
video -> prepareTvRendering();
|
||||
video->prepareTvRendering();
|
||||
|
||||
mainWindow -> drawTv(video);
|
||||
mainWindow->drawTv(video);
|
||||
|
||||
GX2SetDepthOnlyControl(GX2_DISABLE, GX2_DISABLE, GX2_COMPARE_FUNC_ALWAYS);
|
||||
fadeOut.draw(video, identityMatrix);
|
||||
fadeOut.draw(video);
|
||||
GX2SetDepthOnlyControl(GX2_ENABLE, GX2_ENABLE, GX2_COMPARE_FUNC_LEQUAL);
|
||||
|
||||
video -> tvDrawDone();
|
||||
video->tvDrawDone();
|
||||
|
||||
//! as last point update the effects as it can drop elements
|
||||
mainWindow -> updateEffects();
|
||||
mainWindow->updateEffects();
|
||||
|
||||
video -> waitForVSync();
|
||||
video->waitForVSync();
|
||||
}
|
||||
}
|
||||
|
||||
@ -265,63 +257,63 @@ bool Application::procUI() {
|
||||
bool executeProcess = false;
|
||||
|
||||
switch (ProcUIProcessMessages(true)) {
|
||||
case PROCUI_STATUS_EXITING: {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_EXITING");
|
||||
exitCode = EXIT_SUCCESS;
|
||||
exitApplication = true;
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_RELEASE_FOREGROUND: {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_RELEASE_FOREGROUND");
|
||||
if (video != nullptr) {
|
||||
// we can turn ofF the screen but we don't need to and it will display the last image
|
||||
video -> tvEnable(true);
|
||||
video -> drcEnable(true);
|
||||
|
||||
DEBUG_FUNCTION_LINE("delete fontSystem");
|
||||
delete fontSystem;
|
||||
fontSystem = nullptr;
|
||||
|
||||
DEBUG_FUNCTION_LINE("delete video");
|
||||
delete video;
|
||||
video = nullptr;
|
||||
|
||||
DEBUG_FUNCTION_LINE("deinitialze memory");
|
||||
libgui_memoryRelease();
|
||||
ProcUIDrawDoneRelease();
|
||||
} else {
|
||||
ProcUIDrawDoneRelease();
|
||||
case PROCUI_STATUS_EXITING: {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_EXITING");
|
||||
exitCode = EXIT_SUCCESS;
|
||||
exitApplication = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_IN_FOREGROUND: {
|
||||
if (!quitRequest) {
|
||||
if (video == nullptr) {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_IN_FOREGROUND");
|
||||
DEBUG_FUNCTION_LINE("initialze memory");
|
||||
libgui_memoryInitialize();
|
||||
case PROCUI_STATUS_RELEASE_FOREGROUND: {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_RELEASE_FOREGROUND");
|
||||
if (video != nullptr) {
|
||||
// we can turn ofF the screen but we don't need to and it will display the last image
|
||||
video->tvEnable(true);
|
||||
video->drcEnable(true);
|
||||
|
||||
DEBUG_FUNCTION_LINE("Initialize video");
|
||||
video = new CVideo(GX2_TV_SCAN_MODE_720P, GX2_DRC_RENDER_MODE_SINGLE);
|
||||
DEBUG_FUNCTION_LINE("Video size %i x %i", video -> getTvWidth(), video -> getTvHeight());
|
||||
DEBUG_FUNCTION_LINE("delete fontSystem");
|
||||
delete fontSystem;
|
||||
fontSystem = nullptr;
|
||||
|
||||
//! setup default Font
|
||||
DEBUG_FUNCTION_LINE("Initialize main font system");
|
||||
auto * fontSystem = new FreeTypeGX(Resources::GetFile("font.ttf"), Resources::GetFileSize("font.ttf"), true);
|
||||
GuiText::setPresetFont(fontSystem);
|
||||
DEBUG_FUNCTION_LINE("delete video");
|
||||
delete video;
|
||||
video = nullptr;
|
||||
|
||||
if (mainWindow == nullptr) {
|
||||
DEBUG_FUNCTION_LINE("Initialize main window");
|
||||
mainWindow = new MainWindow(video -> getTvWidth(), video -> getTvHeight());
|
||||
}
|
||||
DEBUG_FUNCTION_LINE("deinitialze memory");
|
||||
libgui_memoryRelease();
|
||||
ProcUIDrawDoneRelease();
|
||||
} else {
|
||||
ProcUIDrawDoneRelease();
|
||||
}
|
||||
executeProcess = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_IN_BACKGROUND:
|
||||
default:
|
||||
break;
|
||||
case PROCUI_STATUS_IN_FOREGROUND: {
|
||||
if (!quitRequest) {
|
||||
if (video == nullptr) {
|
||||
DEBUG_FUNCTION_LINE("PROCUI_STATUS_IN_FOREGROUND");
|
||||
DEBUG_FUNCTION_LINE("initialze memory");
|
||||
libgui_memoryInitialize();
|
||||
|
||||
DEBUG_FUNCTION_LINE("Initialize video");
|
||||
video = new CVideo(GX2_TV_SCAN_MODE_720P, GX2_DRC_RENDER_MODE_SINGLE);
|
||||
DEBUG_FUNCTION_LINE("Video size %i x %i", video->getTvWidth(), video->getTvHeight());
|
||||
|
||||
//! setup default Font
|
||||
DEBUG_FUNCTION_LINE("Initialize main font system");
|
||||
auto *fontSystem = new FreeTypeGX(Resources::GetFile("font.ttf"), Resources::GetFileSize("font.ttf"), true);
|
||||
GuiText::setPresetFont(fontSystem);
|
||||
|
||||
if (mainWindow == nullptr) {
|
||||
DEBUG_FUNCTION_LINE("Initialize main window");
|
||||
mainWindow = new MainWindow(video->getTvWidth(), video->getTvHeight());
|
||||
}
|
||||
}
|
||||
executeProcess = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PROCUI_STATUS_IN_BACKGROUND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return executeProcess;
|
||||
@ -336,43 +328,43 @@ void Application::executeThread() {
|
||||
continue;
|
||||
}
|
||||
|
||||
mainWindow -> lockGUI();
|
||||
mainWindow -> process();
|
||||
mainWindow->lockGUI();
|
||||
mainWindow->process();
|
||||
|
||||
//! Read out inputs
|
||||
for (auto & i: controller) {
|
||||
if (!i -> update(video -> getTvWidth(), video -> getTvHeight()))
|
||||
for (auto &i : controller) {
|
||||
if (!i->update(video->getTvWidth(), video->getTvHeight()))
|
||||
continue;
|
||||
|
||||
//! update controller states
|
||||
mainWindow -> update(i);
|
||||
mainWindow->update(i);
|
||||
}
|
||||
|
||||
//! start rendering DRC
|
||||
video -> prepareDrcRendering();
|
||||
mainWindow -> drawDrc(video);
|
||||
video -> drcDrawDone();
|
||||
video->prepareDrcRendering();
|
||||
mainWindow->drawDrc(video);
|
||||
video->drcDrawDone();
|
||||
|
||||
//! start rendering TV
|
||||
video -> prepareTvRendering();
|
||||
mainWindow -> drawTv(video);
|
||||
video -> tvDrawDone();
|
||||
video->prepareTvRendering();
|
||||
mainWindow->drawTv(video);
|
||||
video->tvDrawDone();
|
||||
|
||||
//! enable screen after first frame render
|
||||
if (video -> getFrameCount() == 0) {
|
||||
video -> tvEnable(true);
|
||||
video -> drcEnable(true);
|
||||
if (video->getFrameCount() == 0) {
|
||||
video->tvEnable(true);
|
||||
video->drcEnable(true);
|
||||
}
|
||||
|
||||
//! as last point update the effects as it can drop elements
|
||||
mainWindow -> updateEffects();
|
||||
mainWindow -> unlockGUI();
|
||||
mainWindow->updateEffects();
|
||||
mainWindow->unlockGUI();
|
||||
|
||||
video -> waitForVSync();
|
||||
video->waitForVSync();
|
||||
}
|
||||
|
||||
if (bgMusic) {
|
||||
bgMusic -> SetVolume(0);
|
||||
bgMusic->SetVolume(0);
|
||||
}
|
||||
|
||||
DEBUG_FUNCTION_LINE("delete mainWindow");
|
||||
@ -389,5 +381,4 @@ void Application::executeThread() {
|
||||
|
||||
DEBUG_FUNCTION_LINE("deinitialize memory");
|
||||
libgui_memoryRelease();
|
||||
|
||||
}
|
||||
}
|
@ -1,31 +1,23 @@
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2015 Dimok
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
#ifndef _APPLICATION_H
|
||||
#define _APPLICATION_H
|
||||
|
||||
#include "menu/MainWindow.h"
|
||||
#include "system/CThread.h"
|
||||
#include <gui/video/CVideo.h>
|
||||
#include "gui/video/CVideo.h"
|
||||
|
||||
// forward declaration
|
||||
class FreeTypeGX;
|
||||
|
||||
class Application : public CThread {
|
||||
public:
|
||||
Application();
|
||||
|
||||
virtual ~Application();
|
||||
|
||||
static Application *applicationInstance;
|
||||
static bool exitApplication;
|
||||
static bool quitRequest;
|
||||
|
||||
static Application *instance() {
|
||||
if (!applicationInstance)
|
||||
applicationInstance = new Application();
|
||||
@ -58,16 +50,9 @@ public:
|
||||
void quit(int code);
|
||||
|
||||
private:
|
||||
Application();
|
||||
|
||||
virtual ~Application();
|
||||
|
||||
bool procUI(void);
|
||||
|
||||
static Application *applicationInstance;
|
||||
static bool exitApplication;
|
||||
static bool quitRequest;
|
||||
|
||||
void executeThread(void);
|
||||
|
||||
GuiSound *bgMusic;
|
||||
@ -79,4 +64,4 @@ private:
|
||||
BOOL sFromHBL = FALSE;
|
||||
};
|
||||
|
||||
#endif //_APPLICATION_H
|
||||
#endif //_APPLICATION_H
|
@ -1,24 +1,7 @@
|
||||
/****************************************************************************
|
||||
* Copyright (C) 2015 Dimok
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
#include "MainWindow.h"
|
||||
#include "Application.h"
|
||||
#include "utils/StringTools.h"
|
||||
#include "utils/logger.h"
|
||||
|
||||
#include "GameSplashScreen.h"
|
||||
#include "gui/GuiIconGrid.h"
|
||||
#include "gui/GuiTitleBrowser.h"
|
||||
@ -27,7 +10,9 @@
|
||||
#include <coreinit/title.h>
|
||||
#include <future>
|
||||
#include <nn/acp/title.h>
|
||||
#include <sysapp/args.h>
|
||||
#include <sysapp/launch.h>
|
||||
#include <sysapp/switch.h>
|
||||
|
||||
MainWindow::MainWindow(int32_t w, int32_t h)
|
||||
: width(w), height(h), gameClickSound(Resources::GetSound("game_click.mp3")), mainSwitchButtonFrame(nullptr), currentTvFrame(nullptr), currentDrcFrame(nullptr) {
|
||||
@ -401,9 +386,6 @@ void MainWindow::OnGameLaunchSplashScreenFinished(GuiElement *element, gameInfo
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" int32_t SYSSwitchToBrowser(void *);
|
||||
extern "C" int32_t SYSSwitchToEShop(void *);
|
||||
extern "C" int32_t _SYSSwitchTo(uint32_t pfid);
|
||||
|
||||
void MainWindow::OnGameLaunch(uint64_t titleId) {
|
||||
DEBUG_FUNCTION_LINE("Launch GAME!!");
|
||||
@ -434,28 +416,28 @@ void MainWindow::OnGameLaunch(uint64_t titleId) {
|
||||
titleId == 0x000500301001810AL ||
|
||||
titleId == 0x000500301001820AL) {
|
||||
DEBUG_FUNCTION_LINE("Launching the Download Management");
|
||||
_SYSSwitchTo(12);
|
||||
_SYSSwitchTo(SYSAPP_PFID_DOWNLOAD_MANAGEMENT);
|
||||
return;
|
||||
}
|
||||
if (titleId == 0x000500301001600AL ||
|
||||
titleId == 0x000500301001610AL ||
|
||||
titleId == 0x000500301001620AL) {
|
||||
DEBUG_FUNCTION_LINE("Launching Miiverse");
|
||||
_SYSSwitchTo(9);
|
||||
_SYSSwitchTo(SYSAPP_PFID_MIIVERSE);
|
||||
return;
|
||||
}
|
||||
if (titleId == 0x000500301001500AL ||
|
||||
titleId == 0x000500301001510AL ||
|
||||
titleId == 0x000500301001520AL) {
|
||||
DEBUG_FUNCTION_LINE("Launching Friendlist");
|
||||
_SYSSwitchTo(11);
|
||||
_SYSSwitchTo(SYSAPP_PFID_FRIENDLIST);
|
||||
return;
|
||||
}
|
||||
if (titleId == 0x000500301001300AL ||
|
||||
titleId == 0x000500301001310AL ||
|
||||
titleId == 0x000500301001320AL) {
|
||||
DEBUG_FUNCTION_LINE("Launching TVii");
|
||||
_SYSSwitchTo(3);
|
||||
_SYSSwitchTo(SYSAPP_PFID_TVII);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include "MainDrcButtonsFrame.h"
|
||||
#include "game/GameList.h"
|
||||
#include "gui/GuiTitleBrowser.h"
|
||||
#include <gui/Gui.h>
|
||||
#include "gui/Gui.h"
|
||||
#include <queue>
|
||||
#include <vector>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user