/*************************************************************************** GLtextureMapping.c (c) 2005-2007 Laurent Carlier 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, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ***************************************************************************/ #define __GLTEXTUREMAPPING_C #include "GL.h" BEGIN_METHOD(GLBINDTEXTURE, GB_INTEGER target; GB_INTEGER texture) glBindTexture(VARG(target), VARG(texture)); END_METHOD BEGIN_METHOD(GLACTIVETEXTURE, GB_INTEGER texture) glActiveTexture(VARG(texture)); END_METHOD BEGIN_METHOD(GLCOPYTEXIMAGE1D, GB_INTEGER Ta; GB_INTEGER Le; GB_INTEGER Fo; GB_INTEGER X; GB_INTEGER Y; GB_INTEGER Wi; GB_INTEGER Bo) glCopyTexImage1D(VARG(Ta), VARG(Le), VARG(Fo), VARG(X), VARG(Y), VARG(Wi), VARG(Bo)); END_METHOD BEGIN_METHOD(GLCOPYTEXIMAGE2D, GB_INTEGER Ta; GB_INTEGER Le; GB_INTEGER Fo; GB_INTEGER X; GB_INTEGER Y; GB_INTEGER Wi; GB_INTEGER He; GB_INTEGER Bo) glCopyTexImage2D(VARG(Ta), VARG(Le), VARG(Fo), VARG(X), VARG(Y), VARG(Wi), VARG(He), VARG(Bo)); END_METHOD BEGIN_METHOD(GLDELETETEXTURES, GB_OBJECT textures) GB_ARRAY iArray = (GB_ARRAY) VARG(textures); int i,count = GB.Array.Count(iArray); GLuint texture[1]; if (count<=0) return; for (i=0;i 4 ? 4 : count); for (i=0; i 4 ? 4 : count); for (i=0; iwidth, VARGOPT(Border, 0), format, GL_UNSIGNED_BYTE, image->data); END_METHOD BEGIN_METHOD(GLTEXIMAGE2D, GB_OBJECT Image; GB_INTEGER Level; GB_INTEGER Border) GB_IMG *image; int format; if (IMAGE_get(ARG(Image), &image, &format)) return; glTexImage2D(GL_TEXTURE_2D, VARGOPT(Level, 0), IMAGE_get_ncolors(format), image->width, image->height, VARGOPT(Border, 0), format, GL_UNSIGNED_BYTE, image->data); END_METHOD BEGIN_METHOD(GLTEXPARAMETERF, GB_INTEGER Target; GB_INTEGER Pname; GB_FLOAT Param) glTexParameterf(VARG(Target), VARG(Pname), VARG(Param)); END_METHOD BEGIN_METHOD(GLTEXPARAMETERFV, GB_INTEGER Target; GB_INTEGER Pname; GB_OBJECT Params) GLfloat params[4]; GB_ARRAY fArray = (GB_ARRAY) VARG(Params); int count = GB.Array.Count(fArray); int i; count = (count > 4 ? 4 : count); for (i=0; i 4 ? 4 : count); for (i=0; i