summaryrefslogtreecommitdiffstats
path: root/src/render/CutsceneShadow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/CutsceneShadow.cpp')
-rw-r--r--src/render/CutsceneShadow.cpp269
1 files changed, 0 insertions, 269 deletions
diff --git a/src/render/CutsceneShadow.cpp b/src/render/CutsceneShadow.cpp
deleted file mode 100644
index 8cb33896..00000000
--- a/src/render/CutsceneShadow.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-#include "common.h"
-#include "main.h"
-#include "rwcore.h"
-#include "rwplcore.h"
-#include "CutsceneShadow.h"
-#include "RwHelper.h"
-
-#define DLIGHT_VALUE 0.8f /* Directional light intensity */
-
-
-CCutsceneShadow::CCutsceneShadow()
-{
- m_pAtomic = nil;
- m_nRwObjectType = -1;
- m_pLight = nil;
- m_nBlurPasses = 0;
- m_bResample = false;
- m_bGradient = false;
-}
-
-CCutsceneShadow::~CCutsceneShadow()
-{
- Destroy();
-}
-
-bool
-CCutsceneShadow::Create(RwObject *object, int32 rasterSize, bool resample, int32 blurPasses, bool gradient)
-{
- ASSERT(object != nil);
-
- RwRGBAReal color;
- RwFrame *frame;
-
- if (!object)
- return false;
-
- m_pLight = RpLightCreate(rpLIGHTDIRECTIONAL);
- ASSERT(m_pLight != nil);
-
- if (!m_pLight)
- return false;
-
- color.red = color.green = color.blue = DLIGHT_VALUE;
- color.alpha = 0.0f;
-
- RpLightSetColor(m_pLight, &color);
-
- frame = RwFrameCreate();
- ASSERT(frame != nil);
-
- RpLightSetFrame(m_pLight, frame);
-
- SetLightProperties(180.0f, 90.0f, false);
-
- m_pObject = object;
- m_nRwObjectType = RwObjectGetType(m_pObject);
-
- switch ( m_nRwObjectType )
- {
- case rpCLUMP:
- {
- RpClumpGetBoundingSphere(m_pClump, &m_BoundingSphere, 1);
- m_BaseSphere.radius = m_BoundingSphere.radius;
- RwV3dTransformPoints(&m_BaseSphere.center, &m_BoundingSphere.center, 1, RwFrameGetMatrix(RpClumpGetFrame(m_pClump)));
- break;
- }
-
- case rpATOMIC:
- {
- m_BoundingSphere = *RpAtomicGetBoundingSphere(m_pAtomic);
- m_BaseSphere.radius = m_BoundingSphere.radius;
- RwV3dTransformPoints(&m_BaseSphere.center, &m_BoundingSphere.center, 1, RwFrameGetMatrix(RpAtomicGetFrame(m_pAtomic)));
- break;
- }
-
- default:
- {
- Destroy();
- return false;
- break;
- }
- }
-
- if ( !m_Camera.Create(rasterSize) )
- {
- Destroy();
- return false;
- }
-
- m_nBlurPasses = blurPasses;
- m_bResample = resample;
- m_bGradient = gradient;
-
- if ( m_bResample && !m_ResampleCamera.Create(rasterSize - 1) )
- {
- Destroy();
- return false;
- }
-
- if ( m_nBlurPasses != 0 )
- {
- if ( !m_BlurCamera.Create(resample ? rasterSize - 1 : rasterSize) )
- {
- Destroy();
- return false;
- }
- }
-
- if ( m_bGradient )
- {
- if ( !m_GradientCamera.Create(resample ? rasterSize - 1 : rasterSize) )
- {
- Destroy();
- return false;
- }
-
- m_GradientCamera.MakeGradientRaster();
- }
-
- m_Camera.SetLight(m_pLight);
-
- switch ( m_nRwObjectType )
- {
- case rpATOMIC:
- m_Camera.SetFrustum(1.1f * m_BoundingSphere.radius);
- break;
-
- case rpCLUMP:
- m_Camera.SetFrustum(1.1f * m_BoundingSphere.radius);
- break;
- }
-
- m_Camera.SetCenter(&m_BaseSphere.center);
- return true;
-}
-
-RwFrame *
-CCutsceneShadow::SetLightProperties(float angleY, float angleX, bool setLight)
-{
- ASSERT(m_pLight != nil);
-
- RwFrame *frame;
- static RwV3d Xaxis = { 1.0f, 0.0f, 0.0f };
- static RwV3d Yaxis = { 0.0f, 1.0f, 0.0f };
-
- frame = RpLightGetFrame(m_pLight);
- ASSERT(frame != nil);
-
- if ( !frame )
- return nil;
-
- RwFrameRotate(frame, &Yaxis, angleY, rwCOMBINEREPLACE);
- RwFrameRotate(frame, &Xaxis, angleX, rwCOMBINEPOSTCONCAT);
-
- if ( setLight )
- m_Camera.SetLight(m_pLight);
-
- return frame;
-}
-
-bool
-CCutsceneShadow::IsInitialized()
-{
- return m_pObject != nil;
-}
-
-void
-CCutsceneShadow::Destroy()
-{
- m_Camera.Destroy();
- m_ResampleCamera.Destroy();
- m_BlurCamera.Destroy();
- m_GradientCamera.Destroy();
-
- m_pAtomic = nil;
-
- m_nRwObjectType = -1;
-
- if (m_pLight)
- {
- RwFrame *frame = RpLightGetFrame(m_pLight);
- RpLightSetFrame(m_pLight, nil);
- RwFrameDestroy(frame);
- RpLightDestroy(m_pLight);
- m_pLight = nil;
- }
-}
-
-RwRaster *
-CCutsceneShadow::Update()
-{
- switch ( m_nRwObjectType )
- {
- case rpCLUMP:
- ASSERT(m_pClump != nil);
- RwV3dTransformPoints(&m_BaseSphere.center, &m_BoundingSphere.center, 1, RwFrameGetMatrix(RpClumpGetFrame(m_pClump)));
- break;
-
- case rpATOMIC:
- ASSERT(m_pAtomic != nil);
- RwV3dTransformPoints(&m_BaseSphere.center, &m_BoundingSphere.center, 1, RwFrameGetMatrix(RpAtomicGetFrame(m_pAtomic)));
- break;
- }
-
- m_Camera.SetCenter(&m_BaseSphere.center);
-
- switch ( m_nRwObjectType )
- {
- case rpCLUMP:
- m_Camera.Update(m_pClump);
- break;
-
- case rpATOMIC:
- m_Camera.Update(m_pAtomic);
- break;
- }
-
- RwRaster *raster = m_Camera.GetRwRenderRaster();
- ASSERT(raster != nil);
-
- if ( m_bResample )
- return m_ResampleCamera.RasterResample(raster);
-
- if ( m_nBlurPasses )
- return m_BlurCamera.RasterBlur(raster, m_nBlurPasses);
-
- if ( m_bGradient )
- return m_GradientCamera.RasterGradient(raster);
-
- return raster;
-}
-
-RwTexture *
-CCutsceneShadow::UpdateForCutscene()
-{
- Update();
- return GetShadowRwTexture();
-}
-
-CShadowCamera *
-CCutsceneShadow::GetShadowCamera(int32 camType)
-{
- switch ( camType )
- {
- case RESAMPLE: return &m_ResampleCamera;
- case BLUR: return &m_BlurCamera;
- case GRADIENT: return &m_GradientCamera;
- }
-
- return &m_Camera;
-}
-
-RwTexture *
-CCutsceneShadow::GetShadowRwTexture()
-{
- if ( m_bResample )
- return m_ResampleCamera.GetRwRenderTexture();
- else
- return m_Camera.GetRwRenderTexture();
-}
-
-void
-CCutsceneShadow::DrawBorderAroundTexture(RwRGBA const& color)
-{
- if ( m_bResample )
- m_ResampleCamera.DrawOutlineBorder(color);
- else
- m_Camera.DrawOutlineBorder(color);
-} \ No newline at end of file