Thomas Goyne
069af7cfca
Build wx without wxAny
2015-01-01 10:24:01 -08:00
Thomas Goyne
e485c469e2
Pull some of OptionValue to a cpp file
2014-12-28 20:21:48 -08:00
Thomas Goyne
a6b1639320
Extract some bits that don't need to be templated from templates
...
Cuts compile time by about 10% and shrinks the final binary a little.
2014-12-28 16:46:38 -08:00
Thomas Goyne
7fc2b248ad
Update dependencies
2014-11-30 15:28:58 -08:00
Thomas Goyne
97a19d4fe2
Shut up strdup "deprecation" warnings
2014-07-28 15:52:37 -07:00
Thomas Goyne
a01a84fb4f
Extract some common ffi API stuff
2014-07-28 12:30:44 -07:00
Thomas Goyne
cf252fa91a
Add simple type -> type name string compile time reflection stuff
...
This is needed for passing types to the LuaJIT ffi.
2014-07-28 12:30:44 -07:00
Thomas Goyne
bffbae0ed9
Fix vc++ compilation
2014-07-10 12:55:38 -07:00
Thomas Goyne
3b34ed9a77
Move AssTime to libaegisub and add tests
2014-07-06 19:25:49 -07:00
Thomas Goyne
dd70da35d4
Remove some cruft from the fonts collector
2014-07-06 19:25:48 -07:00
Thomas Goyne
df8ad34838
Eliminate pointless runtime datastructures for CalltipProvider
...
And add some tests and make it actually work correctly.
2014-07-04 20:37:36 -07:00
Thomas Goyne
71b74a6e86
Remove -D__STDC_FORMAT_MACROS from CXXFLAGS
...
The inttypes defines are no longer used anywhere due to that agi::Format
doesn't require them.
2014-07-01 12:22:39 -07:00
Thomas Goyne
a38793497f
Drop support for the DirectX SDK and require the Windows 8 SDK for DirectSound
2014-06-29 10:45:27 -07:00
Thomas Goyne
bc410a99f6
Change the in-memory storage of options to a sorted vector
2014-06-29 10:01:00 -07:00
Thomas Goyne
6a3a401f57
Update fontconfig
2014-06-26 16:50:54 -07:00
Thomas Goyne
b8f20dfe49
Add a custom stream IO implementation for Freetype
...
Freetype expects its IO to perform like mmap (i.e. seeking to be free),
but the non-unix implementation uses fseek and fread. This
implementation simply reads the entire file into a buffer, as fonts
generally aren't very big.
Cuts the time to recreate the fontconfig cache on my machine by about
60%.
2014-06-26 16:50:54 -07:00
Thomas Goyne
99cf941edd
Trim a bit more out of the ICU data files
2014-06-26 16:50:43 -07:00
Thomas Goyne
3c57dda9ac
Update to hunspell 1.3.3
2014-06-26 16:50:43 -07:00
Thomas Goyne
5816af6c01
Disable RTTI for ffms2, hunspell, and universalchardet
...
They don't actually use it so it's just pointless bloat.
2014-06-24 13:14:21 -07:00
Thomas Goyne
556d655c0b
Update ffmpeg, ffms2, libass
2014-06-06 12:08:51 -07:00
Thomas Goyne
3bd6c302c3
Add a bunch of missing project references
2014-06-02 13:02:05 -07:00
Thomas Goyne
9f8a648017
Disable a bunch of ICU stuff we don't use
...
Bumps ~800KB off the executable (and 100MB off icu.lib).
2014-06-02 13:02:05 -07:00
Thomas Goyne
ff9beb850c
Build wx without iostream support
2014-05-31 08:11:32 -07:00
Thomas Goyne
060536824b
Kill ScintillaTextCtrl and just always use the UTF-8 methods
...
Trivially improves performance and reduces the opportunities for wxSTC
to fuck up.
2014-05-30 13:24:38 -07:00
Thomas Goyne
e6b495dc1b
Enable ffmpeg's png decoder
2014-05-30 13:24:38 -07:00
Thomas Goyne
db3452bcde
Disable decoders for dumb rarely-used formats which have huge data tables
2014-05-30 13:24:38 -07:00
Thomas Goyne
59489b8f8c
Extract some of the string formatter implementation to format.cpp
2014-05-30 11:53:15 -07:00
Thomas Goyne
37c02ae127
Replace wxString::Format with agi::format
...
It's modestly faster, significantly more type-safe, and doesn't assert
when there's too few arguments, which causes problems for plural forms.
Closes #1733 .
2014-05-30 11:53:14 -07:00
Thomas Goyne
b43788fa7f
Replace boost::format with agi::format
...
boost::format is slow to compile, slow to run, and has an unpleasant
interface.
2014-05-30 08:30:31 -07:00
Thomas Goyne
1f7c47239b
Replace timeval junk with std::chrono
2014-05-26 09:34:19 -07:00
Thomas Goyne
2bf23af00a
Remove a lot of pointless headers for dialogs
...
Most of the dialogs in Aegisub have a public interface consisting of a
single function, so there's really no need to expose the actual dialog
classes to the rest of the program. Add dialogs.h with the declarations
of all of those functions (most of which are just ShowFooDialog()), and
kill a million other headers.
2014-05-22 14:58:39 -07:00
Thomas Goyne
6a8958f287
Delete the Clean Script Info macro
...
It doesn't actually do anything anymore.
2014-05-22 09:29:15 -07:00
Thomas Goyne
19e8f19e52
Redesign project file handling
...
Add a new Project class which is responsible for everything related to
opening and closing audio, video, subtitles, timecodes and keyframes.
This pulls almost everything not directly related to playing audio/video
out of the audio and video controllers, pulls more crap out of
FrameMain, and happens to make things a little simpler in the process.
2014-05-22 09:29:12 -07:00
Thomas Goyne
cddefd8ed9
Add RGB <-> YCbCr conversion stuff to libaegisub
2014-05-19 19:32:25 -07:00
Thomas Goyne
2cf35b5043
Force-enable native TLS in wxWidgets
...
It is off by default on Windows due to that it breaks if a wx-using
library is loaded with LoadLibrary on XP, but that is not a use-case we
care about.
2014-05-17 18:32:04 -07:00
Thomas Goyne
d0ce26d7df
Add an option to resample the script to the resolution mismatch dialog
...
Closes #1382 .
2014-05-17 18:01:41 -07:00
Thomas Goyne
0a1660c03b
Add version information to the windows executable
...
Closes #913 .
2014-05-15 08:39:09 -07:00
Thomas Goyne
48acd4aa13
Install libpng headers
2014-05-13 15:35:00 -07:00
Thomas Goyne
b7b2ea2d61
Skip building wx files that don't actually define anything
2014-05-13 11:51:22 -07:00
Thomas Goyne
66ba65774a
Add custom build system for wxWidgets
2014-05-13 11:02:46 -07:00
Thomas Goyne
843412beb0
Install headers before compiling rather than after
2014-05-13 09:24:40 -07:00
Thomas Goyne
95eb603f8d
Link against zlib.lib rather than wxzlib.lib
2014-05-12 17:42:26 -07:00
Thomas Goyne
a0efd18f96
Use wx's vendored copy of zlib rather than having a second copy in a submodule
2014-05-12 17:42:26 -07:00
Thomas Goyne
3db69b0a29
Add more missing project dependencies for working parallel builds
2014-05-10 08:19:59 -07:00
Thomas Goyne
eb2793f88d
Add msbuild build system for FFmpeg
...
This eliminates the need for a msys environment to build any part of
Aegisub. Also happens to make building FFmpeg much faster (~3 minutes
vs. ~10 minutes for me).
2014-05-10 08:19:59 -07:00
Thomas Goyne
2c0568090c
Add a custom build task for getting the git version info
...
Eliminates the need to have a copy of git accessible in the msys
build environment and reduces the dependency on msys to just FFmpeg.
Probably trivially faster due to how slow shell scripts are on Windows.
2014-05-10 06:12:37 -07:00
Thomas Goyne
94a060a556
Add unicode case conversion functions to the automation module
2014-05-09 07:00:48 -07:00
Thomas Goyne
74e995b915
Disable more wx stuff we don't use
2014-05-08 17:26:27 -07:00
Thomas Goyne
36d9a3c490
Add msbuild build system for fribidi
...
Thankfully the release tarball comes with pre-built versions of
the generated files.
2014-05-08 15:03:42 -07:00
Thomas Goyne
2e40f2b246
Switch to downloading a release tarball for fribidi
2014-05-08 14:41:38 -07:00
Thomas Goyne
135b61595c
Add missing build dependencies on minilua
2014-05-08 13:13:45 -07:00
Thomas Goyne
b2c210ffeb
Delete old config file for ICU
2014-05-08 12:38:58 -07:00
Thomas Goyne
679b96fdfe
Add msbuild build system for ICU
2014-05-08 12:34:04 -07:00
Thomas Goyne
d3a4bed994
Port respack to lua
...
Simplifies the build system a little by cutting down on the number of
helpers that need to be built.
2014-05-08 10:39:18 -07:00
Thomas Goyne
9f8a10b014
Strip a few more MB of unused stuff from ICU's data files
2014-05-07 15:57:48 -07:00
Thomas Goyne
86ebd15ffb
Update to ICU 53.1
2014-05-06 17:20:13 -07:00
Thomas Goyne
ca1cf8d9e7
Set the version in the Windows installer automatically
2014-05-06 08:07:57 -07:00
Niels Martin Hansen
5a4920c48f
Option to change parallel make options for gmake based VS projects
...
It seems that gmake can livelock in parallel make mode on Windows
in some cases. This provides an escape hatch for those cases.
2014-05-04 10:35:15 +02:00
Niels Martin Hansen
5bb4754e40
Option to disable HAALISOURCE when building FFMS2 on VS
...
Visual Studio Express does not supply ATL and can't build the Haali-
supplied code in FFMS2, so provide an escape hatch for that.
2014-05-04 09:56:37 +02:00
Niels Martin Hansen
143de0713b
Remove whitespace in MSYS shell environment vars
...
It seems that whitespace around the paths in the PATH, LIB, INCLUDE env
vars can break in some situations, making the build fail entirely.
Unfortunately this also makes the file harder to read and diff.
2014-05-03 01:08:56 +02:00
Thomas Goyne
81c72c5fe9
Install lua.hpp when building luajit
2014-05-02 13:16:43 -07:00
Thomas Goyne
1eba2f035c
Add a separate SSA subtitle format and move all of the SSA writing stuff there
2014-04-30 06:29:37 -07:00
Thomas Goyne
e5f935678e
Build LuaJIT in Lua 5.2 mode on Windows as well
2014-04-28 10:58:55 -07:00
Thomas Goyne
5be69dc7e8
Fix compilation of LuaJIT on x64 Windows
2014-04-28 09:13:09 -07:00
Thomas Goyne
63f4bf1beb
Switch from regular Lua to LuaJIT
2014-04-28 07:38:30 -07:00
Thomas Goyne
9492192b73
Switch back to building Lua as C
...
In preparation for switching to LuaJIT, which doesn't support PUC Lua's
thing of using C++ exceptions for lua_error.
Requires replacing all uses of lua_error (and things calling lua_error)
with custom versions that throw an exception instead and adding an
exception -> lua error wrapper at all C++ -> Lua boundaries.
2014-04-27 10:37:23 -07:00
Thomas Goyne
2adcc76cf6
Switch automation tests to busted
...
This requires shuffling a bunch of stuff around to get a CLI lua
executable that uses an automation-like environment, but that's
something that'll be nice to have in the future anyway.
Busted indirectly depends on lfs and we currently can't use external
binary modules, so add a copy of lfs to the repo and build it with
Aegisub.
2014-04-26 08:16:38 -07:00
Thomas Goyne
b8af29da0d
Move some of the automation machinery to libaegisub
2014-04-25 15:03:18 -07:00
Niels Martin Hansen
d53c36e67f
Merge branch 'extradata'
...
Conflicts:
src/ass_parser.cpp
2014-04-25 17:22:15 +02:00
Niels Martin Hansen
bcd41bd986
Windows build system for luabins (untested)
2014-04-25 15:08:54 +02:00
Thomas Goyne
6fc4c8da14
Move make_unique to its own header file
...
Rebuilding the entire project after touching util.h gets old fast.
2014-04-23 15:29:23 -07:00
Thomas Goyne
af32733797
Move character count stuff to libaegisub
2014-04-18 20:11:38 -07:00
Thomas Goyne
5df871f599
Extract all of the column-specific logic from BaseGrid
2014-04-18 12:17:03 -07:00
Thomas Goyne
5721cd1453
Update ffms2
2014-04-17 11:46:28 -07:00
Thomas Goyne
df42fdb2d2
Restore the text selection and cursor position on undo
2014-04-17 11:46:28 -07:00
Thomas Goyne
c1f968a252
Add filters file for the FFMS2 project
2014-03-28 09:05:36 -07:00
Thomas Goyne
290cdefd9d
Skip building the wx libraries we don't use
2014-03-26 15:13:21 -07:00
Thomas Goyne
736b1d2fa7
Actually enable optimizations for ICU in release builds
2014-03-26 12:34:14 -07:00
Thomas Goyne
16804f41c9
Delete in-repo copy of intttypes.h since vs2013 has it
2014-03-26 08:25:24 -07:00
Thomas Goyne
aa46c49403
Pull some of the context (de)init out of FrameMain
...
And actually do deinitialize more of the stuff in the context.
2014-03-25 20:04:48 -07:00
Thomas Goyne
523d858374
Extract SelectionController from BaseGrid
2014-03-25 17:06:47 -07:00
Thomas Goyne
e71270f0f0
Refactor the rest of the factories
2014-03-24 12:40:03 -07:00
Thomas Goyne
470f85d365
Convert VideoProviderManager to AudioProviderManager's new design
2014-03-24 09:25:26 -07:00
Thomas Goyne
938025acb1
Redesign AudioProviderFactory
...
Register functions which create each type of provider rather than the
provider types themselves so that the concrete types don't need to be
publicly exposed, and use a static list of providers rather than
registering them at runtime.
2014-03-24 06:55:35 -07:00
Thomas Goyne
cb1f04481a
Use read_file_mapping for reading attachments
2014-03-21 07:44:22 -07:00
Thomas Goyne
58db99cd24
Simplify PCMAudioProvider a bit and pull it fully into the cpp file
2014-03-20 20:26:17 -07:00
Thomas Goyne
3222275750
Use boost.interprocess's mmap wrapper in the PCM provider
2014-03-20 20:25:44 -07:00
Thomas Goyne
aab025c830
Write minidumps on windows rather than just basic stack traces
2014-03-20 10:41:12 -07:00
Thomas Goyne
61b19a17e8
Extract crashlog writing from main.cpp
2014-03-20 10:41:12 -07:00
Thomas Goyne
b7b8c3d251
Update fontconfig
2014-03-14 07:00:37 -07:00
Thomas Goyne
409eee4510
Install CSRI and iconv headers rather than mucking about with include paths
2014-03-11 12:27:34 -07:00
Thomas Goyne
843e71331f
Add in-repo copy of Lua and use it rather than the system copy
...
Aegisub needs Lua built as C++ (for stack unwinding on errors). No one
packages it like that, so at the moment we can't actually use systme
packages for Lua.
Fixes a bunch of memory leaks on Automation errors.
2014-03-11 12:15:01 -07:00
Thomas Goyne
33a4a056a4
Move everything up a level since the root dir no longer has stuff
2014-03-11 12:14:57 -07:00
Amar Takhar
91d73ec8ea
SVN Transition Step 3/7
...
1. cd aegisub/
2. svn mv *cpp *h src/
3. svn mv Makefile.am MatroskaParser.c auto4_perldata.inc bitmaps boost \
changelog.txt config gl include libosxutil libresrc md5.c msvc mythes.cxx \
mythes.hxx res.rc src/
4. cd ..
5. svn mv FFmpegSource2/ INSTALL Makefile.am README acinclude.m4 \
autogen.sh automation/ bin build configure.in desktop dummy.txt lib \
libass/ m4macros/ packages/ po/ scripts/ universalchardet/ aegisub/
6. mkdir -p docs/wiki_convert
7. svn add docs/wiki_convert
8. cd docs
9. svn mv aegisub_convert_docs.pl convert.bat output wiki_convert/
* See r2749 for full description.
Originally committed to SVN as r2752.
2009-03-08 08:30:39 +00:00
Rodrigo Braz Monteiro
7b552282ff
Fixed config for MSVC
...
Originally committed to SVN as r2622.
2009-01-04 06:42:49 +00:00
Amar Takhar
0763541848
Change how configuration works.
...
* move win32/config0.h -> config/config_windows0.h
* move win32/stdint.h -> msvc/stdint.h
* move posix/defines.h -> config/config_unix.h
* add config.h - brings in config_(windows|unix).h as required
* add config.h to *.cpp
* Self-contain FFmpegSource2 with required function defines wrapped with
__UNIX__ instead of the now removed defines.h.
* Edit aegisub_vs2008.vcproj to remove explicit inclusion of config.h, also
change VCPreBuildEventTool to create windows_config.h from
windows_config0.h. Add msvc to include path.
* Change configure to create ./acconf.h instead of posix/acconf.h
This will allow us to create a more standard and platform agnostic way of
configuration aegsisub during build time.
Originally committed to SVN as r2621.
2009-01-04 06:31:48 +00:00
Niels Martin Hansen
ea2431ed4c
Remove some failed stuff that shouldn't have been committed in the first place...
...
Originally committed to SVN as r2600.
2009-01-01 11:11:47 +00:00
Rodrigo Braz Monteiro
73c66cc585
OpenAL support in installer.
...
Originally committed to SVN as r2509.
2008-12-20 00:17:32 +00:00
Rodrigo Braz Monteiro
1a872ddb64
Updated something, I guess.
...
Originally committed to SVN as r2498.
2008-12-05 20:52:48 +00:00
Niels Martin Hansen
a6c169a4b2
Complete rewrite of the DirectSound audio player, this time doing threading and synchronisation better, and following the COM apartment model strictly too. It replaces the old player by default, but the old is still available in the runtime configuration.
...
Originally committed to SVN as r2495.
2008-11-27 18:35:26 +00:00