ALL: Huge upstream synch + PerRom DelaySI & CountPerOp parameters
[mupen64plus-pandora.git] / source / gles2glide64 / src / Glide64 / m64p.h
1 /******************************************************************************
2  * Glide64 - Glide video plugin for Nintendo 64 emulators.
3  * http://bitbucket.org/richard42/mupen64plus-video-glide64mk2/
4  *
5  * Copyright (C) 2010 Jon Ring
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20  *****************************************************************************/
21
22 #ifndef M64P_H
23 #define M64P_H
24
25 #ifndef OLDAPI
26
27 #include "m64p_types.h"
28 #include "m64p_plugin.h"
29 #include "m64p_common.h"
30 #include "m64p_config.h"
31 #include "m64p_vidext.h"
32 #include "winlnxdefs.h"
33 #include <stdio.h>
34
35 #define PLUGIN_NAME                 "Glide64mk2 Video Plugin"
36 #define PLUGIN_VERSION              0x020000
37 #define VIDEO_PLUGIN_API_VERSION        0x020200
38 #define CONFIG_API_VERSION          0x020000
39 #define VIDEXT_API_VERSION          0x030000
40
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 void WriteLog(m64p_msg_level level, const char *msg, ...);
45 #ifdef __cplusplus
46 }
47 #endif
48
49 //The Glide API originally used an integer to pick an enumerated resolution.
50 //To accomodate arbitrary resolutions, pack it into a 32-bit struct
51 //so we don't have to change function signatures
52 union PackedScreenResolution
53 {
54     struct 
55     {
56         int width : 16;
57         int height : 15;
58         int fullscreen : 1;
59     };
60     int resolution;
61 };
62
63
64 /* definitions of pointers to Core config functions */
65 extern ptr_ConfigOpenSection      ConfigOpenSection;
66 extern ptr_ConfigSetParameter     ConfigSetParameter;
67 extern ptr_ConfigGetParameter     ConfigGetParameter;
68 extern ptr_ConfigGetParameterHelp ConfigGetParameterHelp;
69 extern ptr_ConfigSetDefaultInt    ConfigSetDefaultInt;
70 extern ptr_ConfigSetDefaultFloat  ConfigSetDefaultFloat;
71 extern ptr_ConfigSetDefaultBool   ConfigSetDefaultBool;
72 extern ptr_ConfigSetDefaultString ConfigSetDefaultString;
73 extern ptr_ConfigGetParamInt      ConfigGetParamInt;
74 extern ptr_ConfigGetParamFloat    ConfigGetParamFloat;
75 extern ptr_ConfigGetParamBool     ConfigGetParamBool;
76 extern ptr_ConfigGetParamString   ConfigGetParamString;
77
78 extern ptr_ConfigGetSharedDataFilepath ConfigGetSharedDataFilepath;
79 extern ptr_ConfigGetUserConfigPath     ConfigGetUserConfigPath;
80 extern ptr_ConfigGetUserDataPath       ConfigGetUserDataPath;
81 extern ptr_ConfigGetUserCachePath      ConfigGetUserCachePath;
82
83
84 extern ptr_VidExt_Init                  CoreVideo_Init;
85 extern ptr_VidExt_Quit                  CoreVideo_Quit;
86 extern ptr_VidExt_ListFullscreenModes   CoreVideo_ListFullscreenModes;
87 extern ptr_VidExt_SetVideoMode          CoreVideo_SetVideoMode;
88 extern ptr_VidExt_SetCaption            CoreVideo_SetCaption;
89 extern ptr_VidExt_ToggleFullScreen      CoreVideo_ToggleFullScreen;
90 extern ptr_VidExt_ResizeWindow          CoreVideo_ResizeWindow;
91 extern ptr_VidExt_GL_GetProcAddress     CoreVideo_GL_GetProcAddress;
92 extern ptr_VidExt_GL_SetAttribute       CoreVideo_GL_SetAttribute;
93 extern ptr_VidExt_GL_SwapBuffers        CoreVideo_GL_SwapBuffers;
94
95 #else
96
97 #include <wx/wx.h>
98 #include <wx/fileconf.h>
99 #include <wx/wfstream.h>
100
101
102 #endif
103
104 #endif