naev 0.12.5
nebula.c File Reference

Handles rendering and generating the nebula. More...

#include "nebula.h"
#include "camera.h"
#include "conf.h"
#include "gui.h"
#include "menu.h"
#include "ntracing.h"
#include "opengl.h"
#include "player.h"
#include "rng.h"
#include "vec2.h"
Include dependency graph for nebula.c:

Go to the source code of this file.

Data Structures

struct  NebulaPuff
 Represents a nebula puff. More...

Macros

#define NEBULA_PUFF_BUFFER   300

Functions

static void nebu_renderPuffs (int below_player)
 Renders the puffs.
static void nebu_renderBackground (const double dt)
 Renders the nebula using the multitexture approach.
static void nebu_blitFBO (void)
 If we're drawing the nebula buffered, copy to the screen.
int nebu_init (void)
 Initializes the nebula.
int nebu_resize (void)
 Handles a screen s.
double nebu_getSightRadius (void)
 Gets the nebula view radius.
void nebu_exit (void)
 Cleans up the nebu subsystem.
void nebu_render (const double dt)
 Renders the nebula.
void nebu_update (double dt)
 Updates visibility and stuff.
void nebu_renderOverlay (const double dt)
 Renders the nebula overlay (hides what player can't see).
void nebu_updateColour (void)
void nebu_prep (double density, double volatility, double hue)
 Prepares the nebualae to be rendered.

Variables

static double nebu_hue = 0.
static double nebu_density = 0.
static double nebu_dx
static double nebu_view = 0.
static double nebu_dt = 0.
static double nebu_time = 0.
static double nebu_scale = 4.
static int nebu_dofbo = 0
static GLuint nebu_fbo = GL_INVALID_VALUE
static GLuint nebu_tex = GL_INVALID_VALUE
static GLfloat nebu_render_w = 0.
static GLfloat nebu_render_h = 0.
static mat4 nebu_render_P
static NebulaPuffnebu_puffs = NULL
static int nebu_npuffs = 0
static double puff_x = 0.
static double puff_y = 0.

Detailed Description

Handles rendering and generating the nebula.

Definition in file nebula.c.

Macro Definition Documentation

◆ NEBULA_PUFF_BUFFER

#define NEBULA_PUFF_BUFFER   300

Nebula buffer

Definition at line 22 of file nebula.c.

Function Documentation

◆ nebu_blitFBO()

void nebu_blitFBO ( void )
static

If we're drawing the nebula buffered, copy to the screen.

Definition at line 196 of file nebula.c.

◆ nebu_exit()

void nebu_exit ( void )

Cleans up the nebu subsystem.

Definition at line 132 of file nebula.c.

◆ nebu_getSightRadius()

double nebu_getSightRadius ( void )

Gets the nebula view radius.

Returns
The nebula view radius.

Definition at line 124 of file nebula.c.

◆ nebu_init()

int nebu_init ( void )

Initializes the nebula.

Returns
0 on success.

Definition at line 73 of file nebula.c.

◆ nebu_prep()

void nebu_prep ( double density,
double volatility,
double hue )

Prepares the nebualae to be rendered.

Parameters
densityDensity of the nebula (0-1000).
volatilityVolatility of the nebula.
hueHue of the nebula (0-1).

Definition at line 397 of file nebula.c.

◆ nebu_render()

void nebu_render ( const double dt)

Renders the nebula.

Parameters
dtCurrent delta tick.

Definition at line 145 of file nebula.c.

◆ nebu_renderBackground()

void nebu_renderBackground ( const double dt)
static

Renders the nebula using the multitexture approach.

Parameters
dtCurrent delta tick.

Definition at line 160 of file nebula.c.

◆ nebu_renderOverlay()

void nebu_renderOverlay ( const double dt)

Renders the nebula overlay (hides what player can't see).

Parameters
dtCurrent delta tick.

Definition at line 257 of file nebula.c.

◆ nebu_renderPuffs()

void nebu_renderPuffs ( int below_player)
static

Renders the puffs.

Parameters
below_playerRender the puffs below player or above player?

Definition at line 314 of file nebula.c.

◆ nebu_resize()

int nebu_resize ( void )

Handles a screen s.

Returns
0 on success.

Definition at line 84 of file nebula.c.

◆ nebu_update()

void nebu_update ( double dt)

Updates visibility and stuff.

Definition at line 210 of file nebula.c.

◆ nebu_updateColour()

void nebu_updateColour ( void )

Definition at line 362 of file nebula.c.

Variable Documentation

◆ nebu_density

double nebu_density = 0.
static

The density.

Definition at line 26 of file nebula.c.

◆ nebu_dofbo

int nebu_dofbo = 0
static

Definition at line 35 of file nebula.c.

◆ nebu_dt

double nebu_dt = 0.
static

How fast nebula changes.

Definition at line 30 of file nebula.c.

◆ nebu_dx

double nebu_dx
static
Initial value:
=
0.

Length scale (space coords) for turbulence/eddies we draw.

Definition at line 27 of file nebula.c.

◆ nebu_fbo

GLuint nebu_fbo = GL_INVALID_VALUE
static

Definition at line 36 of file nebula.c.

◆ nebu_hue

double nebu_hue = 0.
static

The hue.

Definition at line 25 of file nebula.c.

◆ nebu_npuffs

int nebu_npuffs = 0
static

Number of puffs.

Definition at line 55 of file nebula.c.

◆ nebu_puffs

NebulaPuff* nebu_puffs = NULL
static

Stack of puffs.

Definition at line 54 of file nebula.c.

◆ nebu_render_h

GLfloat nebu_render_h = 0.
static

Definition at line 39 of file nebula.c.

◆ nebu_render_P

mat4 nebu_render_P
static

Definition at line 40 of file nebula.c.

◆ nebu_render_w

GLfloat nebu_render_w = 0.
static

Definition at line 38 of file nebula.c.

◆ nebu_scale

double nebu_scale = 4.
static

How much to scale nebula.

Definition at line 34 of file nebula.c.

◆ nebu_tex

GLuint nebu_tex = GL_INVALID_VALUE
static

Definition at line 37 of file nebula.c.

◆ nebu_time

double nebu_time = 0.
static

Elapsed time since entering system.

Definition at line 31 of file nebula.c.

◆ nebu_view

double nebu_view = 0.
static

How far player can see.

Definition at line 29 of file nebula.c.

◆ puff_x

double puff_x = 0.
static

Definition at line 56 of file nebula.c.

◆ puff_y

double puff_y = 0.
static

Definition at line 57 of file nebula.c.