-
Notifications
You must be signed in to change notification settings - Fork 36
/
SokobanRenderer.h
41 lines (31 loc) · 964 Bytes
/
SokobanRenderer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
#include "shadowmapeffect.h"
#include "SokobanActiveLevel.h"
#include "ThemeSimple.h" // flat untextured
#include "ThemeDefault.h" // textured, skybox, lit
#include "ThemeDesert.h"
#include "ThemeEvilForest.h"
#include "Vector3.h"
class SokobanRenderer
{
public:
SokobanRenderer(void);
~SokobanRenderer(void);
void RenderLevel(const SokobanActiveLevel LevelData);
// TODO :: ThemeMgr
//ThemeDefault m_Theme;
//ThemeSimple m_Theme;
//ThemeEvilForest m_Theme;
ThemeDesert m_Theme;
// Initialize the Render System
void Setup(void);
private:
// Actually render the level
void _RenderLevel(const SokobanActiveLevel LevelData);
// The amount to scale the level by in order to get it to fit in a 50 x 50 space
CVector3 m_LevelScale;
// Calculate the amount to scale the level to in order to fit it on screen
float CalculateScaleFactor(float ClampAmount, const SokobanActiveLevel LevelData);
public:
ShadowMapEffect ShadowMap;
};