summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2006-12-18 19:21:21 +0000
committerSimon Howard2006-12-18 19:21:21 +0000
commit29ee554a51d80e4e34e64a18d997010fe8190bbf (patch)
treea29b48206dc8a8c838da21ed14b0e89db47c5d05
parent0cc2ad38090b1b286ded01321afc0e199b37372c (diff)
downloadchocolate-doom-29ee554a51d80e4e34e64a18d997010fe8190bbf.tar.gz
chocolate-doom-29ee554a51d80e4e34e64a18d997010fe8190bbf.tar.bz2
chocolate-doom-29ee554a51d80e4e34e64a18d997010fe8190bbf.zip
Add missing copyright statement, comments.
Subversion-branch: /trunk/chocolate-doom Subversion-revision: 787
-rw-r--r--src/i_scale.c49
-rw-r--r--src/i_scale.h10
2 files changed, 57 insertions, 2 deletions
diff --git a/src/i_scale.c b/src/i_scale.c
index deda0551..dfba9f60 100644
--- a/src/i_scale.c
+++ b/src/i_scale.c
@@ -1,3 +1,32 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 2005,2006 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+// DESCRIPTION:
+// Screen scale-up code:
+// 1x,2x,3x,4x pixel doubling
+// Aspect ratio-correcting stretch functions
+//
+//-----------------------------------------------------------------------------
+
+
#include "doomdef.h"
#include "doomtype.h"
@@ -23,6 +52,9 @@ static int dest_pitch;
static byte *stretch_tables[2];
+// Called to set the source and destination buffers before doing the
+// scale.
+
void I_InitScale(byte *_src_buffer, byte *_dest_buffer, int _dest_pitch)
{
src_buffer = _src_buffer;
@@ -30,6 +62,13 @@ void I_InitScale(byte *_src_buffer, byte *_dest_buffer, int _dest_pitch)
dest_pitch = _dest_pitch;
}
+//
+// Pixel doubling scale-up functions.
+//
+
+// 1x scale doesn't really do any scaling: it just copies the buffer
+// a line at a time for when pitch != SCREENWIDTH (!native_surface)
+
void I_Scale1x(int x1, int y1, int x2, int y2)
{
byte *bufp, *screenp;
@@ -217,6 +256,9 @@ static byte *GenerateStretchTable(byte *palette, int pct)
return result;
}
+// Called at startup to generate the lookup tables for aspect ratio
+// correcting scale up.
+
void I_InitStretchTables(byte *palette)
{
// We only actually need two lookup tables:
@@ -236,6 +278,13 @@ void I_InitStretchTables(byte *palette)
puts("");
}
+//
+// Aspect ratio correcting scale up functions.
+//
+// These double up pixels to stretch the screen when using a 4:3
+// screen mode.
+//
+
static void WriteBlendedLine1x(byte *dest, byte *src1, byte *src2,
byte *stretch_table)
{
diff --git a/src/i_scale.h b/src/i_scale.h
index 578b2b36..d90f63f6 100644
--- a/src/i_scale.h
+++ b/src/i_scale.h
@@ -20,7 +20,7 @@
// 02111-1307, USA.
//
// DESCRIPTION:
-// System specific interface stuff.
+// Pixel-doubling scale up functions.
//
//-----------------------------------------------------------------------------
@@ -30,16 +30,22 @@
#include "doomtype.h"
+void I_InitStretchTables(byte *palette);
void I_InitScale(byte *_src_buffer, byte *_dest_buffer, int _dest_pitch);
+
+// Normal pixel-perfect doubling functions.
+
void I_Scale1x(int x1, int y1, int x2, int y2);
void I_Scale2x(int x1, int y1, int x2, int y2);
void I_Scale3x(int x1, int y1, int x2, int y2);
void I_Scale4x(int x1, int y1, int x2, int y2);
+
+// Aspect ratio correcting scale up functions
+
void I_Stretch1x(int x1, int y1, int x2, int y2);
void I_Stretch2x(int x1, int y1, int x2, int y2);
void I_Stretch3x(int x1, int y1, int x2, int y2);
void I_Stretch4x(int x1, int y1, int x2, int y2);
-void I_InitStretchTables(byte *palette);
#endif /* #ifndef __I_SCALE__ */