aboutsummaryrefslogtreecommitdiffstats
path: root/demos/3rdparty/doom/i_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/3rdparty/doom/i_video.c')
-rw-r--r--demos/3rdparty/doom/i_video.c353
1 files changed, 0 insertions, 353 deletions
diff --git a/demos/3rdparty/doom/i_video.c b/demos/3rdparty/doom/i_video.c
deleted file mode 100644
index 20761fc9..00000000
--- a/demos/3rdparty/doom/i_video.c
+++ /dev/null
@@ -1,353 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// $Id:$
-//
-// Copyright (C) 1993-1996 by id Software, Inc.
-//
-// This source is available for distribution and/or modification
-// only under the terms of the DOOM Source Code License as
-// published by id Software. All rights reserved.
-//
-// The source is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
-// for more details.
-//
-// $Log:$
-//
-// DESCRIPTION:
-// DOOM graphics stuff for X11, UNIX.
-//
-//-----------------------------------------------------------------------------
-
-#include "gfx.h"
-
-#include "doomstat.h"
-#include "i_system.h"
-#include "v_video.h"
-#include "m_argv.h"
-#include "d_main.h"
-
-#include "doomdef.h"
-
-static color_t colors[256];
-static int multiply;
-static coord_t w, h;
-static size_t ldiff;
-
-static coord_t lastmousex = 0;
-static coord_t lastmousey = 0;
-static boolean mousemoved = false;
-
-
-void I_ShutdownGraphics(void)
-{
-}
-
-//
-// I_StartFrame
-//
-void I_StartFrame (void)
-{
-}
-
-#if 0
-int xlatekey(void)
-{
-
- int rc;
-
- switch(rc = XKeycodeToKeysym(X_display, X_event.xkey.keycode, 0))
- {
- case XK_Left: rc = KEY_LEFTARROW; break;
- case XK_Right: rc = KEY_RIGHTARROW; break;
- case XK_Down: rc = KEY_DOWNARROW; break;
- case XK_Up: rc = KEY_UPARROW; break;
- case XK_Escape: rc = KEY_ESCAPE; break;
- case XK_Return: rc = KEY_ENTER; break;
- case XK_Tab: rc = KEY_TAB; break;
- case XK_F1: rc = KEY_F1; break;
- case XK_F2: rc = KEY_F2; break;
- case XK_F3: rc = KEY_F3; break;
- case XK_F4: rc = KEY_F4; break;
- case XK_F5: rc = KEY_F5; break;
- case XK_F6: rc = KEY_F6; break;
- case XK_F7: rc = KEY_F7; break;
- case XK_F8: rc = KEY_F8; break;
- case XK_F9: rc = KEY_F9; break;
- case XK_F10: rc = KEY_F10; break;
- case XK_F11: rc = KEY_F11; break;
- case XK_F12: rc = KEY_F12; break;
-
- case XK_BackSpace:
- case XK_Delete: rc = KEY_BACKSPACE; break;
-
- case XK_Pause: rc = KEY_PAUSE; break;
-
- case XK_KP_Equal:
- case XK_equal: rc = KEY_EQUALS; break;
-
- case XK_KP_Subtract:
- case XK_minus: rc = KEY_MINUS; break;
-
- case XK_Shift_L:
- case XK_Shift_R:
- rc = KEY_RSHIFT;
- break;
-
- case XK_Control_L:
- case XK_Control_R:
- rc = KEY_RCTRL;
- break;
-
- case XK_Alt_L:
- case XK_Meta_L:
- case XK_Alt_R:
- case XK_Meta_R:
- rc = KEY_RALT;
- break;
-
- default:
- if (rc >= XK_space && rc <= XK_asciitilde)
- rc = rc - XK_space + ' ';
- if (rc >= 'A' && rc <= 'Z')
- rc = rc - 'A' + 'a';
- break;
- }
-
- return rc;
-
-}
-#endif
-
-void I_GetEvent(void)
-{
- event_t event;
- static uint16_t last_buttons = 0;
-
- #if GFX_USE_GINPUT && GINPUT_NEED_MOUSE
- GEventMouse mev;
- #endif
-
- #if GFX_USE_GINPUT && GINPUT_NEED_MOUSE
- ginputGetMouseStatus(0, &mev);
- event.type = ev_mouse;
- event.data1 = mev.buttons & (GINPUT_MOUSE_BTN_LEFT|GINPUT_MOUSE_BTN_RIGHT|GINPUT_MOUSE_BTN_MIDDLE);
- if ((mev.buttons ^ last_buttons) & (GINPUT_MOUSE_BTN_LEFT|GINPUT_MOUSE_BTN_RIGHT|GINPUT_MOUSE_BTN_MIDDLE)) {
- event.data2 = event.data3 = 0;
- } else {
- event.data2 = (mev.x - lastmousex) << 2;
- event.data3 = (lastmousey - mev.y) << 2;
- if (event.data2 || event.data3) {
- lastmousex = mev.x;
- lastmousey = mev.y;
- if (mev.x/multiply != w/2 && mev.y/multiply != h/2) {
- D_PostEvent(&event);
- mousemoved = false;
- } else
- mousemoved = true;
- }
- }
-
- last_buttons = mev.buttons;
-
- #endif
-#if 0
- event_t event;
-
- // put event-grabbing stuff in here
- XNextEvent(X_display, &X_event);
- switch (X_event.type)
- {
- case KeyPress:
- event.type = ev_keydown;
- event.data1 = xlatekey();
- D_PostEvent(&event);
- // fprintf(stderr, "k");
- break;
- case KeyRelease:
- event.type = ev_keyup;
- event.data1 = xlatekey();
- D_PostEvent(&event);
- // fprintf(stderr, "ku");
- break;
- case ButtonPress:
- event.type = ev_mouse;
- event.data1 =
- (X_event.xbutton.state & Button1Mask)
- | (X_event.xbutton.state & Button2Mask ? 2 : 0)
- | (X_event.xbutton.state & Button3Mask ? 4 : 0)
- | (X_event.xbutton.button == Button1)
- | (X_event.xbutton.button == Button2 ? 2 : 0)
- | (X_event.xbutton.button == Button3 ? 4 : 0);
- event.data2 = event.data3 = 0;
- D_PostEvent(&event);
- // fprintf(stderr, "b");
- break;
- case ButtonRelease:
- event.type = ev_mouse;
- event.data1 =
- (X_event.xbutton.state & Button1Mask)
- | (X_event.xbutton.state & Button2Mask ? 2 : 0)
- | (X_event.xbutton.state & Button3Mask ? 4 : 0);
- // suggest parentheses around arithmetic in operand of |
- event.data1 =
- event.data1
- ^ (X_event.xbutton.button == Button1 ? 1 : 0)
- ^ (X_event.xbutton.button == Button2 ? 2 : 0)
- ^ (X_event.xbutton.button == Button3 ? 4 : 0);
- event.data2 = event.data3 = 0;
- D_PostEvent(&event);
- // fprintf(stderr, "bu");
- break;
- case MotionNotify:
- event.type = ev_mouse;
- event.data1 =
- (X_event.xmotion.state & Button1Mask)
- | (X_event.xmotion.state & Button2Mask ? 2 : 0)
- | (X_event.xmotion.state & Button3Mask ? 4 : 0);
- event.data2 = (X_event.xmotion.x - lastmousex) << 2;
- event.data3 = (lastmousey - X_event.xmotion.y) << 2;
-
- if (event.data2 || event.data3)
- {
- lastmousex = X_event.xmotion.x;
- lastmousey = X_event.xmotion.y;
- if (X_event.xmotion.x != X_width/2 &&
- X_event.xmotion.y != X_height/2)
- {
- D_PostEvent(&event);
- // fprintf(stderr, "m");
- mousemoved = false;
- } else
- {
- mousemoved = true;
- }
- }
- break;
-
- case Expose:
- case ConfigureNotify:
- break;
-
- default:
- if (doShm && X_event.type == X_shmeventtype) shmFinished = true;
- break;
- }
-#endif
-}
-
-//
-// I_StartTic
-//
-void I_StartTic (void)
-{
- I_GetEvent();
-
-#if 0
- // Warp the pointer back to the middle of the window
- // or it will wander off - that is, the game will
- // loose input focus within X11.
- if (grabMouse)
- {
- if (!--doPointerWarp)
- {
- XWarpPointer( X_display,
- None,
- X_mainWindow,
- 0, 0,
- 0, 0,
- X_width/2, X_height/2);
-
- doPointerWarp = POINTER_WARP_COUNTDOWN;
- }
- }
-#endif
-
- mousemoved = false;
-}
-
-
-//
-// I_UpdateNoBlit
-//
-void I_UpdateNoBlit (void)
-{
-}
-
-//
-// I_FinishUpdate
-//
-void I_FinishUpdate (void)
-{
- register byte *p;
- register coord_t x, y;
-
- gdispStreamStart(0, 0, w*multiply, h*multiply);
-
- if (multiply == 1) {
- for(p = screens[0], y=0; y < h; y++, p+=ldiff) {
- for(x = 0; x < w; x++, p++)
- gdispStreamColor(colors[*p]);
- }
- } else {
- for(p = screens[0], y=0; y < h; y++, p+=ldiff) {
- for(x = 0; x < w; x++, p++) {
- gdispStreamColor(colors[*p]);
- gdispStreamColor(colors[*p]);
- }
- for(p -= w, x = 0; x < w; x++, p++) {
- gdispStreamColor(colors[*p]);
- gdispStreamColor(colors[*p]);
- }
- }
- }
- gdispStreamStop();
-
- // Force a display update if the controller supports it
- gdispFlush();
-}
-
-
-//
-// I_ReadScreen
-//
-void I_ReadScreen (byte* scr)
-{
- memcpy (scr, screens[0], SCREENWIDTH*SCREENHEIGHT);
-}
-
-
-//
-// I_SetPalette
-//
-void I_SetPalette (byte* palette)
-{
- int i;
-
- for (i=0 ; i<256 ; i++, palette+=3) {
- colors[i] = RGB2COLOR(gammatable[usegamma][palette[0]], gammatable[usegamma][palette[1]], gammatable[usegamma][palette[2]]);
- }
-}
-
-
-void I_InitGraphics(void)
-{
- screens[0] = gfxAlloc(SCREENWIDTH*SCREENHEIGHT);
-
- multiply = 1;
- if (M_CheckParm("-2") || (gdispGetWidth() >= SCREENWIDTH*2 && gdispGetHeight() >= SCREENHEIGHT*2))
- multiply = 2;
-
- w = gdispGetWidth()/multiply;
- if (w > SCREENWIDTH) w = SCREENWIDTH;
- ldiff = SCREENWIDTH - w;
-
- h = gdispGetHeight()/multiply;
- if (h > SCREENHEIGHT) h = SCREENHEIGHT;
-
- #if GFX_USE_GINPUT && GINPUT_NEED_MOUSE
- ginputGetMouse(0);
- #endif
-}