Vegastrike 0.5.1 rc1
1.0
Original sources for Vegastrike Evolved
|
#include <algorithm>
#include "mesh.h"
#include "aux_texture.h"
#include "aux_logo.h"
#include "lin_time.h"
#include "configxml.h"
#include "vs_globals.h"
#include "cmd/nebula_generic.h"
#include "gfx/camera.h"
#include "gfx/animation.h"
#include "gfx/technique.h"
#include "mesh_xml.h"
#include "gldrv/gl_globals.h"
#include "gldrv/gl_light.h"
#include "universe_util.h"
#include <utility>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <exception>
Go to the source code of this file.
Classes | |
class | Exception |
class | MissingTexture |
class | OrigMeshContainer |
struct | OrigMeshPainterSort |
struct | MeshDrawContextPainterSort |
Macros | |
#define | SLESSX(a, b) |
#define | PLESSX(a, b) |
#define | SLESS(f) SLESSX( f, b.f ) |
#define | PLESS(f) PLESSX( f, b.f ) |
#define | NUM_PASSES (4) |
#define | BASE_PASS (0) |
#define | ENVSPEC_PASS (1) |
#define | DAMAGE_PASS (2) |
#define | GLOW_PASS (3) |
#define | BASE_TEX (0) |
#define | ENVSPEC_TEX (1) |
#define | DAMAGE_TEX (2) |
#define | GLOW_TEX (3) |
#define | NORMAL_TEX (4) |
#define | NUM_TEX (5) |
#define | GETDECAL(pass) ( (Decal[pass]) ) |
#define | HASDECAL(pass) ( ( (NUM_PASSES > pass) && Decal[pass] ) ) |
#define | SAFEDECAL(pass) ( (HASDECAL( pass ) ? Decal[pass] : black) ) |
Typedefs | |
typedef std::vector < OrigMeshContainer > | OrigMeshVector |
Functions | |
Texture * | createTexture (const char *filename, int stage=0, enum FILTER f1=MIPMAP, enum TEXTURE_TARGET t0=TEXTURE2D, enum TEXTURE_IMAGE_TARGET t=TEXTURE_2D, unsigned char c=GFXFALSE, int i=65536) |
Logo * | createLogo (int numberlogos, Vector *center, Vector *normal, float *sizes, float *rotations, float offset, Texture *Dec, Vector *Ref) |
Texture * | createTexture (char const *ccc, char const *cc, int k=0, enum FILTER f1=MIPMAP, enum TEXTURE_TARGET t0=TEXTURE2D, enum TEXTURE_IMAGE_TARGET t=TEXTURE_2D, float f=1, int j=0, unsigned char c=GFXFALSE, int i=65536) |
AnimatedTexture * | createAnimatedTexture (char const *c, int i, enum FILTER f) |
template<typename T > | |
bool | rangesOverlap (T min1, T max1, T min2, T max2) |
void | SetupCloakState (char cloaked, const GFXColor &CloakFX, vector< int > &specialfxlight, unsigned char hulldamage, unsigned int matnum) |
static void | RestoreCloakState (char cloaked, bool envMap, unsigned char damage) |
static void | SetupFogState (char cloaked) |
bool | SetupSpecMapFirstPass (Texture **decal, size_t decalSize, unsigned int mat, bool envMap, float polygon_offset, Texture *detailTexture, const vector< Vector > &detailPlanes, bool &skip_glowpass, bool nomultienv) |
void | RestoreFirstPassState (Texture *detailTexture, const vector< Vector > &detailPlanes, bool skipped_glowpass, bool nomultienv) |
void | SetupEnvmapPass (Texture *decal, unsigned int mat, int passno) |
void | RestoreEnvmapState () |
void | SetupSpecMapSecondPass (Texture *decal, unsigned int mat, BLENDFUNC blendsrc, bool envMap, const GFXColor &cloakFX, float polygon_offset) |
void | SetupGlowMapFourthPass (Texture *decal, unsigned int mat, BLENDFUNC blendsrc, const GFXColor &cloakFX, float polygon_offset) |
void | SetupDamageMapThirdPass (Texture *decal, unsigned int mat, float polygon_offset) |
void | RestoreGlowMapState (bool write_to_depthmap, float polygonoffset, float NOT_USED_BUT_BY_HELPER=3) |
void | RestoreDamageMapState (bool write_to_depthmap, float polygonoffset) |
void | RestoreSpecMapState (bool envMap, bool write_to_depthmap, float polygonoffset) |
static void | setupGLState (const Technique::Pass &pass, bool zwrite, BLENDFUNC blendSrc, BLENDFUNC blendDst, int material, unsigned char alphatest, int whichdrawqueue) |
Variables | |
vector< Logo * > | undrawn_logos |
const int | UNDRAWN_MESHES_SIZE = NUM_MESH_SEQUENCE |
OrigMeshVector | undrawn_meshes [NUM_MESH_SEQUENCE] |
Hashtable< std::string, std::vector< Mesh * > , MESH_HASTHABLE_SIZE > | bfxmHashTable |
#define BASE_PASS (0) |
Definition at line 190 of file mesh_gfx.cpp.
#define BASE_TEX (0) |
Definition at line 194 of file mesh_gfx.cpp.
#define DAMAGE_PASS (2) |
Definition at line 192 of file mesh_gfx.cpp.
Referenced by RestoreDamageMapState().
#define DAMAGE_TEX (2) |
Definition at line 196 of file mesh_gfx.cpp.
#define ENVSPEC_PASS (1) |
Definition at line 191 of file mesh_gfx.cpp.
#define ENVSPEC_TEX (1) |
Definition at line 195 of file mesh_gfx.cpp.
#define GETDECAL | ( | pass) | ( (Decal[pass]) ) |
Definition at line 1465 of file mesh_gfx.cpp.
#define GLOW_PASS (3) |
Definition at line 193 of file mesh_gfx.cpp.
Referenced by SetupSpecMapFirstPass().
#define GLOW_TEX (3) |
Definition at line 197 of file mesh_gfx.cpp.
#define HASDECAL | ( | pass) | ( ( (NUM_PASSES > pass) && Decal[pass] ) ) |
Definition at line 1466 of file mesh_gfx.cpp.
#define NORMAL_TEX (4) |
Definition at line 198 of file mesh_gfx.cpp.
#define NUM_PASSES (4) |
Definition at line 189 of file mesh_gfx.cpp.
#define NUM_TEX (5) |
Definition at line 199 of file mesh_gfx.cpp.
Definition at line 107 of file mesh_gfx.cpp.
Referenced by OrigMeshContainer::operator<().
Definition at line 100 of file mesh_gfx.cpp.
Referenced by OrigMeshContainer::operator<().
#define SAFEDECAL | ( | pass) | ( (HASDECAL( pass ) ? Decal[pass] : black) ) |
Definition at line 1467 of file mesh_gfx.cpp.
Definition at line 105 of file mesh_gfx.cpp.
Referenced by OrigMeshContainer::operator<().
Definition at line 95 of file mesh_gfx.cpp.
Referenced by OrigMeshContainer::operator<().
typedef std::vector< OrigMeshContainer > OrigMeshVector |
Definition at line 187 of file mesh_gfx.cpp.
AnimatedTexture* createAnimatedTexture | ( | char const * | c, |
int | i, | ||
enum FILTER | f | ||
) |
Definition at line 353 of file mesh_gfx.cpp.
Referenced by SphereMesh::InitSphere().
Logo* createLogo | ( | int | numberlogos, |
Vector * | center, | ||
Vector * | normal, | ||
float * | sizes, | ||
float * | rotations, | ||
float | offset, | ||
Texture * | Dec, | ||
Vector * | Ref | ||
) |
Definition at line 327 of file mesh_gfx.cpp.
Texture* createTexture | ( | const char * | filename, |
int | stage = 0 , |
||
enum FILTER | f1 = MIPMAP , |
||
enum TEXTURE_TARGET | t0 = TEXTURE2D , |
||
enum TEXTURE_IMAGE_TARGET | t = TEXTURE_2D , |
||
unsigned char | c = GFXFALSE , |
||
int | i = 65536 |
||
) |
Definition at line 316 of file mesh_gfx.cpp.
Texture* createTexture | ( | char const * | ccc, |
char const * | cc, | ||
int | k = 0 , |
||
enum FILTER | f1 = MIPMAP , |
||
enum TEXTURE_TARGET | t0 = TEXTURE2D , |
||
enum TEXTURE_IMAGE_TARGET | t = TEXTURE_2D , |
||
float | f = 1 , |
||
int | j = 0 , |
||
unsigned char | c = GFXFALSE , |
||
int | i = 65536 |
||
) |
Definition at line 339 of file mesh_gfx.cpp.
|
inline |
Definition at line 554 of file mesh_gfx.cpp.
|
static |
Definition at line 671 of file mesh_gfx.cpp.
References MeshDrawContext::CLOAK, GFXColorMaterial(), GFXEnable(), GFXPopBlendMode(), and TEXTURE1.
Definition at line 926 of file mesh_gfx.cpp.
References DAMAGE_PASS, and RestoreGlowMapState().
void RestoreEnvmapState | ( | ) |
Definition at line 824 of file mesh_gfx.cpp.
References VegaConfig::getVariable(), GFXDepthFunc(), GFXEnable(), GFXFALSE, GFXMODULATETEXTURE, GFXPopBlendMode(), GFXSetSeparateSpecularColor(), GFXTextureCoordGenMode(), GFXTextureEnv(), GFXToggleTexture(), GFXTRUE, LEQUAL, LIGHTING, NO_GEN, XMLSupport::parse_bool(), and vs_config.
void RestoreFirstPassState | ( | Texture * | detailTexture, |
const vector< Vector > & | detailPlanes, | ||
bool | skipped_glowpass, | ||
bool | nomultienv | ||
) |
Definition at line 774 of file mesh_gfx.cpp.
References _Universe, StarSystem::activateLightMap(), Universe::activeStarSystem(), GFXDepthFunc(), GFXPopBlendMode(), GFXToggleTexture(), i, and LEQUAL.
void RestoreGlowMapState | ( | bool | write_to_depthmap, |
float | polygonoffset, | ||
float | NOT_USED_BUT_BY_HELPER = 3 |
||
) |
Definition at line 912 of file mesh_gfx.cpp.
References a, b, DEPTHWRITE, VegaConfig::getVariable(), GFXDepthFunc(), GFXEnable(), GFXPopBlendMode(), LEQUAL, XMLSupport::parse_bool(), TEXTURE1, and vs_config.
Referenced by RestoreDamageMapState().
Definition at line 931 of file mesh_gfx.cpp.
References DEPTHWRITE, VegaConfig::getVariable(), GFXActiveTexture(), GFXADDTEXTURE, GFXDepthFunc(), GFXEnable(), GFXFALSE, GFXPopBlendMode(), GFXSetSeparateSpecularColor(), GFXTextureCoordGenMode(), GFXTextureEnv(), GFXTRUE, gl_options, LEQUAL, gl_options_t::Multitexture, NO_GEN, XMLSupport::parse_bool(), TEXTURE0, and vs_config.
void SetupCloakState | ( | char | cloaked, |
const GFXColor & | CloakFX, | ||
vector< int > & | specialfxlight, | ||
unsigned char | hulldamage, | ||
unsigned int | matnum | ||
) |
Definition at line 621 of file mesh_gfx.cpp.
References GFXColor::a, AMBIENT, GFXColor::b, MeshDrawContext::CLOAK, CULLFACE, DIFFUSE, GFXColor::g, GFXBlendMode(), GFXColor4f(), GFXColorf(), GFXColorMaterial(), GFXCreateLight(), GFXDisable(), GFXEnable(), GFXPushBlendMode(), GFXSelectMaterialHighlights(), MeshDrawContext::GLASSCLOAK, INVSRCALPHA, LIGHTING, MeshDrawContext::NEARINVIS, ONE, GFXColor::r, SRCALPHA, TEXTURE0, and TEXTURE1.
Definition at line 899 of file mesh_gfx.cpp.
References DEPTHWRITE, GFXBlendMode(), GFXDepthFunc(), GFXDisable(), GFXPushBlendMode(), INVSRCALPHA, LEQUAL, Texture::MakeActive(), SRCALPHA, and TEXTURE1.
Definition at line 792 of file mesh_gfx.cpp.
References _Universe, Universe::activateLightMap(), GFXBlendMode(), GFXDepthFunc(), GFXDisable(), GFXFALSE, GFXMODULATETEXTURE, GFXPushBlendMode(), GFXREPLACETEXTURE, GFXSelectMaterialHighlights(), GFXSetSeparateSpecularColor(), GFXTextureEnv(), GFXToggleTexture(), LEQUAL, LIGHTING, Texture::MakeActive(), ONE, SRCCOLOR, and ZERO.
|
static |
Definition at line 686 of file mesh_gfx.cpp.
References _Universe, Universe::AccessCamera(), MeshDrawContext::FOG, FOG_OFF, Camera::GetNebula(), GFXFogMode(), and Nebula::SetFogState().
void SetupGlowMapFourthPass | ( | Texture * | decal, |
unsigned int | mat, | ||
BLENDFUNC | blendsrc, | ||
const GFXColor & | cloakFX, | ||
float | polygon_offset | ||
) |
Definition at line 877 of file mesh_gfx.cpp.
References DEPTHWRITE, GFXBlendMode(), GFXDepthFunc(), GFXDisable(), GFXPushBlendMode(), GFXSelectMaterialHighlights(), LEQUAL, Texture::MakeActive(), ONE, and TEXTURE1.
|
static |
Definition at line 1064 of file mesh_gfx.cpp.
References Technique::Pass::Add, Technique::Pass::AlphaBlend, Technique::Pass::Always, ALWAYS, Technique::Pass::Back, Technique::Pass::blendMode, Technique::Pass::colorWrite, COLORWRITE, CULLFACE, Technique::Pass::cullMode, Technique::Pass::Decal, Technique::Pass::Default, Technique::Pass::DefaultFace, Technique::Pass::depthFunction, DEPTHWRITE, DESTCOLOR, Technique::Pass::Equal, EQUAL, gl_options_t::ext_srgb_framebuffer, Technique::Pass::Fill, Technique::Pass::Front, Technique::Pass::FrontAndBack, Technique::Pass::GEqual, GEQUAL, GFXAlphaTest(), GFXBACK, GFXBlendMode(), GFXCullFace(), GFXDepthFunc(), GFXDisable(), GFXEnable(), GFXFILLMODE, GFXFRONT, GFXFRONTANDBACK, GFXLINEMODE, GFXLineWidth(), GFXPOINTMODE, GFXPolygonMode(), GFXPolygonOffset(), GFXSelectMaterial(), GL_FRAMEBUFFER_SRGB_EXT, gl_options, Technique::Pass::Greater, GREATER, INVSRCALPHA, Technique::Pass::LEqual, LEQUAL, Technique::Pass::Less, LESS, LIGHTING, Technique::Pass::Line, Technique::Pass::lineWidth, Technique::Pass::MultiAlphaBlend, Technique::Pass::Multiply, Technique::Pass::Never, NEVER, Technique::Pass::None, Technique::Pass::offsetFactor, Technique::Pass::offsetUnits, ONE, Technique::Pass::Point, Technique::Pass::polyMode, Technique::Pass::PremultAlphaBlend, SRCALPHA, Technique::Pass::sRGBAware, and ZERO.
bool SetupSpecMapFirstPass | ( | Texture ** | decal, |
size_t | decalSize, | ||
unsigned int | mat, | ||
bool | envMap, | ||
float | polygon_offset, | ||
Texture * | detailTexture, | ||
const vector< Vector > & | detailPlanes, | ||
bool & | skip_glowpass, | ||
bool | nomultienv | ||
) |
Definition at line 697 of file mesh_gfx.cpp.
References a, b, VegaConfig::getVariable(), GFXADDTEXTURE, GFXBlendMode(), GFXDepthFunc(), GFXDETAILTEXTURE, GFXDisable(), GFXFALSE, GFXGetPolygonOffset(), GFXPolygonOffset(), GFXPushBlendMode(), GFXSelectMaterialHighlights(), GFXSetSeparateSpecularColor(), GFXTextureCoordGenMode(), GFXTextureEnv(), GFXToggleTexture(), GFXTRUE, gl_options, GLOW_PASS, i, LEQUAL, Texture::MakeActive(), gl_options_t::Multitexture, NO_GEN, OBJECT_LINEAR_GEN, ONE, XMLSupport::parse_bool(), TEXTURE1, and vs_config.
void SetupSpecMapSecondPass | ( | Texture * | decal, |
unsigned int | mat, | ||
BLENDFUNC | blendsrc, | ||
bool | envMap, | ||
const GFXColor & | cloakFX, | ||
float | polygon_offset | ||
) |
Definition at line 838 of file mesh_gfx.cpp.
References _Universe, Universe::activateLightMap(), DEPTHWRITE, GFXActiveTexture(), GFXBlendMode(), GFXDepthFunc(), GFXDisable(), GFXEnable(), GFXFALSE, GFXMODULATETEXTURE, GFXPushBlendMode(), GFXSelectMaterialHighlights(), GFXSetSeparateSpecularColor(), GFXTextureEnv(), gl_options, LEQUAL, Texture::MakeActive(), gl_options_t::Multitexture, ONE, TEXTURE0, and TEXTURE1.
Hashtable< std::string, std::vector< Mesh* >, MESH_HASTHABLE_SIZE > bfxmHashTable |
Definition at line 1256 of file mesh_xml.cpp.
vector< Logo* > undrawn_logos |
Definition at line 31 of file aux_logo.cpp.
Referenced by Logo::Draw(), and Mesh::ProcessUndrawnMeshes().
OrigMeshVector undrawn_meshes[NUM_MESH_SEQUENCE] |
Definition at line 203 of file mesh_gfx.cpp.
Referenced by Mesh::Draw(), Mesh::ProcessUndrawnMeshes(), Mesh::ProcessZFarMeshes(), and Mesh::~Mesh().
const int UNDRAWN_MESHES_SIZE = NUM_MESH_SEQUENCE |
Definition at line 201 of file mesh_gfx.cpp.