00001 //------------------------------------------------------------------------- 00002 // 00003 // File: ImportableImageI.h 00004 // Desc: Importable image 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_IMPORTABLEIMAGEI_H__ 00015 #define __DEMOPAJA_IMPORTABLEIMAGEI_H__ 00016 00017 00018 #include "PajaTypes.h" 00019 #include "EditableI.h" 00020 #include "UndoC.h" 00021 #include "LayerC.h" 00022 #include "ImportableI.h" 00023 #include "DeviceInterfaceI.h" 00024 00025 00026 namespace PluginClass { 00028 00030 const PluginClass::SuperClassIdC SUPERCLASS_IMAGE = PluginClass::SuperClassIdC( 0x2000001 ); 00031 }; 00032 00033 namespace Import { 00034 00036 enum ImagePropertiesE { 00037 IMAGE_RGB = 1, 00038 IMAGE_ALPHA = 2, 00039 IMAGE_GREY = 4, 00040 IMAGE_WRAP = 8, 00041 IMAGE_CLAMP = 16, 00042 IMAGE_LINEAR = 32, 00043 IMAGE_NEAREST = 64, 00044 }; 00045 00047 00057 class ImportableImageI : public ImportableI 00058 { 00059 public: 00061 virtual PluginClass::SuperClassIdC get_super_class_id(); 00062 00064 virtual PajaTypes::float32 get_width() = 0; 00066 virtual PajaTypes::float32 get_height() = 0; 00068 virtual PajaTypes::int32 get_data_width() = 0; 00070 virtual PajaTypes::int32 get_data_height() = 0; 00072 virtual PajaTypes::int32 get_data_pitch() = 0; 00074 virtual PajaTypes::int32 get_data_bpp() = 0; 00076 virtual PajaTypes::uint8* get_data() = 0; 00078 virtual void bind_texture( PajaSystem::DeviceInterfaceI* pInterface, PajaTypes::uint32 ui32Properties ) = 0; 00079 00080 protected: 00082 ImportableImageI(); 00084 ImportableImageI( Edit::EditableI* pOriginal ); 00086 virtual ~ImportableImageI(); 00087 00088 }; 00089 00090 }; // namespace 00091 00092 #endif