No description
Find a file
Bill Currie bd98d1d9fb [qwaq] Prepare for threading
So far, no threading has been set up, and only window creation and
printing have been updated, but the basics of the design seem to be
sound.

The builtin functions now no longer call ncurses directly: the build
commands and write them to a command buffer.

Commands that have return values (eg, window creation) write their
results to a results buffer that the originating builtin function
reads. Builtin functions that expect a result "poll" the results buffer
for the correct result (marked by the same command). In a single
UI-thread environment, the results should always be in the same order as
the commands, and in a multi-UI-thread environment, things should
(fingers crossed) sort themselves out as ONE of the threads will be the
originator of the next available result.

Strings in commands (eg, for printing) are handled by acquiring a string
id (index into an array of dstring_t) and including the string id in the
written command. The string id is released upon completion of the
command.

Builtin functions write commands, acquire string ids, and read results.

The command processor reads commands, releases string ids, and writes
results.

Since commands, string ids, and results are all in ring buffers, and
assuming there is only one thread running the builtin functions and only
one thread processing commands (there can be only one because ncurses is
not thread-safe), then there should never be any contention on the
buffers. Of course, if there are multiple threads running the builtin
functions, then locking will be required on the builtin function side.
2020-02-29 01:45:33 +09:00
config.d Start working on a qwaq console tool 2020-02-26 22:10:59 +09:00
debian Update the debian changelog. 2013-01-18 17:15:27 +09:00
desktop Fix the missing desktop files. 2012-02-09 16:14:56 +09:00
doc Improve handling of pr_argc 2020-02-25 17:36:29 +09:00
hw Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
include [dstring] Return the string instead of printed size 2020-02-26 19:00:19 +09:00
libs Use get_strref() correctly 2020-02-27 02:07:53 +09:00
m4 Break out the default plugin code into its own macro. 2012-04-22 10:03:52 +09:00
nq Make PR_Init take an instance to initialize 2020-02-23 18:32:16 +09:00
pkg-config Move qfcc's libs and headers to ${prefix}/share 2012-05-05 19:34:35 +09:00
qtv Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
qw Fix an out-by-one error 2020-02-25 17:39:34 +09:00
RPM Qdd include/QF/math/*.h to the rpm. 2013-01-10 22:14:59 +09:00
ruamoko Fix a thinko in the save game menu 2020-02-26 18:03:00 +09:00
tools [qwaq] Prepare for threading 2020-02-29 01:45:33 +09:00
vc2005 Fix the missing vc project files. 2012-02-09 14:10:27 +09:00
vc2008 Fix the missing vc project files. 2012-02-09 14:10:27 +09:00
.gitignore Ignore the new test-driver link. 2013-09-27 23:15:57 +09:00
bootstrap Remove a stray -e from bootstrap's error report. 2014-01-17 15:47:29 +09:00
configure.ac Fix some 64-bit mingw compile issues. 2013-01-22 21:02:49 +09:00
COPYING initial checkin of most recent newtree and nuq(?) source 2001-02-19 21:15:25 +00:00
INSTALL Require bison 2.6 or later. 2013-01-11 13:48:14 +09:00
Makefile.am Add the new cross scripts to EXTRA_DIST 2013-01-23 11:44:01 +09:00
NEWS Update for 0.7.2. 2013-01-23 12:01:36 +09:00
README.cygwin audit the usage of "only" 2010-01-13 06:42:26 +00:00
TODO Detect the silent death of the jack client thread. 2011-09-07 15:16:27 +09:00

This file gives instruction for compiling QF with cygwin to run in MS Windows(R).

DISCLAIMER: Use at your own risk, NO WARRANTY of any kind. NO GUARANTEE of correctness or usability.

If you have problems with these instructions please let me know.

email: wildcode@users.sourceforge.net
IRC: irc.xiph.org #quakeforge
==========================================================================

WARNING: This is not intended for inexperienced users, binaries are available on request.

         QuakeForge may take several hours from bootstrap to the completion
         of make install on some systems

To build win32(mingw) QuakeForge bins you will need to download and install cygwin, and the Microsoft DirectX SDK. Cygwin can be found at http://www.cygwin.org

Once cygwin is installed along with the appropriate developement modules, copy dinput.h from the DirectX SDK and place it in /usr/include/w32api/

If you want to use DirectSound also copy dsound.h to the same spot.

in the quakeforge source dir, within cygwin, type
./bootstrap
./configure --host=i386-mingw32 --build=i386-cygwin --target=i386-mingw32 --program-prefix= --with-static-plugins --disable-shared --disable-oss --disable-vorbis --disable-Werror --enable-optimize --enable-asmopt --disable-debug --enable-zlib
make
make install

--disable-Werror is needed as some versions of the DX SDK are buggy.

Go to the /usr/local/bin directory and copy the qw-* and nq-* files to your dos
quake dir

Let us know how it works for you.

NOTE: At the time of writing qw-server.exe was not working correctly. Please refrain from using it unless you are willing to fix it.

Special Note: QuakeForge supplies only our own version of the programs for Quake. To get the game data, you still need to have purchased Quake or get the shareware version from Id Software.

Chris Ison (WildCode) for QuakeForge
March 11, 2003