mirror of
https://github.com/captain-amygdala/pistorm.git
synced 2026-02-11 02:30:03 +00:00
Add new RTG features to GUI
Aspect ratio and smoothing.
This commit is contained in:
@@ -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;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
@@ -527,6 +527,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;
|
||||
|
||||
@@ -554,3 +558,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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user