UFO: Alien Invasion
|
#include "r_local.h"
#include "r_error.h"
#include "r_sphere.h"
#include "r_geoscape.h"
#include "r_mesh.h"
#include "r_draw.h"
Go to the source code of this file.
Macros | |
#define | MARKER_SIZE 60.0 |
#define | SKYBOX_HALFSIZE 800.0f |
Half size of Skybox. More... | |
Functions | |
void | R_DrawFlatGeoscape (const vec2_t nodePos, const vec2_t nodeSize, float p, float cx, float cy, float iz, const char *map, bool overlayNation, bool overlayXVI, bool overlayRadar, image_t *r_dayandnightTexture, image_t *r_xviTexture, image_t *r_radarTexture) |
Draw the day and night images of a flat geoscape multitexture feature is used to blend the images. More... | |
void | R_Draw2DMapMarkers (const vec2_t screenPos, float direction, const char *model, int skin) |
Draw 3D Marker on the 2D geoscape. More... | |
void | R_Draw3DMapMarkers (const vec2_t nodePos, const vec2_t nodeSize, const vec3_t rotate, const vec2_t pos, float direction, float earthRadius, const char *model, int skin) |
Draw 3D Marker on the 3D geoscape. More... | |
static void | R_DrawStarfield (int texnum, const vec3_t pos, const vec3_t rotate, float timeOfDay) |
Bind and draw starfield. More... | |
static void | R_RotateCelestialBody (const vec4_t v, vec4_t r, const vec3_t rotate, const vec3_t earthPos, const float celestialDist) |
rotate a planet (sun or moon) with respect to the earth More... | |
void | R_Draw3DGlobe (const vec2_t pos, const vec2_t size, int day, int second, const vec3_t rotate, float zoom, const char *map, bool disableSolarRender, float ambient, bool overlayNation, bool overlayXVI, bool overlayRadar, image_t *r_xviTexture, image_t *r_radarTexture, bool renderNationGlow) |
responsible for drawing the 3d globe on geoscape param[in] rotate the rotate angle of the globe param[in] zoom the current globe zoon param[in] map the prefix of the map to use (image must be at base/pics/menu/<map>_[day|night]) More... | |
static void | R_DrawQuad (void) |
Draw the current texture on a quad the size of the renderbuffer. More... | |
static void | R_Blur (r_framebuffer_t *source, r_framebuffer_t *dest, int tex, int dir) |
does 1D filter convolution to blur a framebuffer texture. dir=0 for horizontal, dir=1 for vertical More... | |
static void | R_BlurStack (int levels, r_framebuffer_t **sources, r_framebuffer_t **dests) |
blur from the source image pyramid into the dest image pyramid More... | |
void | R_DrawBloom (void) |
handle post-processing bloom More... | |
Variables | |
static const float | starFieldVerts [] |
static const float | starFieldTexCoords [] |
#define MARKER_SIZE 60.0 |
Definition at line 33 of file r_geoscape.cpp.
Referenced by R_Draw2DMapMarkers(), and R_Draw3DMapMarkers().
#define SKYBOX_HALFSIZE 800.0f |
Half size of Skybox.
Definition at line 304 of file r_geoscape.cpp.
Referenced by R_Draw3DGlobe().
|
static |
does 1D filter convolution to blur a framebuffer texture. dir=0 for horizontal, dir=1 for vertical
Definition at line 723 of file r_geoscape.cpp.
References rstate_s::convolve_program, R_BindTextureForTexUnit(), R_DrawQuad(), R_EnableBlur(), r_state, R_UseViewport(), r_framebuffer_t::textures, and texunit_0.
Referenced by R_BlurStack(), and R_DrawBloom().
|
static |
blur from the source image pyramid into the dest image pyramid
Definition at line 738 of file r_geoscape.cpp.
References rstate_s::combine2_program, default_program, i, R_BindTextureForTexUnit(), R_Blur(), R_DrawQuad(), r_state, R_UseFramebuffer(), R_UseProgram(), R_UseViewport(), texunit_0, and texunit_1.
Referenced by R_DrawBloom().
Draw 3D Marker on the 2D geoscape.
[in] | screenPos | Position on screenlongitude and latitude of the model to draw. |
[in] | direction | angle giving the direction the model is heading toward. |
[in] | model | The name of the model of the marker. |
[in] | skin | Number of modelskin to draw on marker |
Definition at line 178 of file r_geoscape.cpp.
References modelInfo_t::angles, modelInfo_t::center, Com_Printf(), f, MARKER_SIZE, modelInfo_t::model, modelInfo_t::name, OBJZERO, modelInfo_t::origin, R_DrawModelDirect(), R_FindModel(), R_ModelAutoScale(), viddef_t::rx, viddef_t::ry, scale, modelInfo_t::skin, vec3_origin, VectorCopy, and viddef.
Referenced by GAME_GetImportData().
void R_Draw3DGlobe | ( | const vec2_t | pos, |
const vec2_t | size, | ||
int | day, | ||
int | second, | ||
const vec3_t | rotate, | ||
float | zoom, | ||
const char * | map, | ||
bool | disableSolarRender, | ||
float | ambient, | ||
bool | overlayNation, | ||
bool | overlayXVI, | ||
bool | overlayRadar, | ||
image_t * | r_xviTexture, | ||
image_t * | r_radarTexture, | ||
bool | renderNationGlow | ||
) |
responsible for drawing the 3d globe on geoscape param[in] rotate the rotate angle of the globe param[in] zoom the current globe zoon param[in] map the prefix of the map to use (image must be at base/pics/menu/<map>_[day|night])
Definition at line 428 of file r_geoscape.cpp.
References rstate_s::atmosphere_program, sphere_s::blendScale, sphere_s::blendTexture, Com_Error(), DAYS_PER_YEAR, ERR_FATAL, f, rstate_s::geoscape_program, GL_SOURCE0_ALPHA, GL_SOURCE0_RGB, GL_SOURCE1_RGB, GL_SOURCE2_RGB, sphere_s::glowScale, sphere_s::glslProgram, int(), cvar_s::integer, it_pic, it_wrappic, rconfig_t::lodDir, m, M_PI, sphere_s::nightLightPos, sphere_s::normalMap, sphere_s::overlay, sphere_s::overlayAlphaMask, r_config, R_DrawBuffers(), R_DrawStarfield(), R_DrawTexture(), R_FindImage(), R_FreeImage(), r_globeEarth, r_globeEarthAtmosphere, r_globeMoon, r_noTexture, r_postprocess, r_programs, r_radarTexture, R_RotateCelestialBody(), R_SelectTexture(), R_SphereRender(), r_state, r_xviTexture, viddef_t::rx, viddef_t::ry, sphere_s::season, SEASONS_PER_YEAR, SECONDS_PER_DAY, SIN_ALPHA, SKYBOX_HALFSIZE, STANDARD_3D_ZOOM, image_s::texnum, sphere_s::texture, texunit_diffuse, va(), Vector4Set, VectorCopy, VectorSet, and viddef.
Referenced by uiGeoscapeNode::draw().
void R_Draw3DMapMarkers | ( | const vec2_t | nodePos, |
const vec2_t | nodeSize, | ||
const vec3_t | rotate, | ||
const vec2_t | pos, | ||
float | direction, | ||
float | earthRadius, | ||
const char * | model, | ||
int | skin | ||
) |
Draw 3D Marker on the 3D geoscape.
[in] | nodePos | The position, normalized (1024x768) |
[in] | nodeSize | The dimensions, normalized (1024x768) |
[in] | rotate | vector giving the angles of earth rotation due to player view. |
[in] | pos | longitude and latitude of the model to draw. |
[in] | direction | angle giving the direction the model is heading toward. |
[in] | earthRadius | Radius of earth on screen (this include zoom). |
[in] | model | The name of the model of the marker. |
[in] | skin | Number of modelskin to draw on marker |
Definition at line 235 of file r_geoscape.cpp.
References modelInfo_t::angles, modelInfo_t::center, Com_Printf(), f, MARKER_SIZE, modelInfo_t::model, modelInfo_t::name, OBJZERO, modelInfo_t::origin, R_DrawModelDirect(), R_FindModel(), R_ModelAutoScale(), viddef_t::rx, viddef_t::ry, scale, modelInfo_t::skin, vec3_origin, VectorCopy, and viddef.
Referenced by GAME_GetImportData().
handle post-processing bloom
Definition at line 760 of file r_geoscape.cpp.
References rstate_s::buffers0, rstate_s::buffers1, rstate_s::buffers2, rstate_s::combine2_program, viddef_t::context, default_program, DOWNSAMPLE_PASSES, fbo_bloom0, fbo_bloom1, fbo_render, fbo_screen, rconfig_t::frameBufferObject, viddefContext_t::height, i, cvar_s::integer, R_BindTexture, R_BindTextureForTexUnit(), R_Blur(), R_BlurStack(), R_CheckError, r_config, R_DrawQuad(), R_EnableRenderbuffer(), r_postprocess, r_programs, R_RenderbufferEnabled(), R_ResolveMSAA(), r_state, R_UseFramebuffer(), R_UseProgram(), R_UseViewport(), SKYBOX_DEPTH, r_framebuffer_t::textures, texunit_0, texunit_1, viddef, and viddefContext_t::width.
Referenced by uiGeoscapeNode::draw(), GAME_GetImportData(), and R_RenderFrame().
void R_DrawFlatGeoscape | ( | const vec2_t | nodePos, |
const vec2_t | nodeSize, | ||
float | p, | ||
float | cx, | ||
float | cy, | ||
float | iz, | ||
const char * | map, | ||
bool | overlayNation, | ||
bool | overlayXVI, | ||
bool | overlayRadar, | ||
image_t * | r_dayandnightTexture, | ||
image_t * | r_xviTexture, | ||
image_t * | r_radarTexture | ||
) |
Draw the day and night images of a flat geoscape multitexture feature is used to blend the images.
[in] | nodePos | The position, normalized (1024x768) |
[in] | nodeSize | The dimensions, normalized (1024x768) |
[in] | p | The horizontal shift of the night map |
[in] | cx,cy | The x/y texture coordinates |
[in] | iz | The zoomlevel of the geoscape - see ccs.zoom |
[in] | map | The geoscape map to draw (can be changed in the campaign definition) |
[in] | overlayNation,overlayXVI,overlayRadar | Whether these overlays should be drawn or not |
[in] | r_dayandnightTexture,r_xviTexture,r_radarTexture | The textures used for the corresponding overlays |
Definition at line 48 of file r_geoscape.cpp.
References rendererData_t::batchCount, Com_Error(), ERR_FATAL, it_wrappic, R_BindArray(), R_BindDefaultArray(), R_BindLightmapTexture(), R_BindTexture, R_EnableTexture(), R_FindImage(), r_noTexture, R_SelectTexture(), refdef, viddef_t::rx, viddef_t::ry, image_s::texnum, texunit_diffuse, texunit_lightmap, va(), and viddef.
Referenced by uiGeoscapeNode::draw().
Draw the current texture on a quad the size of the renderbuffer.
Definition at line 702 of file r_geoscape.cpp.
References rendererData_t::batchCount, f, fbo_render, R_BindArray(), R_BindDefaultArray(), refdef, and Vector2FromInt.
Referenced by R_Blur(), R_BlurStack(), and R_DrawBloom().
|
static |
Bind and draw starfield.
[in] | texnum | The texture id (already uploaded of course) |
[in] | pos | The earth position |
[in] | rotate | the rotate angle of the globe |
[in] | timeOfDay | The earth rotation (time of day) in arcseconds |
< Angle of rotation of starfield
Definition at line 365 of file r_geoscape.cpp.
References rendererData_t::batchCount, PITCH, R_BindTexture, refdef, ROLL, SKYBOX_DEPTH, starFieldTexCoords, starFieldVerts, todeg, VectorSet, and YAW.
Referenced by R_Draw3DGlobe().
|
inlinestatic |
rotate a planet (sun or moon) with respect to the earth
Definition at line 405 of file r_geoscape.cpp.
References PITCH, RotatePointAroundVector(), Vector4Set, VectorSet, and YAW.
Referenced by R_Draw3DGlobe().
|
static |
Definition at line 344 of file r_geoscape.cpp.
Referenced by R_DrawStarfield().
|
static |
Definition at line 306 of file r_geoscape.cpp.
Referenced by R_DrawStarfield().