/*
===========================================================================
Doom 3 BFG Edition GPL Source Code
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Doom 3 BFG Edition Source Code. If not, see .
In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code. If not, please request a copy in writing from id Software at the address below.
If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
===========================================================================
*/
#include "Precompiled.h"
#include "globaldata.h"
#include
#include
#include
#include "i_video.h"
#include "i_system.h"
#include "doomstat.h"
#include "v_video.h"
#include "m_argv.h"
#include "d_main.h"
#include "doomdef.h"
//#include // SMF
//#include // SMF
void I_ShutdownGraphics(void)
{
// VVTODO: Shutdown Graphics
}
//
// I_StartFrame
//
void I_StartFrame (void)
{
// er?
}
static void I_CombineMouseEvent(const event_t* in, event_t* out)
{
if (fabs((float)in->data1) > fabs((float)out->data1))
out->data1 = in->data1;
if (fabs((float)in->data2) > fabs((float)out->data2))
out->data2 = in->data2;
if (fabs((float)in->data3) > fabs((float)out->data3))
out->data3 = in->data3;
}
void I_GetEvents( controller_t *controller )
{
event_t e_mouse, e_joystick;
int numEvents;
e_mouse.type = ev_mouse;
e_mouse.data1 = e_mouse.data2 = e_mouse.data3 = 0;
e_joystick.type = ev_joystick;
e_joystick.data1 = e_joystick.data2 = e_joystick.data3 = 0;
numEvents = I_PollMouseInputEvents( controller );
if (numEvents)
{
int i;
event_t e;
// right thumb stick
for (i = 0; i < numEvents; ++i)
{
I_ReturnMouseInputEvent(i, &e);
if (e.type == ev_mouse)
I_CombineMouseEvent(&e, &e_mouse);
else if (e.type == ev_joystick)
I_CombineMouseEvent(&e, &e_joystick);
}
}
numEvents = I_PollJoystickInputEvents( controller );
if (numEvents)
{
int i;
event_t e;
for (i = 0; i < numEvents; ++i)
{
I_ReturnJoystickInputEvent(i, &e);
if (e.type == ev_keydown || e.type == ev_keyup) {
D_PostEvent(&e);
} else if (e.type == ev_joystick) {
I_CombineMouseEvent(&e, &e_joystick);
} else if (e.type == ev_mouse) {
I_CombineMouseEvent(&e, &e_mouse);
}
}
}
D_PostEvent(&e_mouse);
D_PostEvent(&e_joystick);
}
//
// I_UpdateNoBlit
//
void I_UpdateNoBlit (void)
{
// what is this?
}
//
// I_FinishUpdate
//
void I_FinishUpdate (void)
{
// DHM - These buffers are not used
}
//
// I_ReadScreen
//
void I_ReadScreen (byte* scr)
{
memcpy(scr, ::g->screens[0], SCREENWIDTH*SCREENHEIGHT);
}
inline unsigned int I_PackColor( unsigned int a, unsigned int r, unsigned int g, unsigned int b ) {
unsigned int color = 0;
color |= (r & 255) << 24;
color |= (g & 255) << 16;
color |= (b & 255) << 8;
color |= (a & 255);
return color;
}
//
// I_SetPalette
//
void I_SetPalette (byte* palette)
{
int i;
// set the X colormap entries
for (i=0 ; i<256 ; i++)
{
int r,b,g;
r = gammatable[::g->usegamma][*palette++];
g = gammatable[::g->usegamma][*palette++];
b = gammatable[::g->usegamma][*palette++];
::g->XColorMap[i] = I_PackColor(0xff, r, g, b);
}
}
void I_InitGraphics()
{
}