foxygit / doom Log in
commit 29ee554a51d80e4e34e64a18d997010fe8190bbf
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Mon Dec 18 19:21:21 2006 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Mon Dec 18 19:21:21 2006 +0000

    Add missing copyright statement, comments.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 787
---
 src/i_scale.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/i_scale.h | 10 ++++++++--
 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__ */