j
git-svn-id: file:///var/svn/milsko-quake/trunk@2 78c9b134-79e4-4a3a-b968-f1130b8f396c
This commit is contained in:
parent
eb68e99544
commit
d77597085c
4 changed files with 42 additions and 146 deletions
8
Makefile
8
Makefile
|
|
@ -1,11 +1,13 @@
|
|||
# $Id$
|
||||
MILSKO = /usr/local
|
||||
|
||||
.PHONY: all clean
|
||||
.SUFFIXES: .c .o
|
||||
|
||||
CC = cc
|
||||
CFLAGS = -Iinclude -DGLQUAKE -I/usr/X11R7/include
|
||||
LDFLAGS = -L/usr/X11R7/lib
|
||||
LIBS = -lGL -lm -lXrandr
|
||||
CFLAGS = -Iinclude -DGLQUAKE -I/usr/X11R7/include -I$(MILSKO)/include
|
||||
LDFLAGS = -L/usr/X11R7/lib -L$(MILSKO)/src -L$(MILSKO)/lib
|
||||
LIBS = -lMw -lGL -lm
|
||||
|
||||
OBJS = src/cl_demo.o src/cl_input.o src/cl_main.o src/cl_parse.o src/cl_tent.o src/chase.o src/cmd.o src/common.o src/console.o src/crc.o src/cvar.o src/gl_draw.o src/gl_mesh.o src/gl_model.o src/gl_refrag.o src/gl_rlight.o src/gl_rmain.o src/gl_rmisc.o src/gl_rsurf.o src/gl_screen.o src/gl_test.o src/gl_warp.o src/host.o src/host_cmd.o src/keys.o src/menu.o src/mathlib.o src/net_dgrm.o src/net_loop.o src/net_main.o src/net_vcr.o src/pr_cmds.o src/pr_edict.o src/pr_exec.o src/r_part.o src/sbar.o src/sv_main.o src/sv_phys.o src/sv_move.o src/sv_user.o src/zone.o src/view.o src/wad.o src/world.o src/cd.o src/sound.o src/gl.o src/stb_ds.o src/snd_mem.o src/mix.o src/miniaudio.o src/snd_ma.o src/net_udp.o src/net_bsd.o src/sys.o
|
||||
|
||||
|
|
|
|||
176
src/gl.c
176
src/gl.c
|
|
@ -33,12 +33,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#include "quakedef.h"
|
||||
|
||||
#include <RGFW.h>
|
||||
#include <Mw/Milsko.h>
|
||||
#include <Mw/Widget/OpenGL.h>
|
||||
|
||||
#define WARP_WIDTH 320
|
||||
#define WARP_HEIGHT 200
|
||||
|
||||
static RGFW_window* win;
|
||||
static MwWidget win;
|
||||
static MwWidget opengl;
|
||||
|
||||
|
||||
unsigned short d_8to16table[256];
|
||||
|
|
@ -95,91 +97,8 @@ void D_EndDirectRect (int x, int y, int width, int height)
|
|||
{
|
||||
}
|
||||
|
||||
static int RGFWToQuakeKey(u32 keycode)
|
||||
{
|
||||
int key;
|
||||
char buf[64];
|
||||
|
||||
key = 0;
|
||||
|
||||
switch(keycode)
|
||||
{
|
||||
case RGFW_pageUp: key = K_PGUP; break;
|
||||
|
||||
case RGFW_pageDown: key = K_PGDN; break;
|
||||
|
||||
case RGFW_home: key = K_HOME; break;
|
||||
|
||||
case RGFW_end: key = K_END; break;
|
||||
|
||||
case RGFW_left: key = K_LEFTARROW; break;
|
||||
|
||||
case RGFW_right: key = K_RIGHTARROW; break;
|
||||
|
||||
case RGFW_down: key = K_DOWNARROW; break;
|
||||
|
||||
case RGFW_up: key = K_UPARROW; break;
|
||||
|
||||
case RGFW_escape: key = K_ESCAPE; break;
|
||||
|
||||
case RGFW_return: key = K_ENTER; break;
|
||||
|
||||
case RGFW_tab: key = K_TAB; break;
|
||||
|
||||
case RGFW_F1: key = K_F1; break;
|
||||
|
||||
case RGFW_F2: key = K_F2; break;
|
||||
|
||||
case RGFW_F3: key = K_F3; break;
|
||||
|
||||
case RGFW_F4: key = K_F4; break;
|
||||
|
||||
case RGFW_F5: key = K_F5; break;
|
||||
|
||||
case RGFW_F6: key = K_F6; break;
|
||||
|
||||
case RGFW_F7: key = K_F7; break;
|
||||
|
||||
case RGFW_F8: key = K_F8; break;
|
||||
|
||||
case RGFW_F9: key = K_F9; break;
|
||||
|
||||
case RGFW_F10: key = K_F10; break;
|
||||
|
||||
case RGFW_F11: key = K_F11; break;
|
||||
|
||||
case RGFW_F12: key = K_F12; break;
|
||||
|
||||
case RGFW_backSpace: key = K_BACKSPACE; break;
|
||||
|
||||
case RGFW_delete: key = K_DEL; break;
|
||||
|
||||
case RGFW_shiftL:
|
||||
case RGFW_shiftR: key = K_SHIFT; break;
|
||||
|
||||
case RGFW_controlL:
|
||||
case RGFW_controlR: key = K_CTRL; break;
|
||||
|
||||
case RGFW_altL:
|
||||
case RGFW_altR: key = K_ALT; break;
|
||||
|
||||
case RGFW_insert:key = K_INS; break;
|
||||
|
||||
default:
|
||||
key = keycode;
|
||||
break;
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
static void install_grabs(void)
|
||||
{
|
||||
i32 width, height;
|
||||
RGFW_window_getSize(win, &width, &height);
|
||||
|
||||
RGFW_window_showMouse(win, 0);
|
||||
RGFW_window_holdMouse(win);
|
||||
mouse_active = true;
|
||||
}
|
||||
|
||||
|
|
@ -190,55 +109,21 @@ static void uninstall_grabs(void)
|
|||
|
||||
/* TODO */
|
||||
|
||||
RGFW_window_unholdMouse(win);
|
||||
mouse_active = false;
|
||||
}
|
||||
|
||||
void focusfunc(RGFW_window* win, u8 inFocus) {
|
||||
if (inFocus == RGFW_FALSE) {
|
||||
RGFW_window_unholdMouse(win);
|
||||
} else {
|
||||
if (mouse_active) {
|
||||
i32 width, height;
|
||||
RGFW_window_getSize(win, &width, &height);
|
||||
MwPoint mouse;
|
||||
void mousemove(MwWidget handle, void* user, void* call) {
|
||||
MwPoint* p = call;
|
||||
int vecX = p->x - mouse.x;
|
||||
int vecY = p->y - mouse.y;
|
||||
|
||||
RGFW_window_unholdMouse(win);
|
||||
RGFW_window_holdMouse(win);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void mouseposfunc(RGFW_window* win, i32 x, i32 y, float vecX, float vecY) {
|
||||
if (mouse_active) {
|
||||
mx += vecX * 2;
|
||||
my += vecY * 2;
|
||||
}
|
||||
}
|
||||
|
||||
void keyfunc(RGFW_window* win, RGFW_key key, u8 keyChar, RGFW_keymod keyMod, RGFW_bool repeat, RGFW_bool pressed) {
|
||||
Key_Event(RGFWToQuakeKey(key), pressed);
|
||||
}
|
||||
|
||||
void mousebuttonfunc(RGFW_window* win, u8 button, u8 pressed) {
|
||||
int b = -1;
|
||||
if (button== RGFW_mouseLeft)
|
||||
b = 0;
|
||||
else if (button == RGFW_mouseMiddle)
|
||||
b = 2;
|
||||
else if (button== RGFW_mouseRight)
|
||||
b = 1;
|
||||
if (b >= 0)
|
||||
Key_Event(K_MOUSE1 + b, pressed);
|
||||
}
|
||||
|
||||
void scrollfunc(RGFW_window* win, float x, float y) {
|
||||
if (y > 0 ) {
|
||||
Key_Event(K_MWHEELUP, true);
|
||||
Key_Event(K_MWHEELUP, false);
|
||||
} else if (y < 0) {
|
||||
Key_Event(K_MWHEELDOWN, true);
|
||||
Key_Event(K_MWHEELDOWN, false);
|
||||
}
|
||||
mouse = *p;
|
||||
}
|
||||
|
||||
static void HandleEvents(void)
|
||||
|
|
@ -248,7 +133,7 @@ static void HandleEvents(void)
|
|||
int mwx = vid.width/2;
|
||||
int mwy = vid.height/2;
|
||||
|
||||
RGFW_pollEvents();
|
||||
MwStep(win);
|
||||
|
||||
if (dowarp) {
|
||||
/* move the mouse to the window center again */
|
||||
|
|
@ -284,7 +169,7 @@ void VID_Shutdown(void)
|
|||
{
|
||||
IN_DeactivateMouse();
|
||||
if (win) {
|
||||
RGFW_window_close(win);
|
||||
MwDestroyWidget(win);
|
||||
}
|
||||
vidmode_active = false;
|
||||
win = NULL;
|
||||
|
|
@ -437,7 +322,7 @@ void GL_BeginRendering (int *x, int *y, int *width, int *height)
|
|||
void GL_EndRendering (void)
|
||||
{
|
||||
glFlush();
|
||||
RGFW_window_swapBuffers_OpenGL(win);
|
||||
MwOpenGLSwapBuffer(opengl);
|
||||
}
|
||||
|
||||
qboolean VID_Is8bit(void)
|
||||
|
|
@ -483,9 +368,14 @@ void VID_Init(unsigned char *palette)
|
|||
qboolean fullscreen = true;
|
||||
int MajorVersion, MinorVersion;
|
||||
int actualWidth, actualHeight;
|
||||
MwSizeHints sh;
|
||||
MwWidget label;
|
||||
|
||||
mouse_avail = 1;
|
||||
|
||||
mouse.x = 0;
|
||||
mouse.y = 0;
|
||||
|
||||
vid.maxwarpwidth = WARP_WIDTH;
|
||||
vid.maxwarpheight = WARP_HEIGHT;
|
||||
vid.colormap = host_colormap;
|
||||
|
|
@ -521,22 +411,26 @@ void VID_Init(unsigned char *palette)
|
|||
if (vid.conheight < 200)
|
||||
vid.conheight = 200;
|
||||
|
||||
win = RGFW_createWindow("Quake", 0, 0, width, height, RGFW_windowCenter | RGFW_windowOpenGL);
|
||||
RGFW_window_makeCurrentWindow_OpenGL(win);
|
||||
win = MwVaCreateWidget(MwWindowClass, "Quake", NULL, MwDEFAULT, MwDEFAULT, width, height + 24,
|
||||
MwNtitle, "Quake",
|
||||
NULL);
|
||||
label = MwVaCreateWidget(MwLabelClass, "Label", win, 0, height, width, 24,
|
||||
MwNtext, "Milsko Quake!",
|
||||
NULL);
|
||||
opengl = MwCreateWidget(MwOpenGLClass, "OpenGL", win, 0, 0, width, height);
|
||||
|
||||
RGFW_setMousePosCallback(mouseposfunc);
|
||||
RGFW_setMouseScrollCallback(scrollfunc);
|
||||
RGFW_setFocusCallback(focusfunc);
|
||||
RGFW_setKeyCallback(keyfunc);
|
||||
RGFW_setMouseButtonCallback(mousebuttonfunc);
|
||||
sh.min_width = sh.min_width = width;
|
||||
sh.min_height = sh.max_height = height;
|
||||
MwVaApply(win,
|
||||
MwNsizeHints, &sh,
|
||||
NULL);
|
||||
|
||||
MwOpenGLMakeCurrent(opengl);
|
||||
|
||||
MwAddUserHandler(opengl, MwNmouseMoveHandler, mousemove, NULL);
|
||||
|
||||
if(fullscreen){
|
||||
RGFW_monitor mon = RGFW_window_getMonitor(win);
|
||||
width = mon.mode.w;
|
||||
height = mon.mode.h;
|
||||
|
||||
RGFW_window_resize(win, width, height);
|
||||
RGFW_window_setFullscreen(win, 1);
|
||||
/* todo */
|
||||
}
|
||||
|
||||
scr_width = width;
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_STRING1 "RGFWQuake"
|
||||
IDS_STRING1 "MilskoQuake"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
|
|
|
|||
|
|
@ -396,7 +396,7 @@ int main (int c, char **v)
|
|||
nostdout = 1;
|
||||
else {
|
||||
fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY);
|
||||
printf ("RGFW Quake -- Version %0.3f\n", LINUX_VERSION);
|
||||
printf ("Milsko Quake -- Version %0.3f\n", LINUX_VERSION);
|
||||
}
|
||||
|
||||
oldtime = Sys_FloatTime () - 0.1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue