]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid.h
physics: fix and refactor unsticking
[xonotic/darkplaces.git] / vid.h
diff --git a/vid.h b/vid.h
index 5a22072fe90d49ca53346dc8ab774c68bb35076c..1fc93ef7c09284c3e7a360f00c0a84d05c368e6a 100644 (file)
--- a/vid.h
+++ b/vid.h
@@ -54,12 +54,13 @@ viddef_support_t;
 
 typedef struct viddef_mode_s
 {
+       int display;
+       qbool fullscreen;
+       qbool desktopfullscreen; ///< whether the display hardware mode can be changed
        int width;
        int height;
        int bitsperpixel;
-       qbool fullscreen;
        float refreshrate;
-       qbool userefreshrate;
        qbool stereobuffer;
        int samples;
 }
@@ -68,16 +69,8 @@ viddef_mode_t;
 typedef struct viddef_s
 {
        // these are set by VID_Mode
-       viddef_mode_t mode;
        // used in many locations in the renderer
-       int width;
-       int height;
-       int bitsperpixel;
-       qbool fullscreen;
-       float refreshrate;
-       qbool userefreshrate;
-       qbool stereobuffer;
-       int samples;
+       viddef_mode_t mode; ///< currently active video mode
        qbool stencil;
        qbool sRGB2D; // whether 2D rendering is sRGB corrected (based on sRGBcapable2D)
        qbool sRGB3D; // whether 3D rendering is sRGB corrected (based on sRGBcapable3D)
@@ -96,12 +89,12 @@ typedef struct viddef_s
        viddef_support_t support;
 
        int forcetextype; // always use GL_BGRA for D3D, always use GL_RGBA for GLES, etc
+
+       int xPos, yPos; // current virtual position of the top left corner of the SDL window
 } viddef_t;
 
 // global video state
 extern viddef_t vid;
-extern void (*vid_menudrawfn)(void);
-extern void (*vid_menukeyfn)(int key);
 
 #define MAXJOYAXIS 16
 // if this is changed, the corresponding code in vid_shared.c must be updated
@@ -130,6 +123,9 @@ int VID_Shared_SetJoystick(int index);
 qbool VID_JoyBlockEmulatedKeys(int keycode);
 void VID_EnableJoystick(qbool enable);
 
+extern cvar_t cl_demo_mousegrab;
+extern qbool scr_loading;
+
 extern qbool vid_hidden;
 extern qbool vid_activewindow;
 extern qbool vid_supportrefreshrate;
@@ -141,13 +137,13 @@ extern cvar_t vid_height;
 extern cvar_t vid_bitsperpixel;
 extern cvar_t vid_samples;
 extern cvar_t vid_refreshrate;
-extern cvar_t vid_userefreshrate;
 extern cvar_t vid_touchscreen_density;
 extern cvar_t vid_touchscreen_xdpi;
 extern cvar_t vid_touchscreen_ydpi;
 extern cvar_t vid_vsync;
 extern cvar_t vid_mouse;
 extern cvar_t vid_mouse_clickthrough;
+extern cvar_t vid_minimize_on_focus_loss;
 extern cvar_t vid_grabkeyboard;
 extern cvar_t vid_touchscreen;
 extern cvar_t vid_touchscreen_showkeyboard;
@@ -155,6 +151,8 @@ extern cvar_t vid_touchscreen_supportshowkeyboard;
 extern cvar_t vid_stick_mouse;
 extern cvar_t vid_resizable;
 extern cvar_t vid_desktopfullscreen;
+extern cvar_t vid_display;
+extern cvar_t vid_info_displaycount;
 #ifdef WIN32
 extern cvar_t vid_ignore_taskbar;
 #endif
@@ -214,7 +212,7 @@ int VID_SetMode (int modenum);
 // sets the mode; only used by the Quake engine for resetting to mode 0 (the
 // base mode) on memory allocation failures
 
-qbool VID_InitMode(viddef_mode_t *mode);
+qbool VID_InitMode(const viddef_mode_t *mode);
 // allocates and opens an appropriate OpenGL context (and its window)
 
 
@@ -226,7 +224,6 @@ qbool VID_HasScreenKeyboardSupport(void);
 void VID_ShowKeyboard(qbool show);
 qbool VID_ShowingKeyboard(void);
 
-void VID_SetMouse(qbool relative, qbool hidecursor);
 void VID_Finish (void);
 
 void VID_Restart_f(struct cmd_state_s *cmd);