You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.6 KiB
49 lines
1.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Stateless light computation routines |
|
// |
|
//===========================================================================// |
|
|
|
#ifndef R_STUDIOLIGHT_H |
|
#define R_STUDIOLIGHT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#include "tier0/platform.h" |
|
|
|
#if defined( _WIN32 ) && !defined( _X360 ) |
|
#include <xmmintrin.h> |
|
#endif |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Forward declarations |
|
//----------------------------------------------------------------------------- |
|
class Vector; |
|
class Vector4D; |
|
class FourVectors; |
|
struct lightpos_t; |
|
struct LightDesc_t; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Stateless light computation routines |
|
//----------------------------------------------------------------------------- |
|
|
|
// Computes the ambient term |
|
void R_LightAmbient_4D( const Vector& normal, Vector4D* pLightBoxColor, Vector &lv ); |
|
void R_LightStrengthWorld( const Vector& vert, int lightcount, LightDesc_t* pLightDesc, lightpos_t *light ); |
|
float FASTCALL R_WorldLightDistanceFalloff( const LightDesc_t *wl, const Vector& delta ); |
|
|
|
// Copies lighting state into a buffer, returns number of lights copied |
|
int CopyLocalLightingState( int nMaxLights, LightDesc_t *pDest, int nLightCount, const LightDesc_t *pSrc ); |
|
|
|
#if defined( _WIN32 ) && !defined( _X360 ) |
|
// SSE optimized versions |
|
void R_LightAmbient_4D( const FourVectors& normal, Vector4D* pLightBoxColor, FourVectors &lv ); |
|
__m128 FASTCALL R_WorldLightDistanceFalloff( const LightDesc_t *wl, const FourVectors& delta ); |
|
#endif |
|
|
|
#endif // R_STUDIOLIGHT_H
|
|
|