freebsd-ports/games/q3cellshading/Makefile
Alejandro Pulver 22ff391bac The goal of this project is to add Cell Shading capabilities to the Quake III
engine with Real-time performance.

In order to provide such feature we have decided to use Kuwahara filter.
Kuwahara filter is a noise-reduction filter that preserves edges.

It uses four subquadrants to calculate the mean and variance and chooses the
mean value for the region with the smallest variance.

To increase the hand-painted effect we have decided to apply a simple blur
filter to reduce hard-edges on textures and increase the flatness effect.

To produce the cell shading effect we use no graphics card shaders, so our
implementation could run with almost any gfx card. The edge effect is produced
by painting backface polygons with a thick wireframe without textures and
repaint all the scene, but this time, with textures.

We have also implemented a different algorithm (we call it White Texture),
which uses white textures. It looks like this and this, you can set the
console variable r_celshadalgo to 2, and load another map, or run using the
appropiate link that came with the release.

WWW: http://q3cellshading.sourceforge.net/

PR:		ports/101677
2006-08-13 23:16:03 +00:00

118 lines
2.6 KiB
Makefile

# New ports collection makefile for: q3cellshading
# Date created: 8 Aug 2006
# Whom: alepulver
#
# $FreeBSD$
#
PORTNAME= q3cellshading
PORTVERSION= 1.0
CATEGORIES= games
MASTER_SITES= SF
DISTNAME= q3cel-${PORTVERSION}-src
MAINTAINER= alepulver@FreeBSD.org
COMMENT= Quake III engine with Cell Shading capabilities
USE_ZIP= yes
USE_DOS2UNIX= yes
USE_GMAKE= yes
USE_GCC= 3.2+
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
BUILD_WRKSRC= ${WRKSRC}/code/unix
OPTIONS= CLIENT "Build client" on \
DEDICATED "Build dedicated server" on \
GAMELIBS "Build game libraries (when not mandatory)" off \
OPTIMIZED_CFLAGS "Enable compilation optimizations" on \
SMP "Build SMP (threaded) client" on
MAKE_ENV= LIBDIR="${LIBDIR}"
PLIST_SUB= LIBDIR="${LIBDIR:S/${PREFIX}\///}"
LIBDIR= ${PREFIX}/lib/${PORTNAME}
VM_ARCHS= i386 powerpc
.include <bsd.port.pre.mk>
.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) && \
defined(WITHOUT_SMP)
IGNORE= needs at least one of CLIENT, DEDICATED and SMP options
.endif
.if ${ARCH} == "i386"
BUILD_DEPENDS+= nasm:${PORTSDIR}/devel/nasm
.endif
.for i in ${ARCH}
. if ${VM_ARCHS:M${i}} != ""
HAVE_VM_COMPILED= yes
. endif
.endfor
.if !defined(HAVE_VM_COMPILED)
MAKE_ENV+= DLL_ONLY=true
.endif
.if !defined(WITHOUT_CLIENT) || !defined(WITHOUT_SMP)
USE_GL= yes
.endif
.if !defined(WITHOUT_CLIENT)
MAKE_ENV+= CLIENT=YES
PLIST_SUB+= CLIENT=""
Q3BIN+= quake3
.else
PLIST_SUB+= CLIENT="@comment "
.endif
.if !defined(WITHOUT_DEDICATED)
MAKE_ENV+= DEDICATED=YES
PLIST_SUB+= DEDICATED=""
Q3BIN+= q3ded
.else
PLIST_SUB+= DEDICATED="@comment "
.endif
.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED)
MAKE_ENV+= GAMELIBS=YES
PLIST_SUB+= GAMELIBS=""
.else
PLIST_SUB+= GAMELIBS="@comment "
.endif
.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
MAKE_ENV+= OPTIMIZED_CFLAGS=YES
.endif
.if !defined(WITHOUT_SMP)
MAKE_ENV+= SMP=YES \
PTHREAD_LIBS="${PTHREAD_LIBS}"
PLIST_SUB+= SMP=""
Q3BIN+= quake3-smp
.else
PLIST_SUB+= SMP="@comment "
.endif
post-patch:
@${REINPLACE_CMD} -e 's|botlib\.log|/dev/null|' \
${WRKSRC}/code/botlib/be_interface.c
@${REINPLACE_CMD} -e \
's|//[[:blank:]]*\(Swap_Init[[:blank:]]*();\)|\1|' \
${WRKSRC}/code/botlib/be_interface.c \
${WRKSRC}/code/renderer/tr_init.c
do-install:
.for bin in ${Q3BIN}
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/release/${bin} \
${PREFIX}/bin/${bin:C/(quake3|q3)/\1cel/}
.endfor
.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED)
.for dir in baseq3 missionpack
${MKDIR} ${LIBDIR}/${dir}
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/release/${dir}/*.so ${LIBDIR}/${dir}
.endfor
.endif
.include "${.CURDIR}/../quake3-data/Makefile.include"
.include <bsd.port.post.mk>