00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _TEST_RENDER_H_
00021 #define _TEST_RENDER_H_
00022
00026
00027 #include "IRenderCallable.h"
00028 #include "TestScene.h"
00029 #include <windows.h>
00030 #include "OpenglDriver.h"
00031
00032 #include <boost\shared_ptr.hpp>
00033 #include "OpenglProgram.h"
00034
00035 namespace TaskBasedFlockSim
00036 {
00037
00038 class TestRender :
00039 public TestFrameWork::IRenderCallable
00040 {
00041 public:
00042 TestRender(TestFrameWork::ScenePtr scene, HDC canvasContext, size_t width, size_t height);
00043
00044 ~TestRender(void);
00045
00046 void Initialize(void);
00047
00048 void Setup(void);
00049
00050 void Run(float elapsedTime);
00051
00052 private:
00053 TestScenePtr m_scene;
00054
00055 HDC m_canvasContext;
00056 size_t m_width;
00057 size_t m_height;
00058
00059 TestFrameWork::OpenglDriverPtr m_driver;
00060
00061 size_t m_teapotVertexBuffer;
00062 size_t m_teapotIndexBuffer;
00063
00064 TestFrameWork::OpenglProgramWeakPtr m_program;
00065
00066 TestFrameWork::OpenglTextureWeakPtr m_flockDataTexture;
00067
00068 size_t m_maximumTexture2DSize;
00069
00070 TestFrameWork::TextureData m_textureData;
00071 size_t m_textureDataSize;
00072
00073 void CreateTeapotBuffers(void);
00074
00075 void CreateProgram(void);
00076
00077 void SetProgramParameters(void);
00078
00079 void CreateFlockTextureData(void);
00080
00081 void ModifyFlockTextureData(void);
00082
00083 void SetMaxFlockSize(void);
00084
00085 void RenderMetrics(float renderElapsedTime, float logicElapsedTime);
00086 };
00087
00088 }
00089
00090 #endif