mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 02:25:32 -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;
|
||||
|
||||
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;
|
||||
|
||||
Gfx_SetTexturing(true);
|
||||
@ -634,7 +634,7 @@ void Entities_Remove(EntityID id) {
|
||||
Entities.List[id] = NULL;
|
||||
}
|
||||
|
||||
EntityID Entities_GetCloset(struct Entity* src) {
|
||||
EntityID Entities_GetClosest(struct Entity* src) {
|
||||
Vec3 eyePos = Entity_GetEyePosition(src);
|
||||
Vec3 dir = Vec3_GetDirVector(src->HeadY * MATH_DEG2RAD, src->HeadX * MATH_DEG2RAD);
|
||||
float closestDist = MATH_POS_INF;
|
||||
|
@ -144,7 +144,7 @@ void Entities_RenderHoveredNames(double delta);
|
||||
/* Removes the given entity, raising EntityEvents.Removed event. */
|
||||
void Entities_Remove(EntityID id);
|
||||
/* 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 */
|
||||
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) {
|
||||
struct Widget* w = (struct Widget*)widget;
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -466,7 +466,7 @@ static void MouseStateUpdate(int button, bool pressed) {
|
||||
/* defer getting the targeted entity, as it's a costly operation */
|
||||
if (input_pickingId == -1) {
|
||||
p = &LocalPlayer_Instance.Base;
|
||||
input_pickingId = Entities_GetCloset(p);
|
||||
input_pickingId = Entities_GetClosest(p);
|
||||
}
|
||||
|
||||
input_buttonsDown[button] = pressed;
|
||||
|
@ -1855,6 +1855,7 @@ static void MenuOptionsScreen_FreeInput(struct MenuOptionsScreen* s) {
|
||||
Elem_TryFree(s->widgets[i]);
|
||||
s->widgets[i] = NULL;
|
||||
}
|
||||
Window_CloseKeyboard();
|
||||
}
|
||||
|
||||
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);
|
||||
Menu_Button(s, i - 3, &s->Default, 200, MenuOptionsScreen_Default,
|
||||
ANCHOR_CENTRE, ANCHOR_CENTRE, 0, 150);
|
||||
|
||||
MenuOptionsScreen_RedrawInput(s);
|
||||
Window_OpenKeyboard();
|
||||
}
|
||||
|
||||
static void MenuOptionsScreen_OnHacksChanged(void* screen) {
|
||||
@ -2043,7 +2046,9 @@ static void MenuOptionsScreen_Render(void* screen, double delta) {
|
||||
}
|
||||
|
||||
static void MenuOptionsScreen_Free(void* screen) {
|
||||
struct MenuOptionsScreen* s = (struct MenuOptionsScreen*)screen;
|
||||
Event_UnregisterVoid(&UserEvents.HackPermissionsChanged, screen, MenuOptionsScreen_OnHacksChanged);
|
||||
if (s->activeI >= 0) Window_CloseKeyboard();
|
||||
}
|
||||
|
||||
static void MenuOptionsScreen_OnResize(void* screen) {
|
||||
|
@ -349,7 +349,6 @@ static void StatusScreen_ContextLost(void* screen) {
|
||||
static void StatusScreen_ContextRecreated(void* screen) {
|
||||
static const String chars = String_FromConst("0123456789-, ()");
|
||||
static const String prefix = String_FromConst("Position: ");
|
||||
static const String version = String_FromConst("0.30");
|
||||
|
||||
struct StatusScreen* s = (struct StatusScreen*)screen;
|
||||
struct TextWidget* line1 = &s->line1;
|
||||
@ -374,7 +373,7 @@ static void StatusScreen_ContextRecreated(void* screen) {
|
||||
/* Swap around so 0.30 version is at top */
|
||||
line2->yOffset = 2;
|
||||
line1->yOffset = s->posAtlas.tex.Y;
|
||||
TextWidget_Set(line2, &version, &s->font);
|
||||
TextWidget_SetConst(line2, "0.30", &s->font);
|
||||
|
||||
Widget_Reposition(line1);
|
||||
Widget_Reposition(line2);
|
||||
|
@ -88,11 +88,11 @@ void TextWidget_SetConst(struct TextWidget* w, const char* text, struct FontDesc
|
||||
*------------------------------------------------------ButtonWidget-------------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
#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 Button_SelectedTex = { 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 btnShadowTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,66, 200,86) };
|
||||
static struct Texture btnSelectedTex = { GFX_NULL, Tex_Rect(0,0, 0,0), Widget_UV(0,86, 200,106) };
|
||||
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) {
|
||||
struct ButtonWidget* w = (struct ButtonWidget*)widget;
|
||||
@ -117,8 +117,8 @@ static void ButtonWidget_Render(void* widget, double delta) {
|
||||
struct Texture back;
|
||||
float scale;
|
||||
|
||||
back = w->active ? Button_SelectedTex : Button_ShadowTex;
|
||||
if (w->disabled) back = Button_DisabledTex;
|
||||
back = w->active ? btnSelectedTex : btnShadowTex;
|
||||
if (w->disabled) back = btnDisabledTex;
|
||||
|
||||
back.ID = Gui_ClassicTexture ? Gui_GuiClassicTex : Gui_GuiTex;
|
||||
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);
|
||||
w->VTABLE = &ButtonWidget_VTABLE;
|
||||
w->optName = NULL;
|
||||
w->minWidth = minWidth;
|
||||
w->minWidth = Display_ScaleX(minWidth);
|
||||
btnMinHeight = Display_ScaleY(40);
|
||||
w->MenuClick = onClick;
|
||||
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->height = max(w->tex.Height, BUTTON_MIN_WIDTH);
|
||||
w->height = max(w->tex.Height, btnMinHeight);
|
||||
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.caretPos = -1;
|
||||
|
||||
w->minWidth = width;
|
||||
w->minHeight = height;
|
||||
w->minWidth = Display_ScaleX(width);
|
||||
w->minHeight = Display_ScaleY(height);
|
||||
w->desc = *desc;
|
||||
|
||||
w->base.convertPercents = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user