mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-10 07:49:57 -04:00
Add option for adjusting scale of scrollbar in inventory
This commit is contained in:
parent
19038d55a4
commit
315f8debee
@ -200,13 +200,15 @@ static void VP_DirtyUniform(int uniform) {
|
|||||||
static void VP_ReloadUniforms(void) {
|
static void VP_ReloadUniforms(void) {
|
||||||
VertexProgram* VP = VP_Active;
|
VertexProgram* VP = VP_Active;
|
||||||
if (!VP) return;
|
if (!VP) return;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (VP->dirtyUniforms & VP_UNI_MATRIX) {
|
if (VP->dirtyUniforms & VP_UNI_MATRIX) {
|
||||||
void *uniform_buffer;
|
void *uniform_buffer = NULL;
|
||||||
|
|
||||||
sceGxmReserveVertexDefaultUniformBuffer(gxm_context, &uniform_buffer);
|
ret = sceGxmReserveVertexDefaultUniformBuffer(gxm_context, &uniform_buffer);
|
||||||
sceGxmSetUniformDataF(uniform_buffer, VP->param_uni_mvp,
|
if (ret) Logger_Abort2(ret, "Reserving uniform buffer");
|
||||||
0, 4 * 4, transposed_mvp);
|
ret = sceGxmSetUniformDataF(uniform_buffer, VP->param_uni_mvp, 0, 4 * 4, transposed_mvp);
|
||||||
|
if (ret) Logger_Abort2(ret, "Updating uniform buffer");
|
||||||
|
|
||||||
VP->dirtyUniforms &= ~VP_UNI_MATRIX;
|
VP->dirtyUniforms &= ~VP_UNI_MATRIX;
|
||||||
}
|
}
|
||||||
@ -343,7 +345,7 @@ static void AllocRingBuffers(void) {
|
|||||||
static void AllocGXMContext(void) {
|
static void AllocGXMContext(void) {
|
||||||
SceGxmContextParams params = { 0 };
|
SceGxmContextParams params = { 0 };
|
||||||
|
|
||||||
params.hostMem = Mem_TryAlloc(1, SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE);
|
params.hostMem = Mem_Alloc(1, SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE, "Host memory");
|
||||||
params.hostMemSize = SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE;
|
params.hostMemSize = SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE;
|
||||||
|
|
||||||
params.vdmRingBufferMem = vdm_ring_buffer_addr;
|
params.vdmRingBufferMem = vdm_ring_buffer_addr;
|
||||||
|
@ -77,6 +77,7 @@ Copyright 2014-2023 ClassiCube | Licensed under BSD-3
|
|||||||
#define OPT_RAW_INPUT "win-raw-input"
|
#define OPT_RAW_INPUT "win-raw-input"
|
||||||
#define OPT_DPI_SCALING "win-dpi-scaling"
|
#define OPT_DPI_SCALING "win-dpi-scaling"
|
||||||
#define OPT_GAME_VERSION "game-version"
|
#define OPT_GAME_VERSION "game-version"
|
||||||
|
#define OPT_INV_SCROLLBAR_SCALE "inv-scrollbar-scale"
|
||||||
|
|
||||||
#define OPT_SELECTED_BLOCK_OUTLINE_COLOR "selected-block-outline-color"
|
#define OPT_SELECTED_BLOCK_OUTLINE_COLOR "selected-block-outline-color"
|
||||||
#define OPT_SELECTED_BLOCK_OUTLINE_OPACITY "selected-block-outline-opacity"
|
#define OPT_SELECTED_BLOCK_OUTLINE_OPACITY "selected-block-outline-opacity"
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "Input.h"
|
#include "Input.h"
|
||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
|
#include "Options.h"
|
||||||
|
|
||||||
#define CHAT_MAX_STATUS Array_Elems(Chat_Status)
|
#define CHAT_MAX_STATUS Array_Elems(Chat_Status)
|
||||||
#define CHAT_MAX_BOTTOMRIGHT Array_Elems(Chat_BottomRight)
|
#define CHAT_MAX_BOTTOMRIGHT Array_Elems(Chat_BottomRight)
|
||||||
@ -1593,7 +1594,7 @@ static void InventoryScreen_Init(void* screen) {
|
|||||||
s->maxVertices = TEXTWIDGET_MAX + TABLE_MAX_VERTICES;
|
s->maxVertices = TEXTWIDGET_MAX + TABLE_MAX_VERTICES;
|
||||||
|
|
||||||
TextWidget_Init(&s->title);
|
TextWidget_Init(&s->title);
|
||||||
TableWidget_Create(&s->table);
|
TableWidget_Create(&s->table, 22 * Options_GetFloat(OPT_INV_SCROLLBAR_SCALE, 0, 10, 1));
|
||||||
s->table.blocksPerRow = Inventory.BlocksPerRow;
|
s->table.blocksPerRow = Inventory.BlocksPerRow;
|
||||||
s->table.UpdateTitle = InventoryScreen_OnUpdateTitle;
|
s->table.UpdateTitle = InventoryScreen_OnUpdateTitle;
|
||||||
TableWidget_RecreateBlocks(&s->table);
|
TableWidget_RecreateBlocks(&s->table);
|
||||||
|
@ -360,10 +360,10 @@ static const struct WidgetVTABLE ScrollbarWidget_VTABLE = {
|
|||||||
Widget_InputDown, Widget_InputUp, ScrollbarWidget_MouseScroll,
|
Widget_InputDown, Widget_InputUp, ScrollbarWidget_MouseScroll,
|
||||||
ScrollbarWidget_PointerDown, ScrollbarWidget_PointerUp, ScrollbarWidget_PointerMove
|
ScrollbarWidget_PointerDown, ScrollbarWidget_PointerUp, ScrollbarWidget_PointerMove
|
||||||
};
|
};
|
||||||
void ScrollbarWidget_Create(struct ScrollbarWidget* w) {
|
void ScrollbarWidget_Create(struct ScrollbarWidget* w, int width) {
|
||||||
Widget_Reset(w);
|
Widget_Reset(w);
|
||||||
w->VTABLE = &ScrollbarWidget_VTABLE;
|
w->VTABLE = &ScrollbarWidget_VTABLE;
|
||||||
w->width = Display_ScaleX(22);
|
w->width = Display_ScaleX(width);
|
||||||
w->borderX = Display_ScaleX(2);
|
w->borderX = Display_ScaleX(2);
|
||||||
w->borderY = Display_ScaleY(2);
|
w->borderY = Display_ScaleY(2);
|
||||||
w->nubsWidth = Display_ScaleX(3);
|
w->nubsWidth = Display_ScaleX(3);
|
||||||
@ -972,12 +972,12 @@ static const struct WidgetVTABLE TableWidget_VTABLE = {
|
|||||||
TableWidget_PointerDown, TableWidget_PointerUp, TableWidget_PointerMove,
|
TableWidget_PointerDown, TableWidget_PointerUp, TableWidget_PointerMove,
|
||||||
TableWidget_BuildMesh, TableWidget_Render2
|
TableWidget_BuildMesh, TableWidget_Render2
|
||||||
};
|
};
|
||||||
void TableWidget_Create(struct TableWidget* w) {
|
void TableWidget_Create(struct TableWidget* w, int sbWidth) {
|
||||||
cc_bool classic;
|
cc_bool classic;
|
||||||
Widget_Reset(w);
|
Widget_Reset(w);
|
||||||
w->VTABLE = &TableWidget_VTABLE;
|
w->VTABLE = &TableWidget_VTABLE;
|
||||||
w->lastCreatedIndex = -1000;
|
w->lastCreatedIndex = -1000;
|
||||||
ScrollbarWidget_Create(&w->scroll);
|
ScrollbarWidget_Create(&w->scroll, sbWidth);
|
||||||
|
|
||||||
w->horAnchor = ANCHOR_CENTRE;
|
w->horAnchor = ANCHOR_CENTRE;
|
||||||
w->verAnchor = ANCHOR_CENTRE;
|
w->verAnchor = ANCHOR_CENTRE;
|
||||||
|
@ -62,7 +62,7 @@ struct ScrollbarWidget {
|
|||||||
int nubsWidth, offsets[3];
|
int nubsWidth, offsets[3];
|
||||||
};
|
};
|
||||||
/* Resets state of the given scrollbar widget to default. */
|
/* Resets state of the given scrollbar widget to default. */
|
||||||
CC_NOINLINE void ScrollbarWidget_Create(struct ScrollbarWidget* w);
|
CC_NOINLINE void ScrollbarWidget_Create(struct ScrollbarWidget* w, int width);
|
||||||
|
|
||||||
#define HOTBAR_CORE_VERTICES (INVENTORY_BLOCKS_PER_HOTBAR * ISOMETRICDRAWER_MAXVERTICES)
|
#define HOTBAR_CORE_VERTICES (INVENTORY_BLOCKS_PER_HOTBAR * ISOMETRICDRAWER_MAXVERTICES)
|
||||||
/* A row of blocks with a background. */
|
/* A row of blocks with a background. */
|
||||||
@ -111,7 +111,7 @@ struct TableWidget {
|
|||||||
int verticesCount;
|
int verticesCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
CC_NOINLINE void TableWidget_Create(struct TableWidget* w);
|
CC_NOINLINE void TableWidget_Create(struct TableWidget* w, int sbWidth);
|
||||||
/* Sets the selected block in the table to the given block. */
|
/* Sets the selected block in the table to the given block. */
|
||||||
/* Also adjusts scrollbar and moves cursor to be over the given block. */
|
/* Also adjusts scrollbar and moves cursor to be over the given block. */
|
||||||
CC_NOINLINE void TableWidget_SetBlockTo(struct TableWidget* w, BlockID block);
|
CC_NOINLINE void TableWidget_SetBlockTo(struct TableWidget* w, BlockID block);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user