Merge pull request #69 from LinuxJedi/rtg-gui

Add new RTG features to GUI
This commit is contained in:
beeanyew
2021-07-27 11:05:52 +02:00
committed by GitHub
10 changed files with 166 additions and 2 deletions

View File

@@ -641,6 +641,14 @@ uint32_t handle_pistorm_dev_read(uint32_t addr_, uint8_t type) {
DEBUG("[PISTORM-DEV] %s Read from RTGSTATUS\n", op_type_names[type]);
return (rtg_on << 1) | rtg_enabled;
break;
case PI_CMD_RTG_SCALING:
DEBUG("[PISTORM-DEV] %s Read from RTG_SCALING\n", op_type_names[type]);
return rtg_get_scale_mode();
break;
case PI_CMD_RTG_SCALE_FILTER:
DEBUG("[PISTORM-DEV] %s Read from RTG_SCALE_FILTER\n", op_type_names[type]);
return rtg_get_scale_filter();
break;
case PI_CMD_NETSTATUS:
DEBUG("[PISTORM-DEV] %s Read from NETSTATUS\n", op_type_names[type]);
return pinet_enabled;

View File

@@ -19,7 +19,7 @@
extern unsigned int pistorm_base_addr;
struct ReqToolsBase *ReqToolsBase;
#define VERSION "v0.3.7"
#define VERSION "v0.4.0"
#define button1w 54
#define button1h 11
@@ -128,6 +128,44 @@ struct Border SharedBordersInvert[] =
0, 0, 2, 0, JAM2, 5, (SHORT *) &SharedBordersPairs10[0], NULL,
};
UBYTE RTG_filter_buf[64] = "";
struct IntuiText RTG_filter_text =
{
1, 0, JAM2, 8, 2, &font, (UBYTE *)RTG_filter_buf, NULL
};
#define GADRTGFILTERBUTTON 16
struct Gadget RTGFilterButton =
{
NULL, 410, 19, button3w, button3h,
GADGHIMAGE,
RELVERIFY,
BOOLGADGET,
(APTR) &SharedBorders[2], (APTR) &SharedBordersInvert[2],
&RTG_filter_text, 0, NULL, GADRTGFILTERBUTTON, NULL
};
UBYTE RTG_scale_buf[64] = "";
struct IntuiText RTG_scale_text =
{
1, 0, JAM2, 8, 2, &font, (UBYTE *)RTG_scale_buf, NULL
};
#define GADRTGSCALEBUTTON 15
struct Gadget RTGScaleButton =
{
&RTGFilterButton, 300, 19, button3w, button3h,
GADGHIMAGE,
RELVERIFY,
BOOLGADGET,
(APTR) &SharedBorders[2], (APTR) &SharedBordersInvert[2],
&RTG_scale_text, 0, NULL, GADRTGSCALEBUTTON, NULL
};
struct IntuiText KickstartCommit_text =
{
1, 0, JAM2, 2, 2, &font, (UBYTE *)"Commit", NULL
@@ -137,7 +175,7 @@ struct IntuiText KickstartCommit_text =
struct Gadget KickstartCommit =
{
NULL, 433, 49, button1w, button1h,
&RTGScaleButton, 433, 49, button1w, button1h,
GADGHIMAGE,
RELVERIFY,
BOOLGADGET,
@@ -483,6 +521,53 @@ static void updateRTG(struct Window *window)
WriteGadgetText("Enable RTG", RTG_buf, window, &RTGButton, RTGENABLE_TXT_SIZE);
WriteGadgetText("RTG disabled", RTGStatus_buf, window, &RTGStatus, RTGSTATUS_TXT_SIZE);
}
unsigned short filter = pi_get_rtg_scale_mode();
switch (filter)
{
case PIGFX_SCALE_NONE:
WriteGadgetText("None", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_INTEGER_MAX:
WriteGadgetText("Max integer", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_FULL_ASPECT:
WriteGadgetText("Full aspect", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_FULL_43:
WriteGadgetText("Full 4:3", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_FULL_169:
WriteGadgetText("Full 16:9", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_FULL:
WriteGadgetText("Full", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_SCALE_CUSTOM:
case PIGFX_SCALE_CUSTOM_RECT:
case PIGFX_SCALE_NUM:
default:
WriteGadgetText("Custom", RTG_scale_buf, window, &RTGScaleButton, RTGENABLE_TXT_SIZE);
break;
}
unsigned short scale = pi_get_rtg_scale_filter();
switch (scale)
{
case PIGFX_FILTER_POINT:
WriteGadgetText("Point", RTG_filter_buf, window, &RTGFilterButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_FILTER_SMOOTH:
WriteGadgetText("Smooth", RTG_filter_buf, window, &RTGFilterButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_FILTER_SHADER:
WriteGadgetText("Shader", RTG_filter_buf, window, &RTGFilterButton, RTGENABLE_TXT_SIZE);
break;
case PIGFX_FILTER_NUM:
default:
WriteGadgetText("Custom", RTG_filter_buf, window, &RTGFilterButton, RTGENABLE_TXT_SIZE);
break;
}
}
static char *GetSavePath()
@@ -775,6 +860,53 @@ int main()
}
break;
}
case GADRTGSCALEBUTTON:
{
unsigned short scale = pi_get_rtg_scale_mode();
switch (scale)
{
case PIGFX_SCALE_NONE:
pi_set_rtg_scale_mode(PIGFX_SCALE_INTEGER_MAX);
break;
case PIGFX_SCALE_INTEGER_MAX:
pi_set_rtg_scale_mode(PIGFX_SCALE_FULL_ASPECT);
break;
case PIGFX_SCALE_FULL_ASPECT:
pi_set_rtg_scale_mode(PIGFX_SCALE_FULL_43);
break;
case PIGFX_SCALE_FULL_43:
pi_set_rtg_scale_mode(PIGFX_SCALE_FULL_169);
break;
case PIGFX_SCALE_FULL_169:
pi_set_rtg_scale_mode(PIGFX_SCALE_FULL);
break;
case PIGFX_SCALE_FULL:
case PIGFX_SCALE_CUSTOM:
case PIGFX_SCALE_CUSTOM_RECT:
case PIGFX_SCALE_NUM:
default:
pi_set_rtg_scale_mode(PIGFX_SCALE_NONE);
break;
}
updateRTG(myWindow);
}
case GADRTGFILTERBUTTON:
{
unsigned short filter = pi_get_rtg_scale_filter();
switch (filter)
{
case PIGFX_FILTER_POINT:
pi_set_rtg_scale_filter(PIGFX_FILTER_SMOOTH);
break;
case PIGFX_FILTER_SMOOTH:
case PIGFX_FILTER_SHADER:
case PIGFX_FILTER_NUM:
default:
pi_set_rtg_scale_filter(PIGFX_FILTER_POINT);
break;
}
updateRTG(myWindow);
}
}
}
if (closewin)

View File

@@ -257,6 +257,18 @@ unsigned short pi_get_temperature(void)
return short_val;
}
unsigned short pi_get_rtg_scale_mode(void)
{
READSHORT(PI_CMD_RTG_SCALING, short_val);
return short_val;
}
unsigned short pi_get_rtg_scale_filter(void)
{
READSHORT(PI_CMD_RTG_SCALE_FILTER, short_val);
return short_val;
}
// Generic feature status setting function.
// Example: pi_set_feature_status(PI_CMD_RTGSTATUS, 1) to enable RTG
// pi_set_feature_status(PI_CMD_PISCSI_CTRL, PISCSI_CTRL_ENABLE) to enable PiSCSI

View File

@@ -13,6 +13,8 @@ void pi_enable_net(unsigned short val);
void pi_enable_piscsi(unsigned short val);
unsigned short pi_get_temperature(void);
unsigned short pi_get_rtg_scale_mode(void);
unsigned short pi_get_rtg_scale_filter(void);
void pi_reset_amiga(unsigned short reset_code);
unsigned short pi_handle_config(unsigned char cmd, char *str);

Binary file not shown.

View File

@@ -528,6 +528,10 @@ void rtg_set_scale_mode(uint16_t _scale_mode) {
}
}
uint16_t rtg_get_scale_mode() {
return scale_mode;
}
void rtg_set_scale_rect(uint16_t _scale_mode, int16_t x1, int16_t y1, int16_t x2, int16_t y2) {
scale_mode = _scale_mode;
@@ -555,3 +559,7 @@ void rtg_set_scale_rect(uint16_t _scale_mode, int16_t x1, int16_t y1, int16_t x2
void rtg_set_scale_filter(uint16_t _filter_mode) {
filter_mode = _filter_mode;
}
uint16_t rtg_get_scale_filter() {
return filter_mode;
}

View File

@@ -25,8 +25,10 @@ void rtg_set_mouse_cursor_image(uint8_t *src, uint8_t w, uint8_t h);
void rtg_show_fps(uint8_t enable);
void rtg_set_scale_mode(uint16_t scale_mode);
uint16_t rtg_get_scale_mode();
void rtg_set_scale_rect(uint16_t scale_mode, int16_t x1, int16_t y1, int16_t x2, int16_t y2);
void rtg_set_scale_filter(uint16_t _filter_mode);
uint16_t rtg_get_scale_filter();
void rtg_palette_debug(uint8_t enable);
int init_rtg_data(struct emulator_config *cfg);