naev 0.11.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 "log.h"
#include "menu.h"
#include "opengl.h"
#include "player.h"
#include "rng.h"
#include "spfx.h"
#include "vec2.h"

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_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 = 0.
 
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 26 of file nebula.c.

Function Documentation

◆ nebu_blitFBO()

static void nebu_blitFBO ( void )
static

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

Definition at line 191 of file nebula.c.

◆ nebu_exit()

void nebu_exit ( void )

Cleans up the nebu subsystem.

Definition at line 134 of file nebula.c.

◆ nebu_getSightRadius()

double nebu_getSightRadius ( void )

Gets the nebula view radius.

Returns
The nebula view radius.

Definition at line 126 of file nebula.c.

◆ nebu_init()

int nebu_init ( void )

Initializes the nebula.

Returns
0 on success.

Definition at line 76 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 379 of file nebula.c.

◆ nebu_render()

void nebu_render ( const double dt)

Renders the nebula.

Parameters
dtCurrent delta tick.

Definition at line 147 of file nebula.c.

◆ nebu_renderBackground()

static void nebu_renderBackground ( const double dt)
static

Renders the nebula using the multitexture approach.

Parameters
dtCurrent delta tick.

Definition at line 158 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 271 of file nebula.c.

◆ nebu_renderPuffs()

static void nebu_renderPuffs ( int below_player)
static

Renders the puffs.

Parameters
below_playerRender the puffs below player or above player?

Definition at line 325 of file nebula.c.

◆ nebu_resize()

int nebu_resize ( void )

Handles a screen s.

Returns
0 on success.

Definition at line 87 of file nebula.c.

◆ nebu_update()

void nebu_update ( double dt)

Updates visibility and stuff.

Definition at line 224 of file nebula.c.

Variable Documentation

◆ nebu_density

double nebu_density = 0.
static

The density.

Definition at line 30 of file nebula.c.

◆ nebu_dofbo

int nebu_dofbo = 0
static

Definition at line 38 of file nebula.c.

◆ nebu_dt

double nebu_dt = 0.
static

How fast nebula changes.

Definition at line 33 of file nebula.c.

◆ nebu_dx

double nebu_dx = 0.
static

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

Definition at line 31 of file nebula.c.

◆ nebu_fbo

GLuint nebu_fbo = GL_INVALID_VALUE
static

Definition at line 39 of file nebula.c.

◆ nebu_hue

double nebu_hue = 0.
static

The hue.

Definition at line 29 of file nebula.c.

◆ nebu_npuffs

int nebu_npuffs = 0
static

Number of puffs.

Definition at line 58 of file nebula.c.

◆ nebu_puffs

NebulaPuff* nebu_puffs = NULL
static

Stack of puffs.

Definition at line 57 of file nebula.c.

◆ nebu_render_h

GLfloat nebu_render_h = 0.
static

Definition at line 42 of file nebula.c.

◆ nebu_render_P

mat4 nebu_render_P
static

Definition at line 43 of file nebula.c.

◆ nebu_render_w

GLfloat nebu_render_w = 0.
static

Definition at line 41 of file nebula.c.

◆ nebu_scale

double nebu_scale = 4.
static

How much to scale nebula.

Definition at line 37 of file nebula.c.

◆ nebu_tex

GLuint nebu_tex = GL_INVALID_VALUE
static

Definition at line 40 of file nebula.c.

◆ nebu_time

double nebu_time = 0.
static

Elapsed time since entering system.

Definition at line 34 of file nebula.c.

◆ nebu_view

double nebu_view = 0.
static

How far player can see.

Definition at line 32 of file nebula.c.

◆ puff_x

double puff_x = 0.
static

Definition at line 59 of file nebula.c.

◆ puff_y

double puff_y = 0.
static

Definition at line 60 of file nebula.c.