Commit graph

82 commits

Author SHA1 Message Date
Mike Swanson
0721f46440 graphics/text/README: remove mention of imagemagick
Hasn't actually been used for a long time.
2019-09-17 17:27:07 -07:00
Mike Swanson
6eef9be73a use python3 only for building
Python 2 is very near end-of-life, and Python3-compatible changes to a
few scripts introduced compatibility problems with 2.7 again.  It went
unnoticed for me since my system symlinks "python" to "python3", but
it broke the build on systems where that symlink is still python2.  At
this point in time, I feel it is worth targetting modern Python and
forgetting about 2.7.
2019-09-06 14:43:50 -07:00
Steven Elliott
b2ca8cbfde Organize .gitignore
Organize .gitignore by moving all patterns into a top level sorted
.gitignore file. With this change both "git status" and
"git-ls-ignore-index" should return cleanly. The later checks if any
files in the index are ignored.
2019-09-05 07:09:47 -05:00
Mike Swanson
4701d8f351 Blacken all Python files
Using the black code reformatter, pass it over all our Python files.
This allows for a consistent style across the code base.

Exception: lumps/dmxgus/stats.py, for readability.
2019-09-04 19:36:23 -07:00
Mike Swanson
6b486b6332 rename python scripts to barenames where possible 2019-09-04 19:20:19 -07:00
Mike Swanson
eca25952ad make: use $(RM) for removing files
This is one of the built-in variables for Make and can increase
portability on different operating systems (eg, on Windows, the
built-in $(RM) may be defined as "del" instead of "rm -f").
2019-09-04 14:22:49 -07:00
Mike Swanson
53b4133b20 move source dehacked to dedicated subdirectory 2019-09-01 17:53:55 -07:00
Mike Swanson
8e9ce31b70 dehacked: run through simplecpp, cheat replacements for Phase 1 only
Deduplicates effort from copying between multiple patch files, and we
now have unique outputs for each of our IWADs.

Having just "No Clipping 1 = idclip" proved to be troublesome with at
least prboom-plus, the engine running its cheat detecting twice and
becoming unable to activate no-clipping mode.  Worked around it by
also defining "No Clipping 2 = idspispopd", restoring that cheat's
functionality in most source ports and keeping both variants unique.
Chocolate Doom will only use the "idclip" version.
2019-09-01 17:39:58 -07:00
Mike Swanson
f814d7a43b Remove Doom 3: BFG Edition support
Might have been a nice idea to be able to run under absolutely any
Doom engine, this has caused problems with PrBoom-Plus for
compatibility, with that engine detecting our game as a BFG Edition
IWAD and applying certain workarounds that don’t actually make sense
in this case.

It is a rather niche use case to run under BFG Edition, and proper
PrBoom-Plus compatibility is much preferred.
2019-08-31 23:19:14 -07:00
MatthewTheGlutton
e8ac3e5078
Update skill definition text. 2019-08-21 00:04:58 -07:00
NickZ
b41bf30551
Update copyright year 2019-04-05 19:04:54 -07:00
Simon Howard
2f520543d3 graphics: Tweak positions of help screen items.
Some of the sprites have changed since the help screen was first put
together and are now overlapping with each other slightly. In
particular the box of shells is overlapping with the weapon above it.
Adjust positions by a couple of pixels and give some extra space.
2018-10-06 19:19:32 -04:00
Mike Swanson
9b4bd71aab titlepic: update copyright year 2018-05-31 11:34:41 -07:00
Mike Swanson
beebbed1f2 Complete Doom 3 BFG Support, and avoid crashing PrBoom-Plus
DOOM2.WAD contains a MAP33, which is being represented here as only
the dummy map, and also M_EPI1 and M_EPI2 lumps for the “Hell on Earth”
and “No Rest for the Living” texts, both of which are now replicated
here as well (using “Phase 2” and “The Missing Levels” as names instead).

No, we still don’t plan on having a real MAP33, the inclusion here is
only to avoid engine crashes.

Fixes: #533
Ref: #529
2018-05-30 14:50:56 -07:00
Mike Swanson
227ec720e6 Support running in Doom 3: BFG Edition
There are a few lumps added to the Doom IWADs required by the BFG Edition
of the game that would cause it to crash abnormally if the IWADs were
replaced by Freedoom.  We add these news graphics lumps to the game here.

BFG Edition also changes m_gdhigh to "Fullscreen:" and m_scrnsz to
"Gamepad:", neither change of which will ever be reflected in Freedoom,
but it won't crash in this engine anymore.

Closes: #529
2018-05-10 19:31:17 -07:00
Nick Zatkovich
1383f50e01 BUILD: fix make -j
Fixes #468
2017-07-31 20:54:57 -07:00
Nick Zatkovich
09f39d4e64 BUILD: code cleanup, VERSION fix
Performed code cleanup, made changes to version number Make gets from
Git to make it consistent across git versions
2017-07-31 14:34:47 -07:00
Nick Zatkovich
e9015b43b3 python3 compatibility fixes 2017-07-31 11:31:25 -07:00
Nick Zatkovich
7251b14892 rotate: fix rotate
Image.rotate had different behavior under 3.1.x, transpose works on all versions
2017-07-31 02:01:48 -07:00
Nick Zatkovich
cac04c1271 textgen: cleanup
Make the classes self-contained
Make the functions re-entrant
2017-07-31 01:19:53 -07:00
Nick Zatkovich
b00f9516e3 rotate.py: fix for PILLOW 3.1.x 2017-07-31 00:42:57 -07:00
Nick Zatkovich
4186211e3f config.py: fix kerning table
duplicate entries in the kerning table caused non-deterministic 
text graphics to be generated
2017-07-31 00:29:06 -07:00
Nick Zatkovich
648f6aebe9 textgen: alpha_composite instead of paste
pasting with kerning cut off some of the letters
2017-07-31 00:13:20 -07:00
Nick Zatkovich
dfde6e8793 create_captions.py: use default font 2017-07-30 23:32:11 -07:00
Nick Zatkovich
215b7c644e BUILD: remove the last of the imagemagick stuff
The only remaining thing depending on imagemagick are the dist scripts
2017-07-30 23:26:52 -07:00
Nick Zatkovich
6724ef5aba BUILD: switch to use pillow instead
create_caption still relies on ImageMagick
2017-07-30 18:58:54 -07:00
Nick Zatkovich
d3038fad30 BUILD: remove background color from textgen
remove the background color when generating the text, 
then remove the extraneous deutex arguments
2017-07-30 14:08:17 -07:00
Mike Swanson
9c6c681276 Burn all GIFs: Convert everything to PNGs.
DeuTex 5 now supports these, and we can use real transparency indexes
in the files too, so no more ugly cyan background!
2017-07-18 22:26:52 -07:00
Mike Swanson
0b3edc9548 Merge branch 'titlepic' of gh:Voros2/freedoom 2017-03-14 16:05:10 -07:00
RjY
3143339a64 parallel_textgen: run textgen in parallel
textgen: instead of running ImageMagick yourself, output a Makefile rule
for each graphic. Dependencies are passed on the command line.

Makefile: Add rule for 'textgen.mk' which is built by running textgen.
graphics.stamp depends on textgen.mk and all the built graphics files.
Then, each built graphic depends on textgen.mk, ensuring it is made
first. textgen.mk itself depends on textgen config, font, and dehacked.
(Makefile itself also depends on textgen.mk implicitly via include)

This duplicates previous behaviour where changing textgen config remakes
all text graphics, but one Make rule for each, allowing parallel make
with -j instead of the script doing one at a time.

The built IWADs are byte-for-byte identical before and after this patch
series is applied (provided VERSION is set to the same thing of course)

One problem is 'make clean' rebuilds textgen.mk because Make thinks the
Makefile needs it, but then immediately deletes it. Not sure how to fix.
Use git clean -fdx instead, or just don't clean twice in succession.

----

This gives the following improvement in build time (-j1 as control,
built on 4 cores and a large tmpfs so disk speed isn't a factor)

(master)

    make -j1  4.83s user 6.77s system 93% cpu 12.444 total
    make -j1  4.74s user 6.72s system 93% cpu 12.267 total
    make -j1  4.72s user 6.68s system 92% cpu 12.292 total

    make -j4  5.72s user 6.77s system 109% cpu 11.414 total
    make -j4  5.39s user 6.85s system 107% cpu 11.419 total
    make -j4  5.66s user 6.79s system 109% cpu 11.383 total

parallel_textgen

    make -j1  4.57s user 6.66s system 92% cpu 12.185 total
    make -j1  4.73s user 6.57s system 93% cpu 12.152 total
    make -j1  4.60s user 6.72s system 93% cpu 12.152 total

    make -j4  5.62s user 7.72s system 262% cpu 5.084 total
    make -j4  5.82s user 7.76s system 262% cpu 5.165 total
    make -j4  5.79s user 7.73s system 261% cpu 5.161 total
2017-03-14 17:46:40 +00:00
RjY
946db56ccd parallel_textgen: separate font_render and invoke_command
Replace font_render with get_command which returns the command line
instead of executing it. Move invoke_command to font_render callers.
2017-03-14 13:14:16 +00:00
Ayub Ahmed
758c53fb54 text/config.py: make t_phase images white 2017-03-11 21:05:25 +06:00
Ayub Ahmed
4f3acc1325 text/Makefile: select t_phase images for copying 2017-03-11 11:00:55 +06:00
Ayub Ahmed
7c00def304 config.py: add t_phase images to generate 2017-03-11 10:57:50 +06:00
Mike Swanson
c6235d6ffc Makefile: Make sure all built files are removed in make clean. 2017-02-19 12:22:57 -08:00
Mike Swanson
8835afef5f Copyright date bump and apply SPDX tags.
The tags are shorthand for the license of each file and avoid
copying the full license text into each one (and avoids having
to manually update the dates in each one...).
2017-02-15 16:41:53 -08:00
Simon Howard
8dbde24b19 textgen: Add DMWILV* graphics to Makefile.
These images contain the names of the FreeDM intermission screen
level names and need to be copied to the parent directory along
with the CWILV* and WILV* graphics. This fixes a bug introduced
by the earlier desymlinkification of the textgen graphics.
2015-12-24 18:36:36 +01:00
Simon Howard
78b25d0f22 graphics: Eliminate symlinks for text lumps.
Copy the generated text graphics into the parent directory, removing
the need for symlinks and making more progress towards #202.
2015-12-24 11:47:18 +01:00
Mike Swanson
e17a34d9ea de-symlinkify: fraggle 2015-12-17 01:22:01 -08:00
Mike Swanson
fcff7114b0 graphics: generate wikilrs and wivctms with smtextgen
Previously left alone, and with the old font, due to their special
nature, but since then, the small-text generator exists too!  Only
thing special is that wikilrs is rotated, which is resolved simply by
using ImageMagick.

Closes #184
2015-12-15 00:34:14 -08:00
Mike Swanson
90fd6b1686 Cleanup __pycache__ directories with "make clean" 2014-10-29 00:37:42 -07:00
Simon Howard
02bd566362 Update other scripts to support Python 3 build.
A couple of scripts were not Python 3 compatible. Update smtextgen to
use print() instead of bare print, and update the texture build script
to use the correct binary mode for writing binary files.
2014-10-28 03:55:43 +00:00
Jon Dowland
45908da295 Adjust IDENTIFY_OUTPUT_RE for graphicsmagick
The 'identify' binary supplied in graphicsmagick-imagemagick-compat outputs
lines of the form

     fontchars/font033.gif GIF 9x16+0+0 PseudoClass 32c 8-bit 194 0.000u 0:01

However the IDENTIFY_OUTPUT_RE regex was written against an output which lacked
the +0+0 suffix to the dimensions. This patch adjusts accordingly.
2014-10-13 22:36:06 +01:00
Mike Swanson
7356fe4dfa Use Voltcom9's suggestions for chapter titles in Phase 1
Also more consistently refer to the Phase 1 segments as chapters.
It's just another small bit of distancing from Doom.
2014-10-12 20:15:56 -07:00
Mike Swanson
8f48751792 fix the filenames in the last commit 2014-10-05 04:10:41 -07:00
Mike Swanson
110522f10e graphics/text/Makefile: clean more generated files 2014-10-05 04:06:51 -07:00
Simon Howard
c1ea99b483 dehacked: Use https: version of website link.
Github now provides encrypted https: access to its github.io pages.
Use the https: equivalent URL instead of the unencrypted http:
version. Update the CREDIT screen text to do the same.
2014-10-03 05:16:39 +00:00
Mike Swanson
f1c0909cd9 graphics/text/.gitignore additions 2014-09-26 07:17:26 -07:00
Simon Howard
7a1b49e965 textgen: Generate CREDIT screen.
This is one of the screens of text shown between demos in the demo
loop. Generate this from the contents of a static text file. I
originally wanted to generate this programatically from the CREDITS
file but there are too many contributors to fit them all on the page.
2014-09-07 05:25:12 +00:00
Simon Howard
9968fe0ed1 textgen: Add image include support for smtextgen.
Instead of generating text and image parts in separate stages, add
the ability to include an image in the smtextgen command line. This
makes the command line in the Makefile clearer.
2014-09-07 04:22:09 +00:00