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( 0, 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__