• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/render/header/IRender.h

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 };

Generated on Fri Jun 18 2010 17:48:39 for Cannonball by  doxygen 1.7.0