mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-08 17:48:46 -10:00
This is a system for storing arbitrary data in the config file and then easily retrieving it later on. This has full Lua support for exposing the available options in a custom UI and changing the values of the options. This ported some of the existing command line options over to the new system which is opt-in for the moment by using a mod_table flag.
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
/*
|
|
* Copyright (C) Freespace Open 2013. All rights reserved.
|
|
*
|
|
* All source code herein is the property of Freespace Open. You may not sell
|
|
* or otherwise commercially exploit the source or things you created based on the
|
|
* source.
|
|
*
|
|
*/
|
|
|
|
#ifndef _SHADOWS_H
|
|
#define _SHADOWS_H
|
|
|
|
#include "globalincs/pstypes.h"
|
|
#include "object/object.h"
|
|
|
|
#define MAX_SHADOW_CASCADES 4
|
|
|
|
struct light_frustum_info
|
|
{
|
|
matrix4 proj_matrix;
|
|
|
|
vec3d min;
|
|
vec3d max;
|
|
|
|
float start_dist;
|
|
};
|
|
|
|
enum class ShadowQuality { Disabled = 0, Low = 1, Medium = 2, High = 3, Ultra = 4 };
|
|
|
|
extern ShadowQuality Shadow_quality;
|
|
|
|
extern matrix4 Shadow_view_matrix;
|
|
extern matrix4 Shadow_proj_matrix[MAX_SHADOW_CASCADES];
|
|
extern float Shadow_cascade_distances[MAX_SHADOW_CASCADES];
|
|
|
|
void shadows_construct_light_frustum(vec3d *min_out, vec3d *max_out, vec3d light_vec, matrix *orient, vec3d *pos, float fov, float aspect, float z_near, float z_far);
|
|
bool shadows_obj_in_frustum(object *objp, vec3d *min, vec3d *max, matrix *light_orient);
|
|
void shadows_render_all(float fov, matrix *eye_orient, vec3d *eye_pos);
|
|
|
|
matrix shadows_start_render(matrix *eye_orient, vec3d *eye_pos, float fov, float aspect, float veryneardist, float neardist, float middist, float fardist);
|
|
void shadows_end_render();
|
|
|
|
#endif
|