3f47cf6a10c82ebaa9b0e4f2b30d2deecfb36735
[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 void WriteLog(m64p_msg_level level, const char *msg, ...);
42
43 //The Glide API originally used an integer to pick an enumerated resolution.
44 //To accomodate arbitrary resolutions, pack it into a 32-bit struct
45 //so we don't have to change function signatures
46 union PackedScreenResolution
47 {
48     struct 
49     {
50         int width : 16;
51         int height : 15;
52         int fullscreen : 1;
53     };
54     int resolution;
55 };
56
57
58 /* definitions of pointers to Core config functions */
59 extern ptr_ConfigOpenSection      ConfigOpenSection;
60 extern ptr_ConfigSetParameter     ConfigSetParameter;
61 extern ptr_ConfigGetParameter     ConfigGetParameter;
62 extern ptr_ConfigGetParameterHelp ConfigGetParameterHelp;
63 extern ptr_ConfigSetDefaultInt    ConfigSetDefaultInt;
64 extern ptr_ConfigSetDefaultFloat  ConfigSetDefaultFloat;
65 extern ptr_ConfigSetDefaultBool   ConfigSetDefaultBool;
66 extern ptr_ConfigSetDefaultString ConfigSetDefaultString;
67 extern ptr_ConfigGetParamInt      ConfigGetParamInt;
68 extern ptr_ConfigGetParamFloat    ConfigGetParamFloat;
69 extern ptr_ConfigGetParamBool     ConfigGetParamBool;
70 extern ptr_ConfigGetParamString   ConfigGetParamString;
71
72 extern ptr_ConfigGetSharedDataFilepath ConfigGetSharedDataFilepath;
73 extern ptr_ConfigGetUserConfigPath     ConfigGetUserConfigPath;
74 extern ptr_ConfigGetUserDataPath       ConfigGetUserDataPath;
75 extern ptr_ConfigGetUserCachePath      ConfigGetUserCachePath;
76
77
78 extern ptr_VidExt_Init                  CoreVideo_Init;
79 extern ptr_VidExt_Quit                  CoreVideo_Quit;
80 extern ptr_VidExt_ListFullscreenModes   CoreVideo_ListFullscreenModes;
81 extern ptr_VidExt_SetVideoMode          CoreVideo_SetVideoMode;
82 extern ptr_VidExt_SetCaption            CoreVideo_SetCaption;
83 extern ptr_VidExt_ToggleFullScreen      CoreVideo_ToggleFullScreen;
84 extern ptr_VidExt_ResizeWindow          CoreVideo_ResizeWindow;
85 extern ptr_VidExt_GL_GetProcAddress     CoreVideo_GL_GetProcAddress;
86 extern ptr_VidExt_GL_SetAttribute       CoreVideo_GL_SetAttribute;
87 extern ptr_VidExt_GL_SwapBuffers        CoreVideo_GL_SwapBuffers;
88
89 #else
90
91 #include <wx/wx.h>
92 #include <wx/fileconf.h>
93 #include <wx/wfstream.h>
94
95
96 #endif
97
98 #endif