Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
ppemanager.c File Reference

Go to the source code of this file.

Classes

class  PPEManagerStatic
 Static component of PPE manager, used to hold the instance. More...
 

Functions

void PPEManager ()
 
void Cleanup ()
 
void Init ()
 Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside of a non-static system)
 
void InitPPEManagerClassMap ()
 Ordered by 'PostProcessEffectType' for easy access through the same enum; ID saved all the same.
 
void RegisterPPEClass (PPEClassBase material_class)
 Registeres material class and creates data structure within.
 
void SendMaterialValueData (PPERequestParamDataBase data)
 
void SetMaterialParamUpdating (int material_id, int parameter_id, int order)
 Queues material/parameter to update (once)
 
void RemoveMaterialUpdating (int material_id, int order=0)
 Currently unused, requests remain in the hierarchy and are used when needed (slightly faster than constantly re-shuffilng the arrays)
 
void ClearMaterialUpdating ()
 
void SetRequestActive (PPERequesterBase request, bool active)
 Marks requester as 'active'. Currently indistinguiishable from 'updating' requester, can potentially be used for intermittently updated requesters.
 
void SetRequestUpdating (PPERequesterBase request, bool active)
 Marks requester as 'updating' and to be processed on manager update.
 
bool GetExistingRequester (typename req, out PPERequesterBase ret)
 
bool IsAnyRequesterRunning (array< typename > requesters)
 
void RemoveActiveRequestFromMaterials (PPERequesterBase req)
 
void RequestsCleanup ()
 Unused cleanup method, should it be ever needed.
 
void InsertUpdatedMaterial (int mat_id)
 Marks material class as updated and values to be set in the course of update - 'ProcessApplyValueChanges'.
 
void ProcessRequesterUpdates (float timeslice)
 
void ProcessMaterialUpdates (float timeslice)
 
void ProcessApplyValueChanges ()
 
void Update (float timeslice)
 
Param GetPostProcessDefaultValues (int material, int parameter)
 Returns default values as Param. See 'PPEConstants' file for various typedefs used.
 
Param GetPostProcessCurrentValues (int material, int parameter)
 Returns current values as Param. See 'PPEConstants' file for various typedefs used.
 
void ChangePPEMaterial (PostProcessPrioritiesCamera priority, PostProcessEffectType type, string path, bool scriptside_only)
 Changes material file associated with the script material class. Will be used very rarely, mostly set in C++ anyway.
 
void StopAllEffects (int mask=0)
 stops all effects of a certain kind
 
void DbgPrnt (string text)
 

Variables

class PPEManagerStatic CAMERA_ID = 0
 
bool m_ManagerInitialized
 
ref map< int, ref PPEClassBasem_PPEClassMap
 
ref map< int, ref array< int > > m_PPEMaterialUpdateQueueMap
 
ref array< intm_UpdatedMaterials
 
ref array< ref PPERequesterBasem_ExistingPostprocessRequests
 
ref array< ref PPERequesterBasem_UpdatingRequests
 

Function Documentation

◆ ChangePPEMaterial()

void ChangePPEMaterial ( PostProcessPrioritiesCamera priority,
PostProcessEffectType type,
string path,
bool scriptside_only )
protected

Changes material file associated with the script material class. Will be used very rarely, mostly set in C++ anyway.

Definition at line 356 of file ppemanager.c.

◆ Cleanup()

void Cleanup ( )
protected

Definition at line 70 of file ppemanager.c.

◆ ClearMaterialUpdating()

void ClearMaterialUpdating ( )
protected

Definition at line 189 of file ppemanager.c.

◆ DbgPrnt()

void DbgPrnt ( string text)
protected

Definition at line 395 of file ppemanager.c.

◆ GetExistingRequester()

bool GetExistingRequester ( typename req ,
out PPERequesterBase ret )
protected

Definition at line 232 of file ppemanager.c.

◆ GetPostProcessCurrentValues()

Param GetPostProcessCurrentValues ( int material,
int parameter )
protected

Returns current values as Param. See 'PPEConstants' file for various typedefs used.

Definition at line 347 of file ppemanager.c.

◆ GetPostProcessDefaultValues()

Param GetPostProcessDefaultValues ( int material,
int parameter )
protected

Returns default values as Param. See 'PPEConstants' file for various typedefs used.

Definition at line 340 of file ppemanager.c.

◆ Init()

void Init ( )
protected

Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside of a non-static system)

Definition at line 84 of file ppemanager.c.

◆ InitPPEManagerClassMap()

void InitPPEManagerClassMap ( )
protected

Ordered by 'PostProcessEffectType' for easy access through the same enum; ID saved all the same.

Definition at line 101 of file ppemanager.c.

◆ InsertUpdatedMaterial()

void InsertUpdatedMaterial ( int mat_id)
protected

Marks material class as updated and values to be set in the course of update - 'ProcessApplyValueChanges'.

Definition at line 278 of file ppemanager.c.

◆ IsAnyRequesterRunning()

bool IsAnyRequesterRunning ( array< typename > requesters)
protected

Definition at line 243 of file ppemanager.c.

◆ PPEManager()

void PPEManager ( )
protected

Definition at line 64 of file ppemanager.c.

◆ ProcessApplyValueChanges()

void ProcessApplyValueChanges ( )
protected

Definition at line 314 of file ppemanager.c.

◆ ProcessMaterialUpdates()

void ProcessMaterialUpdates ( float timeslice)
protected

Definition at line 299 of file ppemanager.c.

◆ ProcessRequesterUpdates()

void ProcessRequesterUpdates ( float timeslice)
protected

Definition at line 287 of file ppemanager.c.

◆ RegisterPPEClass()

void RegisterPPEClass ( PPEClassBase material_class)
protected

Registeres material class and creates data structure within.

Definition at line 139 of file ppemanager.c.

◆ RemoveActiveRequestFromMaterials()

void RemoveActiveRequestFromMaterials ( PPERequesterBase req)
protected

/brief Originally designed to rip the requester data from all relevant mat/params, but that proved too costly and volatile. /note Still, it is here, use at your own peril.

Definition at line 260 of file ppemanager.c.

◆ RemoveMaterialUpdating()

void RemoveMaterialUpdating ( int material_id,
int order = 0 )
protected

Currently unused, requests remain in the hierarchy and are used when needed (slightly faster than constantly re-shuffilng the arrays)

Definition at line 178 of file ppemanager.c.

◆ RequestsCleanup()

void RequestsCleanup ( )
protected

Unused cleanup method, should it be ever needed.

Definition at line 273 of file ppemanager.c.

◆ SendMaterialValueData()

void SendMaterialValueData ( PPERequestParamDataBase data)
protected

Definition at line 144 of file ppemanager.c.

◆ SetMaterialParamUpdating()

void SetMaterialParamUpdating ( int material_id,
int parameter_id,
int order )
protected

Queues material/parameter to update (once)

Definition at line 153 of file ppemanager.c.

◆ SetRequestActive()

void SetRequestActive ( PPERequesterBase request,
bool active )
protected

Marks requester as 'active'. Currently indistinguiishable from 'updating' requester, can potentially be used for intermittently updated requesters.

Definition at line 195 of file ppemanager.c.

◆ SetRequestUpdating()

void SetRequestUpdating ( PPERequesterBase request,
bool active )
protected

Marks requester as 'updating' and to be processed on manager update.

Definition at line 211 of file ppemanager.c.

◆ StopAllEffects()

void StopAllEffects ( int mask = 0)
protected

stops all effects of a certain kind

Definition at line 381 of file ppemanager.c.

◆ Update()

override void Update ( float timeslice = 0)
protected

Definition at line 328 of file ppemanager.c.

Variable Documentation

◆ CAMERA_ID

class PPEManagerStatic CAMERA_ID = 0

/brief Postprocess manager, responsible for updates, receiving, and re-distributing requester data to their respective destinations. /par Basic post process flow outline: Getting a registered 'PPERequester' instance from the 'PPERequesterBank'

/par Launching the requester, either through an overriden 'Start' method, or custom method with some setters (both flag it as active and to be processed)

/par On render update, PPEManager: Handles queued requester changes, re-distributes individual commands to material structure

/par
Updates the material/parameter structure and calculates the blend values

/par
Sets the final values via native functions (only called once per changed parameter - optimization stonks)

/note Requester serves as a centralized platform for specific effec/group of effects. Although technically the direct commands to mat/param would be feasible, this allows for easier control of effect groups, /note and clearer command hierarchy (no value setters without clear parentage).

◆ m_ExistingPostprocessRequests

ref array<ref PPERequesterBase> m_ExistingPostprocessRequests
protected

Definition at line 61 of file ppemanager.c.

◆ m_ManagerInitialized

bool m_ManagerInitialized
protected

Definition at line 57 of file ppemanager.c.

◆ m_PPEClassMap

ref map<int, ref PPEClassBase> m_PPEClassMap
protected

Definition at line 58 of file ppemanager.c.

◆ m_PPEMaterialUpdateQueueMap

ref map<int, ref array<int> > m_PPEMaterialUpdateQueueMap
protected

Definition at line 59 of file ppemanager.c.

◆ m_UpdatedMaterials

ref array<int> m_UpdatedMaterials
protected

Definition at line 60 of file ppemanager.c.

◆ m_UpdatingRequests

ref array<ref PPERequesterBase> m_UpdatingRequests
protected

Definition at line 62 of file ppemanager.c.