summaryrefslogtreecommitdiff
path: root/Runtime/Camera/CameraCullingParameters.h
blob: 593643293d544d94dabf6b3f00c69a76e90dc63e (plain)
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
#pragma once

#include "ShaderReplaceData.h"
#include "Runtime/Utilities/EnumFlags.h"
#include "UnityPrefix.h"
#include "Camera.h"
#include "External/shaderlab/Library/shaderlab.h"


namespace Umbra { class DebugRenderer; }

enum CullFlag
{
	kCullFlagForceEvenIfCameraIsNotActive	= 1 << 0,
	kCullFlagOcclusionCull					= 1 << 1,
	kCullFlagNeedsLighting					= 1 << 2,
};

struct CameraCullingParameters
{
	Camera*               cullingCamera;
	ShaderReplaceData     explicitShaderReplace;
	CullFlag              cullFlag;
	Umbra::DebugRenderer* umbraDebugRenderer;
	UInt32                umbraDebugFlags;
	
	CameraCullingParameters (Camera& cam, CullFlag flag)
	{ 
		cullingCamera = &cam; 
		cullFlag = flag; 
		umbraDebugRenderer = NULL; 
		umbraDebugFlags = 0;
	}
};

ENUM_FLAGS(CullFlag);