00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __DEMOPAJA_GRAPHICSBUFFERI_H__
00015 #define __DEMOPAJA_GRAPHICSBUFFERI_H__
00016
00017
00018 namespace PajaSystem {
00019 class GraphicsBufferI;
00020 };
00021
00022 #include "PajaTypes.h"
00023 #include "DeviceInterfaceI.h"
00024 #include "DataBlockI.h"
00025 #include "ClassIdC.h"
00026 #include "GraphicsDeviceI.h"
00027
00028 namespace PajaSystem {
00029
00030
00032 const PluginClass::SuperClassIdC SUPERCLASS_GRAPHICSBUFFER = PluginClass::SuperClassIdC( 0x3000004 );
00033
00035 enum GBufferReadE {
00036 GRAPHICSBUFFER_GET_RGB = 1,
00037 GRAPHICSBUFFER_GET_RGBA,
00038 GRAPHICSBUFFER_GET_ALPHA,
00039 GRAPHICSBUFFER_GET_DEPTH,
00040 GRAPHICSBUFFER_GET_STENCIL,
00041 };
00042
00043 enum GBufferInitE {
00044 GRAPHICSBUFFER_INIT_OFFSCREEN,
00045 GRAPHICSBUFFER_INIT_TEXTURE,
00046 };
00047
00049
00051 class GraphicsBufferI : public DeviceInterfaceI
00052 {
00053 public:
00055 virtual Edit::DataBlockI* create() = 0;
00057 virtual void set_graphicsdevice( GraphicsDeviceI* pDevice ) = 0;
00058
00060 virtual PluginClass::SuperClassIdC get_super_class_id() const;
00061
00062 virtual PajaTypes::uint32 save( FileIO::SaveC* pSave );
00063 virtual PajaTypes::uint32 load( FileIO::LoadC* pLoad );
00064
00066
00077 virtual bool init( PajaTypes::uint32 ui32Flags,
00078 PajaTypes::uint32 ui32Width = 0,
00079 PajaTypes::uint32 ui32Height = 0 ) = 0;
00081 virtual void flush() = 0;
00082
00084
00086 virtual void bind_texture( PajaSystem::DeviceInterfaceI* pInterface, PajaTypes::uint32 ui32Properties ) = 0;
00087
00089
00115 virtual void read_pixels( PajaTypes::uint32 ui32Flags, void* pData ) = 0;
00116
00117 protected:
00118 GraphicsBufferI();
00119 virtual ~GraphicsBufferI();
00120
00121 };
00122
00123 };
00124
00125 #endif // __DEMOPAJA_GRAPHICSBUFFERI_H__