mirror of
https://github.com/simh/simh.git
synced 2026-05-04 06:58:38 +00:00
VAX,MicroVAX,QVSS: Video improvements
VIDEO: - Make mouse motion activity consistent with SDL relative direction. Add error output when mouse events are discarded due to queue full. If a client application delivers motion information in a different relative sense, then that application needs to make the adjustments from the SDL standard direction. - Added SHOW dev VIDEO capability to describe the underlying SDL video capabilities of the current SDL library and host execution environment. - Force software based rendering under SDL2. Enhanced debug info. - Added host OS cursor integration support. - Reorganize libSDL vs libSDL2 version implementation to leverage common logic without replication. QVSS: - Coalesced adjacent screen row updates to minimize vid_draw operations - Report all relative mouse motion in the mouse position register AND mouse motion data. - Added debugging information for cursor and scan line map updates - Add option "SET QVSS CAPTURED" to force capture input mode.
This commit is contained in:
18
sim_video.h
18
sim_video.h
@@ -158,8 +158,8 @@
|
||||
#define SIM_KEY_UNKNOWN 200
|
||||
|
||||
struct mouse_event {
|
||||
uint32 x_rel; /* X axis relative motion */
|
||||
uint32 y_rel; /* Y axis relative motion */
|
||||
int32 x_rel; /* X axis relative motion */
|
||||
int32 y_rel; /* Y axis relative motion */
|
||||
t_bool b1_state; /* state of button 1 */
|
||||
t_bool b2_state; /* state of button 2 */
|
||||
t_bool b3_state; /* state of button 3 */
|
||||
@@ -173,15 +173,19 @@ struct key_event {
|
||||
typedef struct mouse_event SIM_MOUSE_EVENT;
|
||||
typedef struct key_event SIM_KEY_EVENT;
|
||||
|
||||
t_stat vid_open (DEVICE *dptr, uint32 width, uint32 height);
|
||||
t_stat vid_open (DEVICE *dptr, uint32 width, uint32 height, int flags);
|
||||
#define SIM_VID_INPUTCAPTURED 1 /* Mouse and Keyboard input captured (calling */
|
||||
/* code responsible for cursor display in video) */
|
||||
t_stat vid_close (void);
|
||||
t_stat vid_poll_kb (SIM_KEY_EVENT *ev);
|
||||
t_stat vid_poll_mouse (SIM_MOUSE_EVENT *ev);
|
||||
void vid_draw (int32 x, int32 y, int32 w, int32 h, uint32 *buf);
|
||||
void vid_refresh (void);
|
||||
const char *vid_version (void);
|
||||
t_stat vid_set_cursor (t_bool visible, uint32 width, uint32 height, uint8 *data, uint8 *mask);
|
||||
t_stat vid_set_release_key (FILE* st, UNIT* uptr, int32 val, void* desc);
|
||||
t_stat vid_show_release_key (FILE* st, UNIT* uptr, int32 val, void* desc);
|
||||
t_stat vid_show_video (FILE* st, UNIT* uptr, int32 val, void* desc);
|
||||
|
||||
extern t_bool vid_active;
|
||||
extern uint32 vid_mono_palette[2];
|
||||
@@ -190,12 +194,12 @@ extern int32 vid_mouse_yrel; /* mouse cumulative y re
|
||||
extern t_bool vid_mouse_b1; /* mouse button 1 state */
|
||||
extern t_bool vid_mouse_b2; /* mouse button 2 state */
|
||||
extern t_bool vid_mouse_b3; /* mouse button 3 state */
|
||||
extern int32 vid_cursor_x; /* cursor x position (set by calling code) */
|
||||
extern int32 vid_cursor_y; /* cursor y position (set by calling code) */
|
||||
void vid_set_cursor_position (int32 x, int32 y); /* cursor position (set by calling code) */
|
||||
|
||||
#define SIM_VID_DBG_MOUSE 0x01000000
|
||||
#define SIM_VID_DBG_KEY 0x02000000
|
||||
#define SIM_VID_DBG_VIDEO 0x04000000
|
||||
#define SIM_VID_DBG_CURSOR 0x02000000
|
||||
#define SIM_VID_DBG_KEY 0x04000000
|
||||
#define SIM_VID_DBG_VIDEO 0x08000000
|
||||
|
||||
#endif /* USE_SIM_VIDEO */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user