123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /*
- ===========================================================================
- 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 <http://www.gnu.org/licenses/>.
- 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 <stdlib.h>
- #include <stdarg.h>
- #include <sys/types.h>
- #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 <d3d8.h> // SMF
- //#include <xgraphics.h> // 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()
- {
- }
|