Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_RENDERSYSTEM_DUMMY_H__
00009 #define __SP_RENDERSYSTEM_DUMMY_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013 #include "RenderSystem/spRenderSystem.hpp"
00014
00015 #ifdef SP_PLATFORM_WINDOWS
00016 # include <windows.h>
00017 #endif
00018 #include <vector>
00019
00020
00021 namespace sp
00022 {
00023 namespace video
00024 {
00025
00026
00031 class SP_EXPORT DummyRenderSystem : public RenderSystem
00032 {
00033
00034 public:
00035
00036 DummyRenderSystem();
00037 ~DummyRenderSystem();
00038
00039
00040
00041 void setupConfiguration();
00042
00043
00044
00045 io::stringc getRenderer() const;
00046 io::stringc getVersion() const;
00047 io::stringc getVendor() const;
00048 io::stringc getShaderVersion() const;
00049
00050 bool queryVideoSupport(const EVideoFeatureQueries Query) const;
00051
00052 s32 getMultitexCount() const;
00053 s32 getMaxAnisotropicFilter() const;
00054 s32 getMaxLightCount() const;
00055
00056
00057
00058 void clearBuffers(const s32 ClearFlags = BUFFER_COLOR | BUFFER_DEPTH);
00059 void flipBuffers();
00060
00061
00062
00063 bool setupMaterialStates(const MaterialStates* Material, bool Force = false);
00064
00065 void createVertexBuffer(void* &BufferID);
00066 void createIndexBuffer(void* &BufferID);
00067
00068 void deleteVertexBuffer(void* &BufferID);
00069 void deleteIndexBuffer(void* &BufferID);
00070
00071 void updateVertexBuffer(
00072 void* BufferID, const dim::UniversalBuffer &BufferData, const VertexFormat* Format, const EHWBufferUsage Usage
00073 );
00074 void updateIndexBuffer(
00075 void* BufferID, const dim::UniversalBuffer &BufferData, const IndexFormat* Format, const EHWBufferUsage Usage
00076 );
00077
00078 void updateVertexBufferElement(void* BufferID, const dim::UniversalBuffer &BufferData, u32 Index);
00079 void updateIndexBufferElement(void* BufferID, const dim::UniversalBuffer &BufferData, u32 Index);
00080
00081 void drawMeshBuffer(const MeshBuffer* MeshBuffer);
00082
00083 void setRenderState(const video::ERenderStates Type, s32 State);
00084 s32 getRenderState(const video::ERenderStates Type) const;
00085
00086
00087
00088 Texture* createTexture(const STextureCreationFlags &CreationFlags);
00089
00090
00091
00092 void updateModelviewMatrix();
00093
00094 private:
00095
00096
00097
00098 void clear();
00099
00100
00101
00102 s32 RenderStates_[16];
00103
00104 };
00105
00106
00107 }
00108
00109 }
00110
00111
00112 #endif
00113
00114
00115
00116