system cursor works
This commit is contained in:
parent
c3e7ff8e43
commit
0bbda15e1c
45
src/main.c
45
src/main.c
|
@ -513,7 +513,10 @@ static void processGamepad()
|
|||
static void pollEvent()
|
||||
{
|
||||
tic80_input* input = &platform.studio->tic->ram.input;
|
||||
input->mouse.btns = 0;
|
||||
|
||||
{
|
||||
input->mouse.btns = 0;
|
||||
}
|
||||
|
||||
SDL_Event event;
|
||||
|
||||
|
@ -784,6 +787,44 @@ static void renderGamepad()
|
|||
platform.gamepad.show = false;
|
||||
}
|
||||
|
||||
static void renderCursor()
|
||||
{
|
||||
if(platform.studio->tic->ram.vram.vars.cursor.system)
|
||||
{
|
||||
SDL_SystemCursor sdlCursor = SDL_SYSTEM_CURSOR_ARROW;
|
||||
|
||||
switch(platform.studio->tic->ram.vram.vars.cursor.sprite)
|
||||
{
|
||||
case tic_cursor_hand: sdlCursor = SDL_SYSTEM_CURSOR_HAND; break;
|
||||
case tic_cursor_ibeam: sdlCursor = SDL_SYSTEM_CURSOR_IBEAM; break;
|
||||
default: sdlCursor = SDL_SYSTEM_CURSOR_ARROW;
|
||||
}
|
||||
|
||||
SDL_SetCursor(SDL_CreateSystemCursor(sdlCursor));
|
||||
}
|
||||
else
|
||||
{
|
||||
// render cursor here
|
||||
}
|
||||
|
||||
// if(studioImpl.mode == TIC_RUN_MODE && !studioImpl.studio.tic->input.mouse)
|
||||
// {
|
||||
// SDL_ShowCursor(SDL_DISABLE);
|
||||
// return;
|
||||
// }
|
||||
// if(studioImpl.mode == TIC_RUN_MODE && studioImpl.studio.tic->ram.vram.vars.cursor)
|
||||
// {
|
||||
// SDL_ShowCursor(SDL_DISABLE);
|
||||
// blitCursor(studioImpl.studio.tic->ram.sprites.data[studioImpl.studio.tic->ram.vram.vars.cursor].data);
|
||||
// return;
|
||||
// }
|
||||
|
||||
// SDL_ShowCursor(getConfig()->theme.cursor.sprite >= 0 ? SDL_DISABLE : SDL_ENABLE);
|
||||
|
||||
// if(getConfig()->theme.cursor.sprite >= 0)
|
||||
// blitCursor(studioImpl.studio.tic->config.bank0.tiles.data[getConfig()->theme.cursor.sprite].data);
|
||||
}
|
||||
|
||||
static void tick()
|
||||
{
|
||||
pollEvent();
|
||||
|
@ -808,6 +849,8 @@ static void tick()
|
|||
|
||||
blitTexture();
|
||||
|
||||
renderCursor();
|
||||
|
||||
// if(platform.mode == TIC_RUN_MODE && platform.studio->tic->input.gamepad)
|
||||
renderGamepad();
|
||||
|
||||
|
|
11
src/studio.c
11
src/studio.c
|
@ -130,7 +130,7 @@ static struct
|
|||
|
||||
// SDL_Texture* texture;
|
||||
// const u8* src;
|
||||
tic_cursor system;
|
||||
// tic_cursor system;
|
||||
} mouse;
|
||||
|
||||
struct
|
||||
|
@ -1153,7 +1153,6 @@ bool checkMouseDown(const tic_rect* rect, s32 button)
|
|||
return state->down && pointInRect(&state->start, rect);
|
||||
}
|
||||
|
||||
|
||||
bool getGesturePos(tic_point* pos)
|
||||
{
|
||||
if(studioImpl.gesture.active)
|
||||
|
@ -1168,8 +1167,9 @@ bool getGesturePos(tic_point* pos)
|
|||
|
||||
void setCursor(tic_cursor id)
|
||||
{
|
||||
if(id != tic_cursor_arrow)
|
||||
studioImpl.mouse.system = id;
|
||||
tic_mem* tic = studioImpl.studio.tic;
|
||||
|
||||
tic->ram.vram.vars.cursor.sprite = id;
|
||||
}
|
||||
|
||||
void hideDialog()
|
||||
|
@ -2969,6 +2969,9 @@ static void processMouseStates()
|
|||
|
||||
tic_mem* tic = studioImpl.studio.tic;
|
||||
|
||||
tic->ram.vram.vars.cursor.sprite = tic_cursor_arrow;
|
||||
tic->ram.vram.vars.cursor.system = true;
|
||||
|
||||
for(int i = 0; i < COUNT_OF(studioImpl.mouse.state); i++)
|
||||
{
|
||||
MouseState* state = &studioImpl.mouse.state[i];
|
||||
|
|
Loading…
Reference in New Issue