mirror of
https://github.com/libretro/RetroArch
synced 2025-02-19 12:41:00 +00:00
54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
|
/**************************************************************
|
||
|
|
||
|
custom_video_ati.h - ATI legacy library header
|
||
|
|
||
|
---------------------------------------------------------
|
||
|
|
||
|
Switchres Modeline generation engine for emulation
|
||
|
|
||
|
License GPL-2.0+
|
||
|
Copyright 2010-2021 Chris Kennedy, Antonio Giner,
|
||
|
Alexandre Wodarczyk, Gil Delescluse
|
||
|
|
||
|
**************************************************************/
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include "custom_video.h"
|
||
|
|
||
|
#define CRTC_DOUBLE_SCAN 0x0001
|
||
|
#define CRTC_INTERLACED 0x0002
|
||
|
#define CRTC_H_SYNC_POLARITY 0x0004
|
||
|
#define CRTC_V_SYNC_POLARITY 0x0008
|
||
|
|
||
|
class ati_timing : public custom_video
|
||
|
{
|
||
|
public:
|
||
|
ati_timing(char *device_name, custom_video_settings *vs);
|
||
|
~ati_timing() {};
|
||
|
const char *api_name() { return "ATI Legacy"; }
|
||
|
bool init();
|
||
|
int caps() { return CUSTOM_VIDEO_CAPS_UPDATE | CUSTOM_VIDEO_CAPS_SCAN_EDITABLE; }
|
||
|
|
||
|
bool update_mode(modeline *mode);
|
||
|
|
||
|
bool get_timing(modeline *mode);
|
||
|
bool set_timing(modeline *mode);
|
||
|
|
||
|
bool process_modelist(std::vector<modeline *>);
|
||
|
|
||
|
private:
|
||
|
void refresh_timings(void);
|
||
|
|
||
|
int get_DWORD(int i, char *lp_data);
|
||
|
int get_DWORD_BCD(int i, char *lp_data);
|
||
|
void set_DWORD(char *data_string, UINT32 data_word, int offset);
|
||
|
void set_DWORD_BCD(char *data_string, UINT32 data_word, int offset);
|
||
|
int os_version(void);
|
||
|
bool is_elevated();
|
||
|
int win_interlace_factor(modeline *mode);
|
||
|
|
||
|
char m_device_name[32];
|
||
|
char m_device_key[256];
|
||
|
int win_version;
|
||
|
};
|