From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001
From: chai <chaifix@163.com>
Date: Wed, 14 Aug 2019 22:50:43 +0800
Subject: +Unity Runtime code

---
 Runtime/Terrain/SplatMaterials.h | 41 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 Runtime/Terrain/SplatMaterials.h

(limited to 'Runtime/Terrain/SplatMaterials.h')

diff --git a/Runtime/Terrain/SplatMaterials.h b/Runtime/Terrain/SplatMaterials.h
new file mode 100644
index 0000000..27b6696
--- /dev/null
+++ b/Runtime/Terrain/SplatMaterials.h
@@ -0,0 +1,41 @@
+#pragma once
+#include "Configuration/UnityConfigure.h"
+
+#if ENABLE_TERRAIN
+
+#include "TerrainData.h"
+#include "Runtime/Shaders/Material.h"
+#include "Runtime/Shaders/Shader.h"
+
+enum{
+	kTerrainShaderBaseMap,
+	kTerrainShaderFirst,
+	kTerrainShaderAdd,
+	kTerrainShaderCount
+};
+
+
+class SplatMaterials 
+{
+public:
+	SplatMaterials (PPtr<TerrainData> terrain);
+	~SplatMaterials ();
+	
+	Material** GetMaterials (Material* templateMat, int &materialCount);
+	Material* GetSplatBaseMaterial (Material* templateMat);
+	void Cleanup ();	
+
+private:
+	void LoadSplatShaders (Material* templateMat);
+	void SetupSplat (Material &m, int splatIndex, int index, bool setNormalMap);
+	
+private:
+	PPtr<TerrainData> m_TerrainData;
+	Shader *m_Shaders[kTerrainShaderCount];
+	
+	Material* m_AllocatedMaterials[32];	
+	Material* m_BaseMapMaterial;	
+	Material* m_CurrentTemplateMaterial;
+};
+
+#endif // ENABLE_TERRAIN
-- 
cgit v1.1-26-g67d0