1 /* CRT SwitchRes Core
2  * Copyright (C) 2018 Alphanu / Ben Templeman.
3  *
4  * RetroArch - A frontend for libretro.
5  *  Copyright (C) 2010-2014 - Hans-Kristian Arntzen
6  *  Copyright (C) 2011-2017 - Daniel De Matteis
7  *
8  *  RetroArch is free software: you can redistribute it and/or modify it under the terms
9  *  of the GNU General Public License as published by the Free Software Found-
10  *  ation, either version 3 of the License, or (at your option) any later version.
11  *
12  *  RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13  *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  *  PURPOSE.  See the GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License along with RetroArch.
17  *  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __VIDEO_CRT_SWITCH_H__
21 #define __VIDEO_CRT_SWITCH_H__
22 
23 #include <stdint.h>
24 
25 #include <boolean.h>
26 #include <retro_common_api.h>
27 
28 
29 RETRO_BEGIN_DECLS
30 
31 typedef struct videocrt_switch
32 {
33    double p_clock;
34 
35    int center_adjust;
36    int porch_adjust;
37    int tmp_porch_adjust;
38    int tmp_center_adjust;
39    int rtn;
40    unsigned ra_core_width;
41    unsigned ra_core_height;
42    unsigned ra_tmp_width;
43    unsigned ra_tmp_height;
44    unsigned ra_set_core_hz;
45    unsigned index;
46    unsigned int fb_width;
47    unsigned int fb_height;
48 
49    float ra_core_hz;
50    float sr_core_hz;
51    float ra_tmp_core_hz;
52    float fly_aspect;
53    float fb_ra_core_hz;
54 
55    bool sr2_active;
56    bool menu_active;
57    bool hh_core;
58 
59 
60 } videocrt_switch_t;
61 
62 void crt_switch_res_core(
63       videocrt_switch_t *p_switch,
64       unsigned naitive_width,
65       unsigned width,
66       unsigned height,
67       float hz,
68       unsigned crt_mode,
69       int crt_switch_center_adjust,
70       int crt_switch_porch_adjust,
71       int monitor_index,
72       bool dynamic,
73       int super_width,
74       bool hires_menu);
75 
76 void crt_destroy_modes(videocrt_switch_t *p_switch);
77 
78 RETRO_END_DECLS
79 
80 #endif
81