}
}
-#define GAMMA_TABLE_SIZE 256
void VID_Finish (void)
{
qboolean vid_usevsync;
if (!vid_hidden)
{
- CHECKGLERROR
if (r_speeds.integer == 2 || gl_finish.integer)
- {
- qglFinish();CHECKGLERROR
- }
+ GL_Finish();
qaglSwapBuffers(context);
}
- VID_UpdateGamma(false, GAMMA_TABLE_SIZE);
+ VID_UpdateGamma();
if (apple_multithreadedgl.integer)
{
}
}
-int VID_SetGamma(unsigned short *ramps, int rampsize)
-{
- CGGammaValue table_red [GAMMA_TABLE_SIZE];
- CGGammaValue table_green [GAMMA_TABLE_SIZE];
- CGGammaValue table_blue [GAMMA_TABLE_SIZE];
- int i;
-
- // Convert the unsigned short table into 3 float tables
- for (i = 0; i < rampsize; i++)
- table_red[i] = (float)ramps[i] / 65535.0f;
- for (i = 0; i < rampsize; i++)
- table_green[i] = (float)ramps[i + rampsize] / 65535.0f;
- for (i = 0; i < rampsize; i++)
- table_blue[i] = (float)ramps[i + 2 * rampsize] / 65535.0f;
-
- if (CGSetDisplayTransferByTable(CGMainDisplayID(), rampsize, table_red, table_green, table_blue) != CGDisplayNoErr)
- {
- Con_Print("VID_SetGamma: ERROR: CGSetDisplayTransferByTable failed!\n");
- return false;
- }
-
- return true;
-}
-
-int VID_GetGamma(unsigned short *ramps, int rampsize)
-{
- CGGammaValue table_red [GAMMA_TABLE_SIZE];
- CGGammaValue table_green [GAMMA_TABLE_SIZE];
- CGGammaValue table_blue [GAMMA_TABLE_SIZE];
- CGTableCount actualsize = 0;
- int i;
-
- // Get the gamma ramps from the system
- if (CGGetDisplayTransferByTable(CGMainDisplayID(), rampsize, table_red, table_green, table_blue, &actualsize) != CGDisplayNoErr)
- {
- Con_Print("VID_GetGamma: ERROR: CGGetDisplayTransferByTable failed!\n");
- return false;
- }
- if (actualsize != (unsigned int)rampsize)
- {
- Con_Printf("VID_GetGamma: ERROR: invalid gamma table size (%u != %u)\n", actualsize, rampsize);
- return false;
- }
-
- // Convert the 3 float tables into 1 unsigned short table
- for (i = 0; i < rampsize; i++)
- ramps[i] = table_red[i] * 65535.0f;
- for (i = 0; i < rampsize; i++)
- ramps[i + rampsize] = table_green[i] * 65535.0f;
- for (i = 0; i < rampsize; i++)
- ramps[i + 2 * rampsize] = table_blue[i] * 65535.0f;
-
- return true;
-}
-
void signal_handler(int sig)
{
- printf("Received signal %d, exiting...\n", sig);
- VID_RestoreSystemGamma();
+ Sys_PrintfToTerminal("Received signal %d, exiting...\n", sig);
Sys_Quit(1);
}
if (context == NULL && window == NULL)
return;
+ VID_EnableJoystick(false);
VID_SetMouse(false, false, false);
- VID_RestoreSystemGamma();
if (context != NULL)
{
vid_isfullscreen = false;
GL_CloseLibrary();
- Key_ClearStates ();
}
// Since the event handler can be called at any time, we store the events for later processing
static void VID_AppFocusChanged(qboolean windowIsActive)
{
if (vid_activewindow != windowIsActive)
- {
vid_activewindow = windowIsActive;
- if (!vid_activewindow)
- VID_RestoreSystemGamma();
- }
if (windowIsActive || !snd_mutewhenidle.integer)
{
}
}
+void VID_BuildJoyState(vid_joystate_t *joystate)
+{
+ VID_Shared_BuildJoyState_Begin(joystate);
+ VID_Shared_BuildJoyState_Finish(joystate);
+}
+
+void VID_EnableJoystick(qboolean enable)
+{
+ int index = joy_enable.integer > 0 ? joy_index.integer : -1;
+ qboolean success = false;
+ int sharedcount = 0;
+ sharedcount = VID_Shared_SetJoystick(index);
+ if (index >= 0 && index < sharedcount)
+ success = true;
+
+ // update cvar containing count of XInput joysticks
+ if (joy_detected.integer != sharedcount)
+ Cvar_SetValueQuick(&joy_detected, sharedcount);
+
+ Cvar_SetValueQuick(&joy_active, success ? 1 : 0);
+}
+
void IN_Move (void)
{
+ vid_joystate_t joystate;
+ VID_EnableJoystick(true);
+ VID_BuildJoyState(&joystate);
+ VID_ApplyJoyState(&joystate);
}
static bool GetDictionaryBoolean(CFDictionaryRef d, const void *key)
return value;
}
+vid_mode_t *VID_GetDesktopMode(void)
+{
+ return NULL; // FIXME add desktopfullscreen
+}
+
size_t VID_ListModes(vid_mode_t *modes, size_t maxcount)
{
CGDirectDisplayID mainDisplay = CGMainDisplayID();