00001 00006 /* 00007 All original material Copyright (C) 2002-2010 UFO: Alien Invasion. 00008 00009 This program is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU General Public License 00011 as published by the Free Software Foundation; either version 2 00012 of the License, or (at your option) any later version. 00013 00014 This program is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00017 00018 See the GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00023 00024 */ 00025 00026 #ifndef R_LIGHTMAP_H 00027 #define R_LIGHTMAP_H 00028 00029 #include "r_entity.h" 00030 00031 #define LIGHTMAP_BLOCK_WIDTH 4096 00032 #define LIGHTMAP_BLOCK_HEIGHT 4096 00033 #define LIGHTMAP_BLOCK_BYTES 3 /* bytes RGB */ 00034 #define DELUXEMAP_BLOCK_BYTES 3 /* bytes RGB */ 00035 00036 #define LIGHTMAP_BYTES 3 /* RGB */ 00037 00038 void R_BlendLightmaps(const model_t* mod); 00039 void R_CreateSurfaceLightmap(mBspSurface_t * surf); 00040 void R_EndBuildingLightmaps(void); 00041 void R_BeginBuildingLightmaps(void); 00042 00043 void R_Trace(vec3_t start, vec3_t end, float size, int contentmask); 00044 00046 #define LIGHTMAP_FBUFFER_SIZE \ 00047 (MAX_MAP_LIGHTMAP * LIGHTMAP_BYTES) 00048 00049 typedef struct lightmaps_s { 00050 GLuint lightmap_texnum; 00051 GLuint deluxemap_texnum; 00052 00053 int size; 00055 unsigned *allocated; 00057 byte *sample_buffer; 00058 byte *direction_buffer; 00059 float fbuffer[LIGHTMAP_FBUFFER_SIZE]; 00060 } lightmaps_t; 00061 00062 extern lightmaps_t r_lightmaps; 00063 00064 #endif