hocclk: overlay logo
This commit is contained in:
10
.claude/settings.local.json
Normal file
10
.claude/settings.local.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"PowerShell(\\(Get-Item \"c:\\\\Users\\\\sould\\\\Documents\\\\GitHub\\\\Horizon-OC\\\\Source\\\\hoc-clk\\\\assets\\\\hoc.rgba\"\\).Length)",
|
||||||
|
"PowerShell(python --version)",
|
||||||
|
"PowerShell(magick --version 2>$null)",
|
||||||
|
"PowerShell(convert --version 2>$null)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -22,12 +22,12 @@ BUILD := build
|
|||||||
OUTDIR := out
|
OUTDIR := out
|
||||||
RESOURCES := res
|
RESOURCES := res
|
||||||
SOURCES := src src/ui/gui src/ui/elements ../common/src ../common/src/client
|
SOURCES := src src/ui/gui src/ui/elements ../common/src ../common/src/client
|
||||||
DATA := data
|
DATA := data ../assets
|
||||||
INCLUDES := ../common/include
|
INCLUDES := ../common/include
|
||||||
EXEFS_SRC := exefs_src
|
EXEFS_SRC := exefs_src
|
||||||
IS_MINIMAL := 0
|
IS_MINIMAL := 0
|
||||||
|
|
||||||
APP_TITLE := Horizon OC Gaea
|
APP_TITLE := Horizon OC
|
||||||
NO_ICON := 1
|
NO_ICON := 1
|
||||||
|
|
||||||
|
|
||||||
@@ -166,6 +166,11 @@ $(OUTPUT).elf: $(OFILES)
|
|||||||
@echo $(notdir $<)
|
@echo $(notdir $<)
|
||||||
@$(bin2o)
|
@$(bin2o)
|
||||||
|
|
||||||
|
%.rgba.o : %.rgba
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
@echo $(notdir $<)
|
||||||
|
@$(bin2o)
|
||||||
|
|
||||||
-include $(DEPENDS)
|
-include $(DEPENDS)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------------
|
||||||
|
|||||||
Binary file not shown.
@@ -32,13 +32,25 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#define LOGO_X 20
|
#define LOGO_X 20
|
||||||
#define LOGO_Y 50
|
#define LOGO_Y 60
|
||||||
#define LOGO_LABEL_FONT_SIZE 45
|
#define LOGO_LABEL_FONT_SIZE 45
|
||||||
|
|
||||||
#define VERSION_X (LOGO_X + 250)
|
#define TEXT_Y 57
|
||||||
|
|
||||||
|
#define LOGO_IMG_W 50
|
||||||
|
#define LOGO_IMG_H 50
|
||||||
|
#define LOGO_IMG_PAD 8
|
||||||
|
#define LOGO_TEXT_X (LOGO_X + LOGO_IMG_W + LOGO_IMG_PAD)
|
||||||
|
|
||||||
|
#define VERSION_X (LOGO_TEXT_X + 185)
|
||||||
#define VERSION_Y (LOGO_Y - 40)
|
#define VERSION_Y (LOGO_Y - 40)
|
||||||
#define VERSION_FONT_SIZE 15
|
#define VERSION_FONT_SIZE 15
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
extern const u8 hoc_rgba[];
|
||||||
|
extern const u32 hoc_rgba_size;
|
||||||
|
}
|
||||||
|
|
||||||
std::string getVersionString() {
|
std::string getVersionString() {
|
||||||
char buf[0x100] = "";
|
char buf[0x100] = "";
|
||||||
Result rc = hocclkIpcGetVersionString(buf, sizeof(buf));
|
Result rc = hocclkIpcGetVersionString(buf, sizeof(buf));
|
||||||
@@ -48,10 +60,10 @@ std::string getVersionString() {
|
|||||||
return std::string(buf);
|
return std::string(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr tsl::Color dynamicLogoRGB1 = tsl::Color(0, 15, 3, 15);
|
static constexpr tsl::Color dynamicLogoRGB1 = tsl::Color( 7, 15, 15, 15);
|
||||||
static constexpr tsl::Color dynamicLogoRGB2 = tsl::Color(0, 8, 1, 15);
|
static constexpr tsl::Color dynamicLogoRGB2 = tsl::Color( 2, 8, 11, 15);
|
||||||
static constexpr tsl::Color STATIC_GREEN = tsl::Color(0, 15, 0, 15);
|
static constexpr tsl::Color STATIC_TEAL = tsl::Color( 7, 15, 15, 15);
|
||||||
const std::string name = "Horizon OC Gaea";
|
const std::string name = " Horizon OC";
|
||||||
|
|
||||||
static s32 drawDynamicUltraText(
|
static s32 drawDynamicUltraText(
|
||||||
tsl::gfx::Renderer* renderer,
|
tsl::gfx::Renderer* renderer,
|
||||||
@@ -67,7 +79,6 @@ static s32 drawDynamicUltraText(
|
|||||||
|
|
||||||
const u64 currentTime_ns = armTicksToNs(armGetSystemTick());
|
const u64 currentTime_ns = armTicksToNs(armGetSystemTick());
|
||||||
const double timeNow = static_cast<double>(currentTime_ns) / 1e9;
|
const double timeNow = static_cast<double>(currentTime_ns) / 1e9;
|
||||||
const double timeBase = fmod(timeNow, cycleDuration);
|
|
||||||
|
|
||||||
const double waveScale = 2.0 * M_PI / cycleDuration;
|
const double waveScale = 2.0 * M_PI / cycleDuration;
|
||||||
|
|
||||||
@@ -76,7 +87,7 @@ static s32 drawDynamicUltraText(
|
|||||||
char letter = name[i];
|
char letter = name[i];
|
||||||
if (letter == '\0') break;
|
if (letter == '\0') break;
|
||||||
|
|
||||||
double phase = waveScale * (timeBase + i * 0.12);
|
double phase = waveScale * (timeNow + i * 0.12);
|
||||||
|
|
||||||
double raw = cos(phase);
|
double raw = cos(phase);
|
||||||
double n = (raw + 1.0) * 0.5;
|
double n = (raw + 1.0) * 0.5;
|
||||||
@@ -87,13 +98,13 @@ static s32 drawDynamicUltraText(
|
|||||||
double brightness = 0.75 + glow * 0.25;
|
double brightness = 0.75 + glow * 0.25;
|
||||||
|
|
||||||
u8 r = static_cast<u8>(
|
u8 r = static_cast<u8>(
|
||||||
(dynamicLogoRGB1.r + (dynamicLogoRGB2.r - dynamicLogoRGB1.r) * blend) * brightness
|
((int)dynamicLogoRGB1.r + ((int)dynamicLogoRGB2.r - (int)dynamicLogoRGB1.r) * blend) * brightness
|
||||||
);
|
);
|
||||||
u8 g = static_cast<u8>(
|
u8 g = static_cast<u8>(
|
||||||
(dynamicLogoRGB1.g + (dynamicLogoRGB2.g - dynamicLogoRGB1.g) * blend) * brightness
|
((int)dynamicLogoRGB1.g + ((int)dynamicLogoRGB2.g - (int)dynamicLogoRGB1.g) * blend) * brightness
|
||||||
);
|
);
|
||||||
u8 b = static_cast<u8>(
|
u8 b = static_cast<u8>(
|
||||||
(dynamicLogoRGB1.b + (dynamicLogoRGB2.b - dynamicLogoRGB1.b) * blend) * brightness
|
((int)dynamicLogoRGB1.b + ((int)dynamicLogoRGB2.b - (int)dynamicLogoRGB1.b) * blend) * brightness
|
||||||
);
|
);
|
||||||
|
|
||||||
r = std::clamp<u8>(r, 0, 15);
|
r = std::clamp<u8>(r, 0, 15);
|
||||||
@@ -121,12 +132,14 @@ static s32 drawDynamicUltraText(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BaseGui::preDraw(tsl::gfx::Renderer* renderer) {
|
void BaseGui::preDraw(tsl::gfx::Renderer* renderer) {
|
||||||
|
renderer->drawBitmap(LOGO_X, LOGO_Y - LOGO_LABEL_FONT_SIZE, LOGO_IMG_W, LOGO_IMG_H, hoc_rgba);
|
||||||
|
|
||||||
drawDynamicUltraText(
|
drawDynamicUltraText(
|
||||||
renderer,
|
renderer,
|
||||||
LOGO_X,
|
LOGO_TEXT_X,
|
||||||
LOGO_Y,
|
TEXT_Y,
|
||||||
LOGO_LABEL_FONT_SIZE,
|
LOGO_LABEL_FONT_SIZE,
|
||||||
STATIC_GREEN,
|
STATIC_TEAL,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user