Просмотр исходного кода

Before getting ready to solve derived class serialization issues

Marko Pintera 13 лет назад
Родитель
Сommit
dc03bff18f

+ 2 - 2
CamelotD3D9Renderer/Include/CmD3D9GpuProgram.h

@@ -42,9 +42,9 @@ namespace CamelotEngine {
         D3D9GpuProgram();
         D3D9GpuProgram();
         ~D3D9GpuProgram();
         ~D3D9GpuProgram();
 
 
-		virtual void load(void);
+		virtual void loadImpl(void);
 		/** Loads this program to specified device */
 		/** Loads this program to specified device */
-		virtual void load(IDirect3DDevice9* d3d9Device);
+		virtual void loadImpl(IDirect3DDevice9* d3d9Device);
 		/** Overridden from GpuProgram */
 		/** Overridden from GpuProgram */
 		virtual void unload(void);
 		virtual void unload(void);
 
 

+ 5 - 5
CamelotD3D9Renderer/Source/CmD3D9GpuProgram.cpp

@@ -73,7 +73,7 @@ namespace CamelotEngine {
 	}
 	}
 
 
 	//-----------------------------------------------------------------------------
 	//-----------------------------------------------------------------------------
-    void D3D9GpuProgram::load(void)
+    void D3D9GpuProgram::loadImpl(void)
     {
     {
 		D3D9_DEVICE_ACCESS_CRITICAL_SECTION
 		D3D9_DEVICE_ACCESS_CRITICAL_SECTION
 
 
@@ -81,12 +81,12 @@ namespace CamelotEngine {
 		{
 		{
 			IDirect3DDevice9* d3d9Device = D3D9RenderSystem::getResourceCreationDevice(i);
 			IDirect3DDevice9* d3d9Device = D3D9RenderSystem::getResourceCreationDevice(i);
 
 
-			load(d3d9Device);
+			loadImpl(d3d9Device);
 		}		       
 		}		       
     }
     }
 
 
 	//-----------------------------------------------------------------------------
 	//-----------------------------------------------------------------------------
-	void D3D9GpuProgram::load(IDirect3DDevice9* d3d9Device)
+	void D3D9GpuProgram::loadImpl(IDirect3DDevice9* d3d9Device)
 	{
 	{
 		D3D9_DEVICE_ACCESS_CRITICAL_SECTION
 		D3D9_DEVICE_ACCESS_CRITICAL_SECTION
 
 
@@ -263,7 +263,7 @@ namespace CamelotEngine {
 		// Shader was not found -> load it.
 		// Shader was not found -> load it.
 		if (it == mMapDeviceToVertexShader.end())		
 		if (it == mMapDeviceToVertexShader.end())		
 		{
 		{
-			load(d3d9Device);		
+			loadImpl(d3d9Device);		
 			it = mMapDeviceToVertexShader.find(d3d9Device);
 			it = mMapDeviceToVertexShader.find(d3d9Device);
 		}
 		}
 	
 	
@@ -366,7 +366,7 @@ namespace CamelotEngine {
 		// Shader was not found -> load it.
 		// Shader was not found -> load it.
 		if (it == mMapDeviceToPixelShader.end())		
 		if (it == mMapDeviceToPixelShader.end())		
 		{
 		{
-			load(d3d9Device);			
+			loadImpl(d3d9Device);			
 			it = mMapDeviceToPixelShader.find(d3d9Device);
 			it = mMapDeviceToPixelShader.find(d3d9Device);
 		}
 		}
 
 

+ 14 - 0
CamelotRenderer/Include/CmGpuProgramRTTI.h

@@ -12,11 +12,25 @@ namespace CamelotEngine
 		CM_SETGET_MEMBER(mSize, UINT32, GpuProgram)
 		CM_SETGET_MEMBER(mSize, UINT32, GpuProgram)
 		CM_SETGET_MEMBER(mUUID, String, GpuProgram);
 		CM_SETGET_MEMBER(mUUID, String, GpuProgram);
 
 
+		CM_SETGET_MEMBER(mType, GpuProgramType, GpuProgram);
+		CM_SETGET_MEMBER(mNeedsAdjacencyInfo, bool, GpuProgram);
+		CM_SETGET_MEMBER(mEntryPoint, String, GpuProgram);
+		CM_SETGET_MEMBER(mProfile, GpuProgramProfile, GpuProgram);
+		CM_SETGET_MEMBER(mSource, String, GpuProgram);
+		CM_SETGET_MEMBER(mSyntaxCode, String, GpuProgram);
+
 	public:
 	public:
 		GpuProgramRTTI()
 		GpuProgramRTTI()
 		{
 		{
 			CM_ADD_PLAINFIELD(mSize, 0, GpuProgramRTTI)
 			CM_ADD_PLAINFIELD(mSize, 0, GpuProgramRTTI)
 			CM_ADD_PLAINFIELD(mUUID, 1, GpuProgramRTTI)
 			CM_ADD_PLAINFIELD(mUUID, 1, GpuProgramRTTI)
+
+			CM_ADD_PLAINFIELD(mType, 2, GpuProgramRTTI)
+			CM_ADD_PLAINFIELD(mNeedsAdjacencyInfo, 3, GpuProgramRTTI)
+			CM_ADD_PLAINFIELD(mEntryPoint, 4, GpuProgramRTTI)
+			CM_ADD_PLAINFIELD(mProfile, 5, GpuProgramRTTI)
+			CM_ADD_PLAINFIELD(mSource, 6, GpuProgramRTTI)
+			CM_ADD_PLAINFIELD(mSyntaxCode, 7, GpuProgramRTTI)
 		}
 		}
 
 
 		virtual const String& getRTTIName()
 		virtual const String& getRTTIName()