mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 10:35:11 -04:00
Initial WIP on DPI scaling for in-game
This commit is contained in:
parent
57d9b5f238
commit
c5b1b019d7
@ -550,7 +550,7 @@ void Entities_RenderNames(double delta) {
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (Entities.NamesMode == NAME_MODE_NONE) return;
|
if (Entities.NamesMode == NAME_MODE_NONE) return;
|
||||||
entities_closestId = Entities_GetCloset(&p->Base);
|
entities_closestId = Entities_GetClosest(&p->Base);
|
||||||
if (!p->Hacks.CanSeeAllNames || Entities.NamesMode != NAME_MODE_ALL) return;
|
if (!p->Hacks.CanSeeAllNames || Entities.NamesMode != NAME_MODE_ALL) return;
|
||||||
|
|
||||||
Gfx_SetTexturing(true);
|
Gfx_SetTexturing(true);
|
||||||
@ -634,7 +634,7 @@ void Entities_Remove(EntityID id) {
|
|||||||
Entities.List[id] = NULL;
|
Entities.List[id] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityID Entities_GetCloset(struct Entity* src) {
|
EntityID Entities_GetClosest(struct Entity* src) {
|
||||||
Vec3 eyePos = Entity_GetEyePosition(src);
|
Vec3 eyePos = Entity_GetEyePosition(src);
|
||||||
Vec3 dir = Vec3_GetDirVector(src->HeadY * MATH_DEG2RAD, src->HeadX * MATH_DEG2RAD);
|
Vec3 dir = Vec3_GetDirVector(src->HeadY * MATH_DEG2RAD, src->HeadX * MATH_DEG2RAD);
|
||||||
float closestDist = MATH_POS_INF;
|
float closestDist = MATH_POS_INF;
|
||||||
|
@ -144,7 +144,7 @@ void Entities_RenderHoveredNames(double delta);
|
|||||||
/* Removes the given entity, raising EntityEvents.Removed event. */
|
/* Removes the given entity, raising EntityEvents.Removed event. */
|
||||||
void Entities_Remove(EntityID id);
|
void Entities_Remove(EntityID id);
|
||||||
/* Gets the ID of the closest entity to the given entity. */
|
/* Gets the ID of the closest entity to the given entity. */
|
||||||
EntityID Entities_GetCloset(struct Entity* src);
|
EntityID Entities_GetClosest(struct Entity* src);
|
||||||
/* Draws shadows under entities, depending on Entities.ShadowsMode */
|
/* Draws shadows under entities, depending on Entities.ShadowsMode */
|
||||||
void Entities_DrawShadows(void);
|
void Entities_DrawShadows(void);
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@ static cc_uint8 priorities[GUI_MAX_SCREENS];
|
|||||||
void Widget_SetLocation(void* widget, cc_uint8 horAnchor, cc_uint8 verAnchor, int xOffset, int yOffset) {
|
void Widget_SetLocation(void* widget, cc_uint8 horAnchor, cc_uint8 verAnchor, int xOffset, int yOffset) {
|
||||||
struct Widget* w = (struct Widget*)widget;
|
struct Widget* w = (struct Widget*)widget;
|
||||||
w->horAnchor = horAnchor; w->verAnchor = verAnchor;
|
w->horAnchor = horAnchor; w->verAnchor = verAnchor;
|
||||||
w->xOffset = xOffset; w->yOffset = yOffset;
|
w->xOffset = Display_ScaleX(xOffset);
|
||||||
|
w->yOffset = Display_ScaleY(yOffset);
|
||||||
Widget_Reposition(w);
|
Widget_Reposition(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +466,7 @@ static void MouseStateUpdate(int button, bool pressed) {
|
|||||||
/* defer getting the targeted entity, as it's a costly operation */
|
/* defer getting the targeted entity, as it's a costly operation */
|
||||||
if (input_pickingId == -1) {
|
if (input_pickingId == -1) {
|
||||||
p = &LocalPlayer_Instance.Base;
|
p = &LocalPlayer_Instance.Base;
|
||||||
input_pickingId = Entities_GetCloset(p);
|
input_pickingId = Entities_GetClosest(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
input_buttonsDown[button] = pressed;
|
input_buttonsDown[button] = pressed;
|
||||||
|
@ -1855,6 +1855,7 @@ static void MenuOptionsScreen_FreeInput(struct MenuOptionsScreen* s) {
|
|||||||
Elem_TryFree(s->widgets[i]);
|
Elem_TryFree(s->widgets[i]);
|
||||||
s->widgets[i] = NULL;
|
s->widgets[i] = NULL;
|
||||||
}
|
}
|
||||||
|
Window_CloseKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuOptionsScreen_RedrawInput(struct MenuOptionsScreen* s) {
|
static void MenuOptionsScreen_RedrawInput(struct MenuOptionsScreen* s) {
|
||||||
@ -2001,7 +2002,9 @@ static void MenuOptionsScreen_Input(void* screen, void* widget) {
|
|||||||
ANCHOR_CENTRE, ANCHOR_CENTRE, 240, 110);
|
ANCHOR_CENTRE, ANCHOR_CENTRE, 240, 110);
|
||||||
Menu_Button(s, i - 3, &s->Default, 200, MenuOptionsScreen_Default,
|
Menu_Button(s, i - 3, &s->Default, 200, MenuOptionsScreen_Default,
|
||||||
ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 150);
|
ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 150);
|
||||||
|
|
||||||
MenuOptionsScreen_RedrawInput(s);
|
MenuOptionsScreen_RedrawInput(s);
|
||||||
|
Window_OpenKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuOptionsScreen_OnHacksChanged(void* screen) {
|
static void MenuOptionsScreen_OnHacksChanged(void* screen) {
|
||||||
@ -2043,7 +2046,9 @@ static void MenuOptionsScreen_Render(void* screen, double delta) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void MenuOptionsScreen_Free(void* screen) {
|
static void MenuOptionsScreen_Free(void* screen) {
|
||||||
|
struct MenuOptionsScreen* s = (struct MenuOptionsScreen*)screen;
|
||||||
Event_UnregisterVoid(&UserEvents.HackPermissionsChanged, screen, MenuOptionsScreen_OnHacksChanged);
|
Event_UnregisterVoid(&UserEvents.HackPermissionsChanged, screen, MenuOptionsScreen_OnHacksChanged);
|
||||||
|
if (s->activeI >= 0) Window_CloseKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuOptionsScreen_OnResize(void* screen) {
|
static void MenuOptionsScreen_OnResize(void* screen) {
|
||||||
|
@ -349,7 +349,6 @@ static void StatusScreen_ContextLost(void* screen) {
|
|||||||
static void StatusScreen_ContextRecreated(void* screen) {
|
static void StatusScreen_ContextRecreated(void* screen) {
|
||||||
static const String chars = String_FromConst("0123456789-, ()");
|
static const String chars = String_FromConst("0123456789-, ()");
|
||||||
static const String prefix = String_FromConst("Position: ");
|
static const String prefix = String_FromConst("Position: ");
|
||||||
static const String version = String_FromConst("0.30");
|
|
||||||
|
|
||||||
struct StatusScreen* s = (struct StatusScreen*)screen;
|
struct StatusScreen* s = (struct StatusScreen*)screen;
|
||||||
struct TextWidget* line1 = &s->line1;
|
struct TextWidget* line1 = &s->line1;
|
||||||
@ -374,7 +373,7 @@ static void StatusScreen_ContextRecreated(void* screen) {
|
|||||||
/* Swap around so 0.30 version is at top */
|
/* Swap around so 0.30 version is at top */
|
||||||
line2->yOffset = 2;
|
line2->yOffset = 2;
|
||||||
line1->yOffset = s->posAtlas.tex.Y;
|
line1->yOffset = s->posAtlas.tex.Y;
|
||||||
TextWidget_Set(line2, &version, &s->font);
|
TextWidget_SetConst(line2, "0.30", &s->font);
|
||||||
|
|
||||||
Widget_Reposition(line1);
|
Widget_Reposition(line1);
|
||||||
Widget_Reposition(line2);
|
Widget_Reposition(line2);
|
||||||
|
@ -88,11 +88,11 @@ void TextWidget_SetConst(struct TextWidget* w, const char* text, struct FontDesc
|
|||||||
*------------------------------------------------------ButtonWidget-------------------------------------------------------*
|
*------------------------------------------------------ButtonWidget-------------------------------------------------------*
|
||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
#define BUTTON_uWIDTH (200.0f / 256.0f)
|
#define BUTTON_uWIDTH (200.0f / 256.0f)
|
||||||
#define BUTTON_MIN_WIDTH 40
|
|
||||||
|
|
||||||
static struct Texture Button_ShadowTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,66, 200,86) };
|
static struct Texture btnShadowTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,66, 200,86) };
|
||||||
static struct Texture Button_SelectedTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,86, 200,106) };
|
static struct Texture btnSelectedTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,86, 200,106) };
|
||||||
static struct Texture Button_DisabledTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,46, 200,66) };
|
static struct Texture btnDisabledTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,46, 200,66) };
|
||||||
|
static int btnMinHeight;
|
||||||
|
|
||||||
static void ButtonWidget_Free(void* widget) {
|
static void ButtonWidget_Free(void* widget) {
|
||||||
struct ButtonWidget* w = (struct ButtonWidget*)widget;
|
struct ButtonWidget* w = (struct ButtonWidget*)widget;
|
||||||
@ -117,8 +117,8 @@ static void ButtonWidget_Render(void* widget, double delta) {
|
|||||||
struct Texture back;
|
struct Texture back;
|
||||||
float scale;
|
float scale;
|
||||||
|
|
||||||
back = w->active ? Button_SelectedTex : Button_ShadowTex;
|
back = w->active ? btnSelectedTex : btnShadowTex;
|
||||||
if (w->disabled) back = Button_DisabledTex;
|
if (w->disabled) back = btnDisabledTex;
|
||||||
|
|
||||||
back.ID = Gui_ClassicTexture ? Gui_GuiClassicTex : Gui_GuiTex;
|
back.ID = Gui_ClassicTexture ? Gui_GuiClassicTex : Gui_GuiTex;
|
||||||
back.X = w->x; back.Width = w->width;
|
back.X = w->x; back.Width = w->width;
|
||||||
@ -156,7 +156,8 @@ void ButtonWidget_Make(struct ButtonWidget* w, int minWidth, Widget_LeftClick on
|
|||||||
Widget_Reset(w);
|
Widget_Reset(w);
|
||||||
w->VTABLE = &ButtonWidget_VTABLE;
|
w->VTABLE = &ButtonWidget_VTABLE;
|
||||||
w->optName = NULL;
|
w->optName = NULL;
|
||||||
w->minWidth = minWidth;
|
w->minWidth = Display_ScaleX(minWidth);
|
||||||
|
btnMinHeight = Display_ScaleY(40);
|
||||||
w->MenuClick = onClick;
|
w->MenuClick = onClick;
|
||||||
Widget_SetLocation(w, horAnchor, verAnchor, xOffset, yOffset);
|
Widget_SetLocation(w, horAnchor, verAnchor, xOffset, yOffset);
|
||||||
}
|
}
|
||||||
@ -174,7 +175,7 @@ void ButtonWidget_Set(struct ButtonWidget* w, const String* text, struct FontDes
|
|||||||
}
|
}
|
||||||
|
|
||||||
w->width = max(w->tex.Width, w->minWidth);
|
w->width = max(w->tex.Width, w->minWidth);
|
||||||
w->height = max(w->tex.Height, BUTTON_MIN_WIDTH);
|
w->height = max(w->tex.Height, btnMinHeight);
|
||||||
Widget_Reposition(w);
|
Widget_Reposition(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1441,8 +1442,8 @@ void MenuInputWidget_Create(struct MenuInputWidget* w, int width, int height, co
|
|||||||
w->base.VTABLE = &MenuInputWidget_VTABLE;
|
w->base.VTABLE = &MenuInputWidget_VTABLE;
|
||||||
w->base.caretPos = -1;
|
w->base.caretPos = -1;
|
||||||
|
|
||||||
w->minWidth = width;
|
w->minWidth = Display_ScaleX(width);
|
||||||
w->minHeight = height;
|
w->minHeight = Display_ScaleY(height);
|
||||||
w->desc = *desc;
|
w->desc = *desc;
|
||||||
|
|
||||||
w->base.convertPercents = false;
|
w->base.convertPercents = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user