From dcf2b1418832cbf6070b2934de64e754cedb20bf Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sun, 25 Dec 2011 11:26:28 +0900 Subject: [PATCH] Implement alias model skin loading for glsl. --- libs/models/alias/Makefile.am | 2 +- libs/models/alias/glsl_mesh.c | 50 ---------------------------- libs/models/alias/glsl_model_alias.c | 27 +++++++++++++-- 3 files changed, 26 insertions(+), 53 deletions(-) delete mode 100644 libs/models/alias/glsl_mesh.c diff --git a/libs/models/alias/Makefile.am b/libs/models/alias/Makefile.am index 6c95e2fe5..6239f4f3d 100644 --- a/libs/models/alias/Makefile.am +++ b/libs/models/alias/Makefile.am @@ -25,7 +25,7 @@ noinst_LTLIBRARIES= $(gl) $(glsl) $(sw) alias_src= model_alias.c gl_src= gl_mesh.c gl_model_alias.c mod_flood.c -glsl_src= glsl_mesh.c glsl_model_alias.c mod_flood.c +glsl_src= glsl_model_alias.c mod_flood.c sw_src= sw_model_alias.c libalias_gl_la_SOURCES= $(gl_src) $(alias_src) diff --git a/libs/models/alias/glsl_mesh.c b/libs/models/alias/glsl_mesh.c deleted file mode 100644 index 9c58b70f0..000000000 --- a/libs/models/alias/glsl_mesh.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - glsl_mesh.c - - Alias model mesh processing for GLSL - - Copyright (C) 2011 Bill Currie - - Author: Bill Currie - Date: 2011/12/23 - - 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: - - Free Software Foundation, Inc. - 59 Temple Place - Suite 330 - Boston, MA 02111-1307, USA - -*/ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -static __attribute__ ((used)) const char rcsid[] = "$Id$"; - -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif - -#include - -#include "QF/model.h" - -void -Mod_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr, void *_m, int _s, int extra) -{ -} diff --git a/libs/models/alias/glsl_model_alias.c b/libs/models/alias/glsl_model_alias.c index dd35dd0cb..e3003608b 100644 --- a/libs/models/alias/glsl_model_alias.c +++ b/libs/models/alias/glsl_model_alias.c @@ -40,13 +40,30 @@ static __attribute__ ((used)) const char rcsid[] = "$Id$"; # include #endif +#include + #include "QF/model.h" +#include "QF/GL/defines.h" +#include "QF/GL/funcs.h" void * -Mod_LoadSkin (byte * skin, int skinsize, int snum, int gnum, qboolean group, +Mod_LoadSkin (byte *skin, int skinsize, int snum, int gnum, qboolean group, maliasskindesc_t *skindesc) { - return 0; + byte *tskin; + GLuint tnum; + + tskin = malloc (skinsize); + memcpy (tskin, skin, skinsize); + Mod_FloodFillSkin (tskin, pheader->mdl.skinwidth, pheader->mdl.skinheight); + qfglGenTextures (1, &tnum); + skindesc->texnum = tnum; + qfglBindTexture (GL_TEXTURE_2D, skindesc->texnum); + qfglTexImage2D (GL_TEXTURE_2D, 0, GL_LUMINANCE, + pheader->mdl.skinwidth, pheader->mdl.skinheight, + 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, tskin); + free (tskin); + return skin + skinsize; } void @@ -58,3 +75,9 @@ void Mod_LoadExternalSkins (model_t *mod) { } + +void +Mod_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr, void *_m, int _s, + int extra) +{ +}