Commit Graph

206 Commits

Author SHA1 Message Date
Travis Howell
488873353b Only allocate _scaleBuffer when required.
svn-id: r24847
2006-12-14 05:32:16 +00:00
Torbjörn Andersson
45886ec8ed When drawing an interlaced frame, only clear every other line instead of the
entire buffer.

Introduced a _drawBuffer pointer which points either to _scaledBuffer or
_frameBuffer1. That way, we don't need to copy _frameBuffer1 every time we
draw an unscaled frame. (Probably the most common case by far.)

Adjusted the Broken Sword 1 DXA player for the second change. (It sneakily
avoids copying each frame by using _drawBuffer directly.)

svn-id: r24846
2006-12-14 05:21:19 +00:00
Travis Howell
42228fdc36 Add cyx's patch for endian issues in DXA player
svn-id: r24844
2006-12-11 22:48:57 +00:00
Travis Howell
a4b835838d Whitespace changes
svn-id: r24843
2006-12-11 22:35:50 +00:00
Travis Howell
1ba6947440 Adjust DXA scaling code for Broken Sword 1
svn-id: r24841
2006-12-11 09:26:54 +00:00
Travis Howell
983954821c Fix typo in initial _scaleBuffer check
svn-id: r24840
2006-12-11 08:31:32 +00:00
Travis Howell
b00e143d74 Add patch #1611503 - DXA: Improved encoder (filesize and speed)
svn-id: r24838
2006-12-11 06:53:46 +00:00
Johannes Schickel
3a81941981 - Added dialog for selecting the theme to use
- Added runtime theme switching

svn-id: r24213
2006-10-08 18:22:28 +00:00
Paweł Kołodziejski
1307f597a6 fixed assert in isspace function because wrong variable type for chars when they value is greater then 128. isspace take as "int" type param (at least in ms sdk)
svn-id: r24210
2006-10-08 15:55:09 +00:00
Torbjörn Andersson
0b1c1702a5 Renamed constant to reflect recent change of file name.
svn-id: r23777
2006-08-27 10:55:44 +00:00
Torbjörn Andersson
8ae050ff08 Renamed graphics/animation.[cpp|h] to graphics/mpeg_player.[cpp|h] to be more
consistent with dxa_player.[cpp|h]. (Though actually, "decoder" might be more
accurate...)

svn-id: r23774
2006-08-27 09:10:24 +00:00
Torbjörn Andersson
cc3b4cdf99 Now that the cutscene handling in both BS1 and BS2 has been extended to play
DXA movies (the MPEG movies still work, of course), there is no longer any need
for the MPEG decoder to handle sound and frame syncing. That is now the
responsibility of the player, not the decoder.

The obvious next step, then, would be to put that in a new player class, and
have both BS1 and BS2 use that. Maybe FF as well.

svn-id: r23757
2006-08-26 12:29:00 +00:00
Max Horn
53f73eac85 Added explicit string equals/hash functors to a new header common/hash-str.h; removed Hash functor specialization for String and char pointers; changed all code using hashmaps with string keys to explicitly specify whether they honor or ignore case
svn-id: r23634
2006-07-30 12:21:54 +00:00
Torbjörn Andersson
6358547a43 More whitespace changes.
svn-id: r23496
2006-07-14 13:33:58 +00:00
Torbjörn Andersson
5658e71f4d Added support for DXA cutscenes, while still retaining support for the old MPEG
cutscenes and the "dummy" (subtitles and voice-over) mode. Several tweaks and
cleanups were made in this process, and there may very well be regressions, but
it should be stable enough to commit.

svn-id: r23420
2006-07-08 11:42:07 +00:00
Travis Howell
fa4aa40b7b Correct docs for copyFrameToBuffer()
svn-id: r23336
2006-06-28 14:27:56 +00:00
Travis Howell
1c19735226 Add patch #1504492 - DXA: New compression scheme
svn-id: r23333
2006-06-28 14:10:07 +00:00
Travis Howell
dd57c57982 Add eriktorbjorn's patch for DXA unification, with more changes
svn-id: r23332
2006-06-28 14:06:54 +00:00
Oystein Eftevaag
8d3887f170 Fixes a warning with VC++ 2005 Express.
svn-id: r23307
2006-06-25 01:19:34 +00:00
Willem Jan Palenstijn
dc41d02ac7 fix character clipping as mentioned by Marcus on the mailing list on 22 june
svn-id: r23292
2006-06-24 12:27:07 +00:00
Max Horn
9a955180a4 * Renamed config.mak to config.mk
* Renamed common.rules to rules.mk
* Removed explicit declaration of MODULE_DIRS in various spots (instead we let rules.mk compute it)

svn-id: r23275
2006-06-24 08:48:11 +00:00
Travis Howell
3c11d2fa18 Move moveScreen to common surface functions for graphics
svn-id: r23218
2006-06-21 11:33:04 +00:00
Torbjörn Andersson
49af7d44c2 Applied patches from bug report #1276480, "GUI: Accented characters". This
changes quite a lot of things in the font renderer and the convbdf tools, so
there may be regressions, but we want this feature for 0.9.0.

svn-id: r23208
2006-06-20 22:50:27 +00:00
Torbjörn Andersson
df4f95f805 Let the [cursor] palette manager handle disableCursorPalette() too, to avoid
cursor glitch in at least some HE games which first set a cursor palette, and
then disable it. (The disabled palette would be re-enabled after dismissing the
GUI.)

svn-id: r23081
2006-06-13 09:48:46 +00:00
Torbjörn Andersson
f57f024822 Format the guifont[] data for better readability
svn-id: r22916
2006-06-04 15:39:08 +00:00
Torbjörn Andersson
3114f19d94 MPEG player fixes:
* Initialise _frameWidth and _frameHeight to prevent them from being undefined.
* Fix BS2 subtitle positioning. (Fixes bug #1499916)
* In BS2, copy the frame to the backend in 8-bit mode.
* Fix compilation in 8-bit mode.

BS2 subtitles aren't quite right in 8-bit mode, but I expect we want to
re-design things a bit if we ever add DXA cutscenes. We can fix minor details
then.

svn-id: r22859
2006-06-03 09:43:10 +00:00
Torbjörn Andersson
c8d3f5a80f Should use delete[] instead of delete here, too. (I knew where the cursor
manager code was copied from. :-)

svn-id: r22675
2006-05-27 11:55:03 +00:00
Willem Jan Palenstijn
0fef7b32b2 delete[] instead of delete
svn-id: r22673
2006-05-27 11:47:44 +00:00
Torbjörn Andersson
79819da301 The GUI never asked for the cursor to be visible. I'm not sure why that used to
work before the cursor manager. Oh well, the launcher should have a visible
cursor again, knock on wood.

svn-id: r22641
2006-05-25 23:20:35 +00:00
Torbjörn Andersson
8062eb6ec3 Set and show/hide mouse cursors through a "cursor manager" (analogous to the
recently added (cursor) palette manager) so that the cursor can be properly
restored after returning from the GUI.

If there's any C++ magic that can keep the backend functions from being called
by anything else than these managing classes, that would probably be a good
idea. Also, since the cursor manager keeps a copy of the cursor image, perhaps
there are at least some backends that will no longer need to?

svn-id: r22639
2006-05-25 22:51:42 +00:00
Torbjörn Andersson
21a74b6f41 Cleanup.
svn-id: r22635
2006-05-25 20:29:17 +00:00
Torbjörn Andersson
0e6831fa32 Fixed stupid error in replaceCursorPalette().
svn-id: r22629
2006-05-25 19:22:28 +00:00
Torbjörn Andersson
a49c64799f Fixed comment to make it less obvious where I copied the general structure of
the palette manager from.

svn-id: r22628
2006-05-25 18:31:56 +00:00
Torbjörn Andersson
d7296ae666 Make it so that if the new cursor palette to be set has zero colours, the
cursor palette is disabled.

Also, when replacing a cursor palette, try to re-use the old palette buffer, as
a minor optimization. (Not that these functions should need any optimization,
but it's simple and shouldn't hurt.)

svn-id: r22554
2006-05-21 13:27:18 +00:00
Torbjörn Andersson
75f226953a Oops, I guess I never got around to fully implement replaceCursorPalette().
svn-id: r22552
2006-05-21 12:32:39 +00:00
Torbjörn Andersson
3e973d2a91 Forgot to set g_initialized to true.
svn-id: r22544
2006-05-20 11:24:45 +00:00
Torbjörn Andersson
6cdd98b617 After the GUI has finished, restore the old cursor palette (if any). For this
to work, cursor palette now has to be set using the new "palette manager". See
graphics/paletteman.cpp

svn-id: r22543
2006-05-20 10:59:25 +00:00
Torbjörn Andersson
e563d0c182 Renamed screenChanged() to handleScreenChanged().
svn-id: r22518
2006-05-18 13:58:33 +00:00
Torbjörn Andersson
5c1f91eed4 Allow changing scaler while playing MPEG cutscenes.
svn-id: r22515
2006-05-18 13:18:02 +00:00
Eugene Sandulenko
14ec3f45fa - Heavily modified patch #1214784: "Disable overlay scaling"
- Eriktorbjorn's patch from same tracker item for scaling sword1/2 cutscenes
  is applied as is. It lacks resolution switch on-the-fly.
- GUI widgets are repositioned on the fly and use most space, even aspect
  ratio corrected screen is used without scaling
- Heavy tesing is required, but works for me in all cases except for bug
  #1483272: "GUI: SCUMM pause dialog breaks upon scaler switch" which needs more
  work.
- I probavly broke some backend or two

svn-id: r22505
2006-05-17 23:52:45 +00:00
Eugene Sandulenko
d2546e3979 - Updated MSVC8 project files
- Renamed base/options.cpp to base/commandLine.cpp because of conflict
  with gui/options.cpp which sit in same directory in MSVC builds
- Moved AudioCDManager singleton declaration outside of Audio namespace
- Fixed numerous MSVC warning of potentially uninitialized variables and
  int <-> bool conversions.

svn-id: r22397
2006-05-09 14:16:43 +00:00
Max Horn
27307acd7c Moved the AudioCDManager as well as class AudioStream and its (standard) subclasses to namespace Audio
svn-id: r22231
2006-04-29 22:33:31 +00:00
Lars Persson
aec70b0bb2 Implementation and declartion in intern.h differed. Changed so both is using the same datatype.
svn-id: r22074
2006-04-21 20:56:53 +00:00
Eugene Sandulenko
718532b386 Fix ASM HQ routines, because RGBtoYUV and LUT16to32 are on heap now.
svn-id: r22041
2006-04-19 22:53:37 +00:00
Max Horn
a76689ed71 Make use of triple-interpolation function in SuperEagel (should save a few cycles... not that it really matters :)
svn-id: r21985
2006-04-17 18:54:20 +00:00
Max Horn
43143daca7 Replace interpolate32 calls by interpolate16 calls (as we only work on single pixels here currently)
svn-id: r21983
2006-04-17 18:28:19 +00:00
Max Horn
c128bad7df Simple optimization
svn-id: r21982
2006-04-17 18:23:16 +00:00
Max Horn
b47e531425 Renamed and merge some of the pixel interpolation functions (the names still could be better)
svn-id: r21981
2006-04-17 18:17:02 +00:00
Max Horn
340705c138 Allocate LUT/YUV tables on the heap
svn-id: r21971
2006-04-17 11:16:11 +00:00
Max Horn
35a2fc4028 Modify InitLUT to make use of ColorMasks, making it easier to add support for other color modes eventually. This also fixes the computation of LUT16to32 which so far always assumed 565 mode.
svn-id: r21970
2006-04-17 11:11:07 +00:00
Max Horn
2732ed3dce Fixed (A)RGBToColor templates
svn-id: r21969
2006-04-17 11:09:21 +00:00
Max Horn
d7944e839b Since we define alpha value 255 to mean 'opaque', or T::kAlphaMask into the result of RGBToColor
svn-id: r21968
2006-04-17 10:44:02 +00:00
Max Horn
fe9f60e219 Add color conversion functions based on ColorMasks, to demonstrate how this would work
svn-id: r21967
2006-04-17 10:41:18 +00:00
Max Horn
ea85e8c986 Moved ColorMasks to their own new header graphics/colormasks.h, so that both the scalers and the GUI code can access them. Also added (untested) entries for 1555, 444, 888 and 8888 modes
svn-id: r21966
2006-04-17 10:22:05 +00:00
Max Horn
d27396d51d cleanup
svn-id: r21964
2006-04-17 09:35:42 +00:00
Max Horn
de250812e5 Removed my Altivec version of the hqx blitters, since it (a) didn't work with newer GCC versions, (b) speed was improved on some systems, but actually slower on others, and (c) even on my old 400 Mhz G4 hqx is fast enough w/o it
svn-id: r21961
2006-04-17 08:38:26 +00:00
Johannes Schickel
e9cbf5fcbd - Moves Graphics::loadFont to Graphics::NewFont::loadFont
- adds code for caching of fonts (just for Graphics::NewFont)
- implements cache using in the modern theme for custom fonts
- adds cache file for current normal font in the theme zip file

svn-id: r21952
2006-04-16 19:54:39 +00:00
Max Horn
1e47edcd22 cleanup
svn-id: r21921
2006-04-15 21:29:41 +00:00
Johannes Schickel
96cf7028b9 - implements .bdf font loader based on convbdf (sure could have some clean up)
- adds three different font styles to the themes (normal, bold (default one), italic)
- implements code for specifing the font files in the theme config ('fontfile_normal','fontfile_bold' and 'fontfile_italic' in the 'extra' section)
- changes EditTextWidget to use the normal font (has some minor aligment problems with the caret now, though)
- extends the FontManager (new functions: getFontByName, assignFontToName, removeFontName)
- adds the font style constans to the builtin constants for the evaluator)

svn-id: r21868
2006-04-14 02:16:55 +00:00
Max Horn
1470dadb1d Changed File::open to take a Common::String as file name parameter
svn-id: r21867
2006-04-14 01:48:51 +00:00
Max Horn
5072816109 Use const keyword to help compiler optimize code
svn-id: r21866
2006-04-14 01:47:33 +00:00
Max Horn
e4930bd96d Don't use HAVE_CONFIG_H / config.h directly, use scummsys.h instead
svn-id: r21605
2006-04-04 21:45:13 +00:00
Max Horn
9217472f0e With this change, backends are now responsible for instantiating their OSystem class before calling scummvm_main (Note: PalmOS and Symbian are not yet converted, and won't work currently)
svn-id: r21557
2006-04-02 14:16:31 +00:00
Max Horn
8cdee5a931 Do not #include endian.h in scummsys.h (cuts down deps on endian.h from ~400 to ~250). Many greetings to eriktorbjorn, and have fun recompiling.
svn-id: r21500
2006-03-29 15:59:37 +00:00
Oystein Eftevaag
58eed3830b * 'make bundle' now copies the default theme files into the bundle.
* Common::File will now look inside the application bundle on MacOS X for a file if
it can't find it anywhere else (so it'll find default-theme.ini and .zip)
* Cleaned up some #ifs.

svn-id: r21308
2006-03-15 07:43:44 +00:00
Oystein Eftevaag
c3d8674a26 Adds support for building on Intel Macs, using a modified
version of patch 1448395 by Aubin and some of my 
own changes.

Notably:
* Two elements of a struct in backends/midi/quicktime.cpp
needed to be forced to BE.
* NASM set to build Mach-O binaries
* configure now checks for Altivec support on Darwin hosts,
instead of assuming it. Altivec support can also be disabled (not 100% sure if t
his is actually needed, but might be handy for crosscompiling).
* The aliasing of the symbols contained in the .asm files
done on Windows were also needed on MacOS.

Note that while the asm code is properly compiled and linked
in, HQ2/3x support will still not work properly on Intel macs
if NASM is enabled.

svn-id: r21280
2006-03-14 12:18:04 +00:00
Chris Apers
65e688ac15 Fixed compilation, this could be used with all systems (?)
svn-id: r21112
2006-03-06 19:44:15 +00:00
Paweł Kołodziejski
95116f2098 define int types for msvc to allow compile mpeg2 library. msvc does not fully conform C99
svn-id: r21073
2006-03-04 15:26:26 +00:00
Max Horn
48fb7ea979 Fix bug #1436178 (ALL: int8_t in graphics/animation in conflict with ISO99 C)
svn-id: r20877
2006-02-25 14:42:21 +00:00
Max Horn
9cec516e51 Moved fonts to a new dir graphics/fonts
svn-id: r20800
2006-02-20 20:42:03 +00:00
Max Horn
e49e7ebb3f Fixing up my previous commit: finished moving common/scaler* to graphics
svn-id: r20798
2006-02-20 20:40:12 +00:00
Max Horn
7335d348ba Moved common/scaler* to graphics/
svn-id: r20797
2006-02-20 20:29:02 +00:00
Max Horn
80cf2fa46f Reduced data duplication in module.mk files; added module.mk files for null and x11 backends; added engines/module.mk
svn-id: r20584
2006-02-12 00:16:31 +00:00
Max Horn
13d6a56867 Change CVS keywords to SVN keywords
svn-id: r20519
2006-02-11 10:10:44 +00:00
Max Horn
0ad58cdb95 Removed .cvsignore files
svn-id: r20424
2006-02-07 22:50:14 +00:00
Paweł Kołodziejski
2ebdbbf5e0 fixes allow compile with emsvc4 again
svn-id: r20355
2006-02-03 07:30:29 +00:00
Eugene Sandulenko
46c961f28d Oops again. Don't beat me hard for plugging in 8800+ glyphs font instead
of 130-glyphs one :)

svn-id: r20327
2006-01-31 03:25:03 +00:00
Eugene Sandulenko
2f33ca6c58 oops. Forgot about our small backends.
svn-id: r20326
2006-01-31 03:15:06 +00:00
Eugene Sandulenko
28753b9fdf Plug in better font. Unfortunately we can't use Arial12 which Krest put on
his mock-ups due to license restrictions, i.e. Microsoft prohibits any
reverse engineering and modifications of it and we need to convert it into
raster font.

Fortunately there are free fonts in the wild. I tried Bitstream Vera, but it
looked too wide, or crappy if horizontal resolution was altered. Next try
was Adobe Helvetica from X.org. Only requirement is to verbose copyright
notice and disclaimer.

However we will need both bold (provided) and normal wieghts of font in new
GUI for use in text inputs. This is work to do.

svn-id: r20325
2006-01-31 03:11:40 +00:00
Johannes Schickel
5051b080a2 - adds the new gui renderer also a new implementation for the classic gui
- adds a ImageMan and ImageDec class for loading and managing image files
 - adds a loader for zip files which is used by the new theme and the image manager
 - changes the widgets to use the new gui code
 - changes the scumm dialogs to use the new gui code
 - fixes a #include problem in the sky debugger with the new gui code

 To use the new gui copy gui/themes/default-theme.zip to your extrapath.
If the theme zip can not be found the gui will fallback to the classic theme.
If you want to change the gui styles use "gui_theme=classic" for the classic theme
and "gui_theme=default-theme" for the new theme.

Thanks to eriktorbjorn for testing and help with the new theme and to sev for
reviewing this patch.

svn-id: r20227
2006-01-27 15:43:23 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00
Eugene Sandulenko
edfae828f6 Patch #1341626: "New GP32 port"
svn-id: r19710
2005-11-27 02:35:57 +00:00
Eugene Sandulenko
b36677af71 Update FSF address. Eek. Actually that took place on May 1, 2005
svn-id: r19142
2005-10-18 01:30:26 +00:00
Chris Apers
3f2f5e0997 PalmOS : very bad hack to fix global constructor problem with ARM
svn-id: r18970
2005-10-08 21:11:45 +00:00
Chris Apers
be9d8951eb Change PalmOS ident
svn-id: r18748
2005-09-03 16:24:58 +00:00
Eugene Sandulenko
6b4484472b Remove trailing whitespaces.
svn-id: r18604
2005-07-30 21:11:48 +00:00
Andrew Kurushin
922c5e29a0 fix chunk size
svn-id: r18590
2005-07-29 16:50:09 +00:00
Eugene Sandulenko
2d0f26d4ee Simple ILBM images reader.
svn-id: r18588
2005-07-29 16:34:42 +00:00
Max Horn
8b1d7b9166 When including files from common/, explicitly use the common/ prefix
svn-id: r18444
2005-06-24 15:23:51 +00:00
Lars Persson
1c69696a9a Patches needed to build for SYMBIAN32 WINS/GCC added.
Test built for Symbian and run on P910i without any major problems.
Test built for MSVC6. Changed parts seems to compile ok but there are some problems with MSVC6 and some of the targets which the EPOC build does n't support (KYRA,SAGA).

svn-id: r18430
2005-06-21 22:08:21 +00:00
Max Horn
096e04ef05 Added virtual destructor, to silence a few more GCC 4 warnings
svn-id: r18419
2005-06-20 17:59:00 +00:00
Max Horn
206d11f585 Remove special case for char 0x20 (=space). No idea why it was there in the first place
svn-id: r18335
2005-06-04 13:19:53 +00:00
Max Horn
b985f34049 Fix word wrapping: do not generate spaces at the start/end of the wrapped lines
svn-id: r18142
2005-05-17 23:14:13 +00:00
Max Horn
653c9fc74d Added missing comma symbol, based on semicolon
svn-id: r18140
2005-05-17 22:43:50 +00:00
Torbjörn Andersson
bfbbf48585 Added clipping to drawLine(). This fixes a regression that caused the
debug console to crash ScummVM. (I'm not sure, but I think it was trying to
draw the scrollbar arrows outside the screen when the console was sliding
into view.)

svn-id: r18138
2005-05-17 12:17:30 +00:00
Max Horn
75e6e2d885 Now that the GUI scaling code is off, we can use a 'big' font which is not exactly twice as big as the 'normal' font, thus using the available screen space more efficiently
svn-id: r18119
2005-05-15 18:23:58 +00:00
Max Horn
4d5073b154 Added Font::wordWrapText method
svn-id: r18109
2005-05-15 16:13:52 +00:00
Max Horn
2de46dc8eb Moved some more stuff to namespace Audio (enough for tonight)
svn-id: r18040
2005-05-11 00:01:44 +00:00
Max Horn
1a615346ab Moved class SoundMixer to Audio::Mixer (didn't call the namespace 'Sound' because we already have many classes with that name)
svn-id: r18039
2005-05-10 23:48:48 +00:00
Max Horn
b75c969e66 Moved class File and the MD5 stuff to namespace Common
svn-id: r18037
2005-05-10 22:56:25 +00:00