Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

IImage.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2008 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_IMAGE_H_INCLUDED__
00006 #define __I_IMAGE_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 #include "position2d.h"
00010 #include "rect.h"
00011 #include "SColor.h"
00012 
00013 namespace irr
00014 {
00015 namespace video
00016 {
00017 
00019 
00020 enum ECOLOR_FORMAT
00021 {
00023 
00026         ECF_A1R5G5B5 = 0,
00027 
00029         ECF_R5G6B5,
00030 
00032         ECF_R8G8B8,
00033 
00035         ECF_A8R8G8B8
00036 };
00037 
00038 
00040 
00043 class IImage : public virtual IReferenceCounted
00044 {
00045 public:
00046 
00048 
00053         virtual void* lock() = 0;
00054 
00056 
00058         virtual void unlock() = 0;
00059 
00061         virtual const core::dimension2d<s32>& getDimension() const = 0;
00062 
00064         virtual u32 getBitsPerPixel() const = 0;
00065 
00067         virtual u32 getBytesPerPixel() const = 0;
00068 
00070         virtual u32 getImageDataSizeInBytes() const = 0;
00071 
00073         virtual u32 getImageDataSizeInPixels() const = 0;
00074 
00076         virtual SColor getPixel(u32 x, u32 y) const = 0;
00077 
00079         virtual void setPixel(u32 x, u32 y, const SColor &color ) = 0;
00080 
00082         virtual ECOLOR_FORMAT getColorFormat() const = 0;
00083 
00085         virtual u32 getRedMask() const = 0;
00086 
00088         virtual u32 getGreenMask() const = 0;
00089 
00091         virtual u32 getBlueMask() const = 0;
00092 
00094         virtual u32 getAlphaMask() const = 0;
00095 
00097         virtual u32 getPitch() const =0;
00098 
00100         virtual void copyToScaling(void* target, s32 width, s32 height, ECOLOR_FORMAT format=ECF_A8R8G8B8, u32 pitch=0) =0;
00101 
00103         virtual void copyToScaling(IImage* target) =0;
00104 
00106         virtual void copyTo(IImage* target, const core::position2d<s32>& pos=core::position2d<s32>(0,0)) =0;
00107 
00109         virtual void copyTo(IImage* target, const core::position2d<s32>& pos, const core::rect<s32>& sourceRect, const core::rect<s32>* clipRect=0) =0;
00110 
00112         virtual void copyToWithAlpha(IImage* target, const core::position2d<s32>& pos,
00113                         const core::rect<s32>& sourceRect, const SColor &color,
00114                         const core::rect<s32>* clipRect = 0) =0;
00115 
00117         virtual void fill(const SColor &color) =0;
00118 
00119 };
00120 
00121 } // end namespace video
00122 } // end namespace irr
00123 
00124 #endif
00125 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Sep 21 08:57:41 2008 by Doxygen (1.4.2)