Go to the documentation of this file.00001 #pragma once
00002
00003 #include "IGeometry.h"
00004 #include "ITexture.h"
00005 #include "ILight.h"
00006 #include "IControl.h"
00007 #include <physic.h>
00008
00010 struct RenderDesc
00011 {
00012 int maxVertices;
00013 int maxIndices;
00014 int maxTextures;
00015 int colorWidth;
00016 int colorHeight;
00017 int detailWidth;
00018 int detailHeight;
00019 };
00020
00021 typedef struct Instance
00022 {
00023 bool visible;
00024 } *pInstance;
00025
00029 class IRender
00030 {
00031 public:
00033 virtual ~IRender(void) {}
00034
00039 virtual bool init(HWND hwnd, int width, int height, RenderDesc& desc) = 0;
00040
00044 virtual void uninit(void) = 0;
00045
00046 virtual void keepCurrentGeometry(void) = 0;
00047 virtual void resetCurrentGeometry(void) = 0;
00048
00050 virtual pIGeometry createGeometry(MeshData& meshData) = 0;
00052 virtual pITexture createTexture(TextureData& textureData) = 0;
00054 virtual void createSkyBox(TextureData& top, TextureData& bottom, TextureData& left, TextureData& right, TextureData& front, TextureData& back) = 0;
00056 virtual pIControl createControl(pIGeometry geometry, pITexture texture) = 0;
00058 virtual pIControl createButton(pIGeometry geometry, pITexture texture, void callback(pIControl)) = 0;
00059
00063 virtual void freeTexture(pITexture&) = 0;
00067 virtual void freeGeometry(pIGeometry&) = 0;
00068
00070 virtual pInstance createDrawCall(pITexture texture, pIGeometry geometry, pIBody body) = 0;
00072 virtual pInstance createColorDrawCall(pIGeometry geometry, pIBody body) = 0;
00074 virtual void createGuiDrawCall(pIControl control) = 0;
00076 virtual void clear(void) = 0;
00078 virtual void update(Camera& camera) = 0;
00079
00081 virtual void updateScreenSize(int width, int height) = 0;
00082
00084 virtual void toggleGui() = 0;
00086 virtual bool guiIsShown() = 0;
00088 virtual void setLight(int index, LightData& lightData) = 0;
00089
00091 virtual void setEnableBlending(bool b) = 0;
00092 virtual bool getEnableBlending(void) = 0;
00093 virtual void setEnableCulling(bool b) = 0;
00094 virtual bool getEnableCulling(void) = 0;
00095 virtual void setEnableWireframe(bool b) = 0;
00096 virtual bool getEnableWireframe(void) = 0;
00097 virtual void setEnableMipmap(bool b) = 0;
00098 virtual bool getEnableMipmap() = 0;
00099 virtual void setEnableLinearTexture(bool b) = 0;
00100 virtual bool getEnableLinearTexture() = 0;
00101 protected:
00102 };