Skip to content

Commit

Permalink
Reformat: xrEngine
Browse files Browse the repository at this point in the history
  • Loading branch information
invokr committed Jan 15, 2017
1 parent ed510c6 commit eea17cc
Show file tree
Hide file tree
Showing 211 changed files with 4,792 additions and 7,407 deletions.
15 changes: 6 additions & 9 deletions src/xrEngine/CameraBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "IGame_Level.h"
#include "stdafx.h"

#include "CameraBase.h"

Expand Down Expand Up @@ -42,8 +42,8 @@ void CCameraBase::Load(LPCSTR section)
bClampPitch = (0 != lim_pitch[0]) || (0 != lim_pitch[1]);
bClampYaw = (0 != lim_yaw[0]) || (0 != lim_yaw[1]);

if (bClampPitch) pitch = (lim_pitch[0] + lim_pitch[1])*0.5f;
if (bClampYaw) yaw = (lim_yaw[0] + lim_yaw[1])*0.5f;
if (bClampPitch) pitch = (lim_pitch[0] + lim_pitch[1]) * 0.5f;
if (bClampYaw) yaw = (lim_yaw[0] + lim_yaw[1]) * 0.5f;
}

IC float AClamp(Fvector2& l, float v)
Expand All @@ -53,8 +53,7 @@ IC float AClamp(Fvector2& l, float v)

float CCameraBase::CheckLimYaw()
{
if (bClampYaw)
{
if (bClampYaw) {
return AClamp(lim_yaw, yaw);
}
else
Expand All @@ -63,8 +62,7 @@ float CCameraBase::CheckLimYaw()

float CCameraBase::CheckLimPitch()
{
if (bClampYaw)
{
if (bClampYaw) {
return AClamp(lim_pitch, pitch);
}
else
Expand All @@ -73,8 +71,7 @@ float CCameraBase::CheckLimPitch()

float CCameraBase::CheckLimRoll()
{
if (bClampYaw)
{
if (bClampYaw) {
return AClamp(lim_roll, roll);
}
else
Expand Down
41 changes: 29 additions & 12 deletions src/xrEngine/CameraBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,44 +44,61 @@ class ENGINE_API CCameraBase
IC Fvector Right() const { return Fvector().crossproduct(vNormal, vDirection); }
IC float Fov() const { return f_fov; }
IC float Aspect() const { return f_aspect; }

int tag;

public:
CCameraBase(IGameObject* p, u32 flags);
virtual ~CCameraBase();
virtual void Load(LPCSTR section);
void SetParent(IGameObject* p) { parent = p; VERIFY(p); }
void SetParent(IGameObject* p)
{
parent = p;
VERIFY(p);
}
virtual void OnActivate(CCameraBase* old_cam) { ; }
virtual void OnDeactivate() { ; }
virtual void Move(int cmd, float val = 0, float factor = 1.0f) { ; }
virtual void Update(Fvector& point, Fvector& noise_angle) { ; }
virtual void Get(Fvector& P, Fvector& D, Fvector& N) { P.set(vPosition); D.set(vDirection); N.set(vNormal); }
virtual void Set(const Fvector& P, const Fvector& D, const Fvector& N) { vPosition.set(P); vDirection.set(D); vNormal.set(N); }
virtual void Set(float Y, float P, float R) { yaw = Y; pitch = P; roll = R; }
virtual void Get(Fvector& P, Fvector& D, Fvector& N)
{
P.set(vPosition);
D.set(vDirection);
N.set(vNormal);
}
virtual void Set(const Fvector& P, const Fvector& D, const Fvector& N)
{
vPosition.set(P);
vDirection.set(D);
vNormal.set(N);
}
virtual void Set(float Y, float P, float R)
{
yaw = Y;
pitch = P;
roll = R;
}

virtual float GetWorldYaw() { return 0; };
virtual float GetWorldPitch() { return 0; };

virtual float CheckLimYaw();
virtual float CheckLimPitch();
virtual float CheckLimRoll();
};


template<typename T>
template <typename T>
IC void tviewport_size(CRenderDeviceBase& D, float _viewport_near, const T& cam_info, float& h_w, float& h_h)
{
h_h = _viewport_near*tan(deg2rad(cam_info.Fov()) / 2.f);
h_h = _viewport_near * tan(deg2rad(cam_info.Fov()) / 2.f);
VERIFY2(_valid(h_h), make_string("invalide viewporrt params fov: %f ", cam_info.Fov()));
float aspect = D.fASPECT;//cam_info.Aspect();
float aspect = D.fASPECT; // cam_info.Aspect();
VERIFY(aspect > EPS);
h_w = h_h / aspect;
}

template<typename T>
template <typename T>
IC void viewport_size(float _viewport_near, const T& cam_info, float& h_w, float& h_h)
{
tviewport_size<T>(Device, _viewport_near, cam_info, h_w, h_h);
}

#endif // !defined(AFX_CAMERABASE_H__B11F8AE1_1213_11D4_B4E3_4854E82A090D__INCLUDED_)
#endif // !defined(AFX_CAMERABASE_H__B11F8AE1_1213_11D4_B4E3_4854E82A090D__INCLUDED_)
2 changes: 1 addition & 1 deletion src/xrEngine/CameraDebug.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//////////////////////////////////////////////////////////////////////

#pragma once
# error using of unused old header
#error using of unused old header

/*
#include "CameraBase.h"
Expand Down
2 changes: 1 addition & 1 deletion src/xrEngine/CameraDefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ struct ENGINE_API SCamEffectorInfo
bool dont_apply;
bool affected_on_hud;
SCamEffectorInfo();
SCamEffectorInfo& operator = (const SCamEffectorInfo& other)
SCamEffectorInfo& operator=(const SCamEffectorInfo& other)
{
p = other.p;
d = other.d;
Expand Down
79 changes: 30 additions & 49 deletions src/xrEngine/CameraManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "IGame_Level.h"
#include "IGame_Persistent.h"
#include "stdafx.h"

#include "Environment.h"
#include "CameraBase.h"
#include "CameraManager.h"
#include "Effector.h"
#include "EffectorPP.h"
#include "Environment.h"

#include "x_ray.h"
#include "GameFont.h"
#include "Render.h"
#include "x_ray.h"

float psCamInert = 0.f;
float psCamSlideInert = 0.25f;
Expand Down Expand Up @@ -63,8 +63,7 @@ CCameraManager::~CCameraManager()
CEffectorCam* CCameraManager::GetCamEffector(ECamEffectorType type)
{
for (EffectorCamIt it = m_EffectorsCam.begin(); it != m_EffectorsCam.end(); it++)
if ((*it)->eType == type)
{
if ((*it)->eType == type) {
return *it;
}
return 0;
Expand Down Expand Up @@ -96,8 +95,7 @@ void CCameraManager::UpdateDeffered()
void CCameraManager::RemoveCamEffector(ECamEffectorType type)
{
for (EffectorCamIt it = m_EffectorsCam.begin(); it != m_EffectorsCam.end(); it++)
if ((*it)->eType == type)
{
if ((*it)->eType == type) {
OnEffectorReleased(*it);
m_EffectorsCam.erase(it);
return;
Expand All @@ -114,9 +112,7 @@ CEffectorPP* CCameraManager::GetPPEffector(EEffectorPPType type)
ECamEffectorType CCameraManager::RequestCamEffectorId()
{
ECamEffectorType index = (ECamEffectorType)effCustomEffectorStartID;
for (;
GetCamEffector(index);
index = (ECamEffectorType)(index + 1))
for (; GetCamEffector(index); index = (ECamEffectorType)(index + 1))
{
;
}
Expand All @@ -126,9 +122,7 @@ ECamEffectorType CCameraManager::RequestCamEffectorId()
EEffectorPPType CCameraManager::RequestPPEffectorId()
{
EEffectorPPType index = (EEffectorPPType)effCustomEffectorStartID;
for (;
GetPPEffector(index);
index = (EEffectorPPType)(index + 1))
for (; GetPPEffector(index); index = (EEffectorPPType)(index + 1))
{
;
}
Expand All @@ -145,10 +139,8 @@ CEffectorPP* CCameraManager::AddPPEffector(CEffectorPP* ef)
void CCameraManager::RemovePPEffector(EEffectorPPType type)
{
for (EffectorPPIt it = m_EffectorsPP.begin(); it != m_EffectorsPP.end(); it++)
if ((*it)->Type() == type)
{
if ((*it)->FreeOnRemove())
{
if ((*it)->Type() == type) {
if ((*it)->FreeOnRemove()) {
OnEffectorReleased(*it);
// xr_delete (*it);
}
Expand All @@ -159,33 +151,32 @@ void CCameraManager::RemovePPEffector(EEffectorPPType type)

void CCameraManager::OnEffectorReleased(SBaseEffector* e)
{
if (!e->m_on_b_remove_callback.empty())
e->m_on_b_remove_callback();
if (!e->m_on_b_remove_callback.empty()) e->m_on_b_remove_callback();

xr_delete(e);
}

void CCameraManager::UpdateFromCamera(const CCameraBase* C)
{
Update(C->vPosition, C->vDirection, C->vNormal, C->f_fov, C->f_aspect, g_pGamePersistent->Environment().CurrentEnv->far_plane, C->m_Flags.flags);
Update(C->vPosition, C->vDirection, C->vNormal, C->f_fov, C->f_aspect,
g_pGamePersistent->Environment().CurrentEnv->far_plane, C->m_Flags.flags);
}

void CCameraManager::Update(const Fvector& P, const Fvector& D, const Fvector& N, float fFOV_Dest, float fASPECT_Dest, float fFAR_Dest, u32 flags)
void CCameraManager::Update(const Fvector& P, const Fvector& D, const Fvector& N, float fFOV_Dest, float fASPECT_Dest,
float fFAR_Dest, u32 flags)
{
#ifdef DEBUG
if (!Device.Paused())
{
VERIFY(dbg_upd_frame != Device.dwFrame);// already updated !!!
if (!Device.Paused()) {
VERIFY(dbg_upd_frame != Device.dwFrame); // already updated !!!
dbg_upd_frame = Device.dwFrame;
}
#endif // DEBUG
#endif // DEBUG
// camera
if (flags&CCameraBase::flPositionRigid)
if (flags & CCameraBase::flPositionRigid)
m_cam_info.p.set(P);
else
m_cam_info.p.inertion(P, psCamInert);
if (flags&CCameraBase::flDirectionRigid)
{
if (flags & CCameraBase::flDirectionRigid) {
m_cam_info.d.set(D);
m_cam_info.n.set(N);
}
Expand All @@ -205,32 +196,29 @@ void CCameraManager::Update(const Fvector& P, const Fvector& D, const Fvector& N
float src = 10 * Device.fTimeDelta;
clamp(src, 0.f, 1.f);
float dst = 1 - src;
m_cam_info.fFov = m_cam_info.fFov*dst + fFOV_Dest*src;
m_cam_info.fFar = m_cam_info.fFar*dst + fFAR_Dest*src;
m_cam_info.fAspect = m_cam_info.fAspect*dst + (fASPECT_Dest*aspect)*src;
m_cam_info.fFov = m_cam_info.fFov * dst + fFOV_Dest * src;
m_cam_info.fFar = m_cam_info.fFar * dst + fFAR_Dest * src;
m_cam_info.fAspect = m_cam_info.fAspect * dst + (fASPECT_Dest * aspect) * src;
m_cam_info.dont_apply = false;

UpdateCamEffectors();

UpdatePPEffectors();

if (false == m_cam_info.dont_apply && m_bAutoApply)
ApplyDevice(VIEWPORT_NEAR);
if (false == m_cam_info.dont_apply && m_bAutoApply) ApplyDevice(VIEWPORT_NEAR);

UpdateDeffered();
}

bool CCameraManager::ProcessCameraEffector(CEffectorCam* eff)
{
bool res = false;
if (eff->Valid() && eff->ProcessCam(m_cam_info))
{
if (eff->Valid() && eff->ProcessCam(m_cam_info)) {
res = true;
}
else
{
if (eff->AllowProcessingIfInvalid())
{
if (eff->AllowProcessingIfInvalid()) {
eff->ProcessIfInvalid(m_cam_info);
res = true;
}
Expand Down Expand Up @@ -261,25 +249,21 @@ void CCameraManager::UpdatePPEffectors()
pp_affected.validate("before applying pp");

int _count = 0;
if (m_EffectorsPP.size())
{
if (m_EffectorsPP.size()) {
bool b = false;
pp_affected = pp_identity;
for (int i = m_EffectorsPP.size() - 1; i >= 0; --i)
{
CEffectorPP* eff = m_EffectorsPP[i];
SPPInfo l_PPInf = pp_zero;
if (eff->Valid() && eff->Process(l_PPInf))
{
if (eff->Valid() && eff->Process(l_PPInf)) {
++_count;
if (!b)
{
if (!b) {
pp_affected.add(l_PPInf);
pp_affected.sub(pp_identity);
pp_affected.validate("in cycle");
}
if (!eff->bOverlap)
{
if (!eff->bOverlap) {
b = true;
pp_affected = l_PPInf;
}
Expand All @@ -297,14 +281,11 @@ void CCameraManager::UpdatePPEffectors()
pp_affected = pp_identity;
}

if (!positive(pp_affected.noise.grain))
pp_affected.noise.grain = pp_identity.noise.grain;
if (!positive(pp_affected.noise.grain)) pp_affected.noise.grain = pp_identity.noise.grain;

pp_affected.validate("after applying pp");
}



void CCameraManager::ApplyDevice(float _viewport_near)
{
// Device params
Expand Down
5 changes: 3 additions & 2 deletions src/xrEngine/CameraManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class ENGINE_API CCameraManager
virtual void UpdatePPEffectors();
virtual bool ProcessCameraEffector(CEffectorCam* eff);
void OnEffectorReleased(SBaseEffector* e);

public:
#ifdef DEBUG
u32 dbg_upd_frame;
Expand All @@ -54,9 +55,9 @@ class ENGINE_API CCameraManager
IC Fvector Right() const { return m_cam_info.r; }
IC float Fov() const { return m_cam_info.fFov; }
IC float Aspect() const { return m_cam_info.fAspect; }

IC void camera_Matrix(Fmatrix& M) { M.set(m_cam_info.r, m_cam_info.n, m_cam_info.d, m_cam_info.p); }
void Update(const Fvector& P, const Fvector& D, const Fvector& N, float fFOV_Dest, float fASPECT_Dest, float fFAR_Dest, u32 flags);
void Update(const Fvector& P, const Fvector& D, const Fvector& N, float fFOV_Dest, float fASPECT_Dest,
float fFAR_Dest, u32 flags);
void UpdateFromCamera(const CCameraBase* C);

void ApplyDevice(float _viewport_near);
Expand Down
6 changes: 3 additions & 3 deletions src/xrEngine/CustomHUD.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#include "stdafx.h"
#include "CustomHUD.h"
#include "stdafx.h"

Flags32 psHUD_Flags = {HUD_CROSSHAIR_RT | HUD_WEAPON_RT | HUD_WEAPON_RT2 | HUD_CROSSHAIR_DYNAMIC | HUD_CROSSHAIR_RT2 | HUD_DRAW_RT | HUD_DRAW_RT2};
Flags32 psHUD_Flags = {HUD_CROSSHAIR_RT | HUD_WEAPON_RT | HUD_WEAPON_RT2 | HUD_CROSSHAIR_DYNAMIC | HUD_CROSSHAIR_RT2 |
HUD_DRAW_RT | HUD_DRAW_RT2};

ENGINE_API CCustomHUD* g_hud = NULL;

Expand All @@ -16,4 +17,3 @@ CCustomHUD::~CCustomHUD()
g_hud = NULL;
Device.seqResolutionChanged.Remove(this);
}

Loading

0 comments on commit eea17cc

Please sign in to comment.