Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

GraphicsBufferI.h

00001 //-------------------------------------------------------------------------
00002 //
00003 // File:        GraphicsBufferI.h
00004 // Desc:        Off-screen graphics rendering interface.
00005 // Author:      memon <memon@inside.org>
00006 //
00007 //-------------------------------------------------------------------------
00008 //  Copyright (c) 2000-2002 Moppi Productions. All Rights Reserved.
00009 //  This file is part of Moppi Demopaja SDK. For conditions of 
00010 //  distribution and use, see the accompanying license.txt file.
00011 //  http://moppi.inside.org/demopaja/
00012 //-------------------------------------------------------------------------
00013 
00014 #ifndef __DEMOPAJA_GRAPHICSBUFFERI_H__
00015 #define __DEMOPAJA_GRAPHICSBUFFERI_H__
00016 
00017 // Forward declaration
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 };  // namespace
00124 
00125 #endif // __DEMOPAJA_GRAPHICSBUFFERI_H__

Moppi Demopaja SDK Documentation -- Copyright © 2000-2002 Moppi Productions