From 3138e5afec18501c819266055b16d24299434bd3 Mon Sep 17 00:00:00 2001 From: spog Date: Sat, 11 Feb 2006 23:57:16 +0000 Subject: [PATCH] added install.py; updated COMPILING; fixed q3 shader transparency rendering; jedi academy hint/caulk filtering git-svn-id: https://zerowing.idsoftware.com/svn/radiant/GtkRadiant@2 8a3a26a2-13c4-0310-b231-cf6edde360e5 --- CHANGES | 7 +++ COMPILING | 76 ++++++++++++++++++++++++++++++- install.py | 89 +++++++++++++++++++++++++++++++++++++ plugins/shaders/shaders.cpp | 2 +- radiant/brushmanip.cpp | 8 ++++ 5 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 install.py diff --git a/CHANGES b/CHANGES index a937060c..7038429a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,13 @@ This is the changelog for developers, != changelog for the end user that we distribute with the binaries. (see changelog) +11/02/2006 +SPoG +- Added install.py script. +- Updated COMPILING instructions. +- Fixed transparency rendering on quake3 shaders. +- Fixed hint/caulk filtering for Jedi Academy shaders. + 04/02/2006 SPoG - Added Radiant Manual shortcut to win32 installation. diff --git a/COMPILING b/COMPILING index 3aecea58..0a572e0f 100644 --- a/COMPILING +++ b/COMPILING @@ -1 +1,75 @@ -see docs/developer/README +developer documentation for GtkRadiant 1.5.0 +============================================ + +getting the source +================== + +The latest source is available from the Subversion repository. + https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/ + +The subversion client can be obtained from the Subversion site. + http://subversion.tigris.org + +To get a copy of the source using the commandline Subversion client: + Change the current directory to the desired location for the source. + svn checkout https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/ ./GtkRadiant + svn checkout https://zerowing.idsoftware.com/svn/radiant.assets/Q3Pack/trunk/ ./GtkRadiant/games/Q3Pack + + + +Linux/OSX(using X-windows) +========================== + +environment: +- gcc3 (preferably) +- scons = 0.96 (radiant is built with scons rather than make) +- python >= 2.3.0 (scons requires python, some build steps use python) + +dependencies: +- gtk+ >= 2.4.0 (requires glib, atk, pango, iconv, etc) +- gtkglext >= 1.0.0 (requires opengl) +- libxml2 >= 2.0.0 +- zlib >= 1.2.0 (for archivezip module) +- libpng >= 1.2.0 (for imagepng module) +- libmhash = 0.9.0 (for q3map2) + +build: +Execute 'scons SETUP=0' in the directory containing SConscript + +install: +run './GtkRadiant/install.py' +note - the installed data is not modified by the build, but it may be modified when you update from svn + +run: +Execute './GtkRadiant/install/radiant.x86' (or './GtkRadiant/install/radiant.ppc' on osx) + + + +Win32 (2000 or XP) +================== + +environment: +- visual studio .net 2003 +- microsoft c++ compiler 7.1 (comes with vs.net 2003) +- python 2.3.0 or later + +dependencies are prepackaged archives, extract them to the directory above GtkRadiant.sln: +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/gtk2-2.4.14.zip (gtk-wimp, gtkglext, gtk, glib, atk, pango, iconv etc) +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/libxml2-2.6.2.zip +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/STLport-4.6.2.zip +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/zlib1-1.2.1.zip (for archivezip module) +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/libpng-1.2.5.zip (for imagepng module) +- http://zerowing.idsoftware.com/files/radiant/developer/1.5/mhash-0.9.1.zip (for q3map2) + +build: +Open GtkRadiant.sln. +In tools > options > projects > VC++ Directories > executables, add the path to python.exe (e.g. c:\python23\) +Hit 'Build > Build Solution' (F7) + +install: +run './GtkRadiant/install.py' +note - the installed data is not modified by the build, but it may be modified when you update from svn + +run: +set Project > Properties > Debugging > Command to "$(SolutionDir)install/$(TargetFileName)" +hit 'Debug > Start' (F5) diff --git a/install.py b/install.py new file mode 100644 index 00000000..ab7b5afa --- /dev/null +++ b/install.py @@ -0,0 +1,89 @@ + +import os +import shutil + + +def copyFile(source, target): + assert os.path.isfile(source) + targetFile = target + if os.path.isdir(targetFile): + targetFile = os.path.join(target, os.path.basename(source)) + print source, "->", targetFile + shutil.copyfile(source, targetFile) + +def copyFileIfExists(source, target): + if os.path.exists(source): + copyFile(source, target) + +def copySvn(source, target): + assert os.path.isdir(source) + if not os.path.exists(target): + os.mkdir(target) + for name in os.listdir(source): + absolute = os.path.join(source, name) + absTarget = os.path.join(target, name) + if os.path.isdir(absolute): + if name != ".svn": + copySvn(absolute, absTarget) + else: + copyFile(absolute, absTarget) + +def copyGame(source, game, target): + assert os.path.isdir(source) + assert os.path.isdir(target) + root = os.path.join(source, os.path.normpath(game[0])) + if os.path.exists(root): + gamename = game[1] + ".game" + copySvn(os.path.join(root, gamename), os.path.join(target, gamename)) + gamesDir = os.path.join(target, "games") + if not os.path.exists(gamesDir): + os.mkdir(gamesDir) + copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename)) + +thisDir = os.path.dirname(__file__) +gamesRoot = os.path.join(thisDir, "games") +installRoot = os.path.join(thisDir, "install") + +if not os.path.exists(installRoot): + os.mkdir(installRoot) + +# copy generic data +copySvn(os.path.join(thisDir, os.path.normpath("setup/data/tools")), installRoot) + +# root, gamename +games = [ + ("Doom3Pack/tools", "doom3"), + ("ETPack", "et"), + ("HalfLifePack", "hl"), + ("Her2Pack", "heretic2"), + ("JAPack/Tools", "ja"), + ("JK2Pack", "jk2"), + ("Q1Pack", "q1"), + ("Q2Pack", "q2"), + ("Q3Pack/tools", "q3"), + ("Q4Pack/tools", "q4"), + ("Sof2Pack", "sof2"), + ("STVEFPack", "stvef"), + ("WolfPack/bin", "wolf") +] + +# copy games +for game in games: + copyGame(gamesRoot, game, installRoot) + +# copy win32 dlls +gtk2Root = os.path.normpath(os.path.join(thisDir, "../gtk2-2.4")) +if os.path.exists(gtk2Root): + copySvn(os.path.join(gtk2Root, "install"), installRoot) + +libxml2 = os.path.normpath(os.path.join(thisDir, "../libxml2-2.6/win32/install/libxml2.dll")) +copyFileIfExists(libxml2, installRoot) + +libpng = os.path.normpath(os.path.join(thisDir, "../libpng-1.2/lib/libpng13.dll")) +copyFileIfExists(libpng, installRoot) + +libmhash = os.path.normpath(os.path.join(thisDir, "../mhash-0.9/win32/libmhash/Release/libmhash.dll")) +copyFileIfExists(libmhash, installRoot) + +zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll")) +copyFileIfExists(zlib, installRoot) diff --git a/plugins/shaders/shaders.cpp b/plugins/shaders/shaders.cpp index d945069d..3bfa7296 100644 --- a/plugins/shaders/shaders.cpp +++ b/plugins/shaders/shaders.cpp @@ -976,7 +976,7 @@ public: m_template(*definition.shaderTemplate), m_args(definition.args), m_filename(definition.filename), - m_blendFunc(BLEND_ONE, BLEND_ZERO), + m_blendFunc(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA), m_bInUse(false) { m_pTexture = 0; diff --git a/radiant/brushmanip.cpp b/radiant/brushmanip.cpp index 940c6f64..b701ca4f 100644 --- a/radiant/brushmanip.cpp +++ b/radiant/brushmanip.cpp @@ -1111,6 +1111,9 @@ filter_brush_all_faces g_filter_brush_botclip(&g_filter_face_botclip); filter_face_shader g_filter_face_caulk("textures/common/caulk"); filter_brush_all_faces g_filter_brush_caulk(&g_filter_face_caulk); +filter_face_shader g_filter_face_caulk_ja("textures/system/caulk"); +filter_brush_all_faces g_filter_brush_caulk_ja(&g_filter_face_caulk_ja); + filter_face_shader_substring g_filter_face_liquids("textures/liquids/"); filter_brush_any_face g_filter_brush_liquids(&g_filter_face_liquids); @@ -1120,6 +1123,9 @@ filter_brush_any_face g_filter_brush_hint(&g_filter_face_hint); filter_face_shader g_filter_face_hint_q2("textures/hint"); filter_brush_any_face g_filter_brush_hint_q2(&g_filter_face_hint_q2); +filter_face_shader g_filter_face_hint_ja("textures/system/hint"); +filter_brush_any_face g_filter_brush_hint_ja(&g_filter_face_hint_ja); + filter_face_shader g_filter_face_areaportal("textures/common/areaportal"); filter_brush_all_faces g_filter_brush_areaportal(&g_filter_face_areaportal); @@ -1146,9 +1152,11 @@ void BrushFilters_construct() add_brush_filter(g_filter_brush_weapclip, EXCLUDE_CLIP); add_brush_filter(g_filter_brush_botclip, EXCLUDE_BOTCLIP); add_brush_filter(g_filter_brush_caulk, EXCLUDE_CAULK); + add_brush_filter(g_filter_brush_caulk_ja, EXCLUDE_CAULK); add_brush_filter(g_filter_brush_liquids, EXCLUDE_LIQUIDS); add_brush_filter(g_filter_brush_hint, EXCLUDE_HINTSSKIPS); add_brush_filter(g_filter_brush_hint_q2, EXCLUDE_HINTSSKIPS); + add_brush_filter(g_filter_brush_hint_ja, EXCLUDE_HINTSSKIPS); add_brush_filter(g_filter_brush_clusterportal, EXCLUDE_CLUSTERPORTALS); add_brush_filter(g_filter_brush_visportal, EXCLUDE_VISPORTALS); add_brush_filter(g_filter_brush_areaportal, EXCLUDE_AREAPORTALS); -- 2.39.2