mirror of
https://github.com/FWGS/xash3d-fwgs
synced 2024-11-25 11:19:59 +01:00
5e0a0765ce
The `.editorconfig` file in this repo is configured to trim all trailing whitespace regardless of whether the line is modified. Trims all trailing whitespace in the repository to make the codebase easier to work with in editors that respect `.editorconfig`. `git blame` becomes less useful on these lines but it already isn't very useful. Commands: ``` find . -type f -name '*.h' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ find . -type f -name '*.c' -exec sed --in-place 's/[[:space:]]\+$//' {} \+ ```
155 lines
5.6 KiB
C
155 lines
5.6 KiB
C
/***
|
|
*
|
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
|
*
|
|
* This product contains software technology licensed from Id
|
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Use, distribution, and modification of this source code and/or resulting
|
|
* object code is restricted to non-commercial enhancements to products from
|
|
* Valve LLC. All other use, distribution, or modification is prohibited
|
|
* without written permission from Valve LLC.
|
|
*
|
|
****/
|
|
|
|
|
|
#ifndef R_STUDIOINT_H
|
|
#define R_STUDIOINT_H
|
|
|
|
#define STUDIO_INTERFACE_VERSION 1
|
|
|
|
typedef struct engine_studio_api_s
|
|
{
|
|
// Allocate number*size bytes and zero it
|
|
void *( *Mem_Calloc )( int number, size_t size );
|
|
// Check to see if pointer is in the cache
|
|
void *( *Cache_Check )( struct cache_user_s *c );
|
|
// Load file into cache ( can be swapped out on demand )
|
|
void ( *LoadCacheFile )( const char *path, struct cache_user_s *cu );
|
|
// Retrieve model pointer for the named model
|
|
struct model_s *( *Mod_ForName )( const char *name, int crash_if_missing );
|
|
// Retrieve pointer to studio model data block from a model
|
|
void *( *Mod_Extradata )( struct model_s *mod );
|
|
// Retrieve indexed model from client side model precache list
|
|
struct model_s *( *GetModelByIndex )( int index );
|
|
// Get entity that is set for rendering
|
|
struct cl_entity_s * ( *GetCurrentEntity )( void );
|
|
// Get referenced player_info_t
|
|
struct player_info_s *( *PlayerInfo )( int index );
|
|
// Get most recently received player state data from network system
|
|
struct entity_state_s *( *GetPlayerState )( int index );
|
|
// Get viewentity
|
|
struct cl_entity_s * ( *GetViewEntity )( void );
|
|
// Get current frame count, and last two timestampes on client
|
|
void ( *GetTimes )( int *framecount, double *current, double *old );
|
|
// Get a pointer to a cvar by name
|
|
struct cvar_s *( *GetCvar )( const char *name );
|
|
// Get current render origin and view vectors ( up, right and vpn )
|
|
void ( *GetViewInfo )( float *origin, float *upv, float *rightv, float *vpnv );
|
|
// Get sprite model used for applying chrome effect
|
|
struct model_s *( *GetChromeSprite )( void );
|
|
// Get model counters so we can incement instrumentation
|
|
void ( *GetModelCounters )( int **s, int **a );
|
|
// Get software scaling coefficients
|
|
void ( *GetAliasScale )( float *x, float *y );
|
|
|
|
// Get bone, light, alias, and rotation matrices
|
|
float ****( *StudioGetBoneTransform )( void );
|
|
float ****( *StudioGetLightTransform )( void );
|
|
float ***( *StudioGetAliasTransform )( void );
|
|
float ***( *StudioGetRotationMatrix )( void );
|
|
|
|
// Set up body part, and get submodel pointers
|
|
void ( *StudioSetupModel )( int bodypart, void **ppbodypart, void **ppsubmodel );
|
|
// Check if entity's bbox is in the view frustum
|
|
int ( *StudioCheckBBox )( void );
|
|
// Apply lighting effects to model
|
|
void ( *StudioDynamicLight )( struct cl_entity_s *ent, struct alight_s *plight );
|
|
void ( *StudioEntityLight )( struct alight_s *plight );
|
|
void ( *StudioSetupLighting )( struct alight_s *plighting );
|
|
|
|
// Draw mesh vertices
|
|
void ( *StudioDrawPoints )( void );
|
|
|
|
// Draw hulls around bones
|
|
void ( *StudioDrawHulls )( void );
|
|
// Draw bbox around studio models
|
|
void ( *StudioDrawAbsBBox )( void );
|
|
// Draws bones
|
|
void ( *StudioDrawBones )( void );
|
|
// Loads in appropriate texture for model
|
|
void ( *StudioSetupSkin )( void *ptexturehdr, int index );
|
|
// Sets up for remapped colors
|
|
void ( *StudioSetRemapColors )( int top, int bottom );
|
|
// Set's player model and returns model pointer
|
|
struct model_s *( *SetupPlayerModel )( int index );
|
|
// Fires any events embedded in animation
|
|
void ( *StudioClientEvents )( void );
|
|
// Retrieve/set forced render effects flags
|
|
int ( *GetForceFaceFlags )( void );
|
|
void ( *SetForceFaceFlags )( int flags );
|
|
// Tell engine the value of the studio model header
|
|
void ( *StudioSetHeader )( void *header );
|
|
// Tell engine which model_t * is being renderered
|
|
void ( *SetRenderModel )( struct model_s *model );
|
|
|
|
// Final state setup and restore for rendering
|
|
void ( *SetupRenderer )( int rendermode );
|
|
void ( *RestoreRenderer )( void );
|
|
|
|
// Set render origin for applying chrome effect
|
|
void ( *SetChromeOrigin )( void );
|
|
|
|
// True if using D3D/OpenGL
|
|
int ( *IsHardware )( void );
|
|
|
|
// Only called by hardware interface
|
|
void ( *GL_StudioDrawShadow )( void );
|
|
void ( *GL_SetRenderMode )( int mode );
|
|
|
|
void ( *StudioSetRenderamt )( int iRenderamt );
|
|
void ( *StudioSetCullState )( int iCull );
|
|
void ( *StudioRenderShadow )( int iSprite, float *p1, float *p2, float *p3, float *p4 );
|
|
} engine_studio_api_t;
|
|
|
|
typedef struct server_studio_api_s
|
|
{
|
|
// Allocate number*size bytes and zero it
|
|
void *( *Mem_Calloc )( int number, size_t size );
|
|
// Check to see if pointer is in the cache
|
|
void *( *Cache_Check )( struct cache_user_s *c );
|
|
// Load file into cache ( can be swapped out on demand )
|
|
void ( *LoadCacheFile )( const char *path, struct cache_user_s *cu );
|
|
// Retrieve pointer to studio model data block from a model
|
|
void *( *Mod_Extradata )( struct model_s *mod );
|
|
} server_studio_api_t;
|
|
|
|
// client blending
|
|
typedef struct r_studio_interface_s
|
|
{
|
|
int version;
|
|
int ( *StudioDrawModel )( int flags );
|
|
int ( *StudioDrawPlayer )( int flags, struct entity_state_s *pplayer );
|
|
} r_studio_interface_t;
|
|
|
|
// server blending
|
|
#define SV_BLENDING_INTERFACE_VERSION 1
|
|
|
|
typedef struct sv_blending_interface_s
|
|
{
|
|
int version;
|
|
|
|
void ( *SV_StudioSetupBones )( struct model_s *pModel,
|
|
float frame,
|
|
int sequence,
|
|
const vec3_t angles,
|
|
const vec3_t origin,
|
|
const byte *pcontroller,
|
|
const byte *pblending,
|
|
int iBone,
|
|
const edict_t *pEdict );
|
|
} sv_blending_interface_t;
|
|
|
|
#endif//R_STUDIOINT_H
|