Surface problem

Hi every1 !
Sorry for my bad english...
Let's speak in С++ lang
i have a problem with creation of a new surface:
1:
Surface * pTexture1 = LoadImage("..."); //first sprite
pTexture1->SetColorMask( Color(0,0,0) ); //setup alpha
//and second sprite:
Surface * pTexture2 = new Surface(100,100);
Rasterizer pRast = Rasterizer(pTexture2);
pRast.Clear(Color(0,0,0));
pRast.Blit( 0, 0, pTexture1 ); // try to copy first image into second
// and now, pTexture2 has no "m_colorMask" from first image... my error?
So... how i can transfer part of image into another inage WITH ALPHA-DATA ?
2: Let's see at Surface.h and Surface.cpp in the PocketFrog (i have v.0.8.1)
// class description:
// Surface.h
class Surface : PHAL::NonCopyable
{
...
private:
...
unsigned m_colorMask; // Source color key
}
//and...
// default constructor of this class:
// Surface.cpp
Surface::Surface( unsigned width, unsigned height )
: m_buffer( PHAL::Surface::Create( width, height ) ),
m_colorMask( -1 ),// is it right? "-1"
m_original( 0 ),
m_hdc( 0 )
{
}
3:
In some part of my engine, i create MANY sprites (something about 3~6 Mb, yeah, i'm crazy, and my Fujitsu (PDA) thinks same...
). I have a free memory, but Surface * pSurface = new Surface(512,512) returns pointer with m_buffer=NULL ! Also, sometimes, i can't create sprite with GREAT SIZE (1000x1600). There's a PHAL - limitation? Or it's my errors? I can't use many small sprites instead one big (programm limitation...). Help me plz!
How many mistakes in my english i have? Is it very bad?
Sorry for my bad english...


i have a problem with creation of a new surface:
1:
Surface * pTexture1 = LoadImage("..."); //first sprite
pTexture1->SetColorMask( Color(0,0,0) ); //setup alpha
//and second sprite:
Surface * pTexture2 = new Surface(100,100);
Rasterizer pRast = Rasterizer(pTexture2);
pRast.Clear(Color(0,0,0));
pRast.Blit( 0, 0, pTexture1 ); // try to copy first image into second
// and now, pTexture2 has no "m_colorMask" from first image... my error?
So... how i can transfer part of image into another inage WITH ALPHA-DATA ?
2: Let's see at Surface.h and Surface.cpp in the PocketFrog (i have v.0.8.1)
// class description:
// Surface.h
class Surface : PHAL::NonCopyable
{
...
private:
...
unsigned m_colorMask; // Source color key
}
//and...
// default constructor of this class:
// Surface.cpp
Surface::Surface( unsigned width, unsigned height )
: m_buffer( PHAL::Surface::Create( width, height ) ),
m_colorMask( -1 ),// is it right? "-1"
m_original( 0 ),
m_hdc( 0 )
{
}
3:
In some part of my engine, i create MANY sprites (something about 3~6 Mb, yeah, i'm crazy, and my Fujitsu (PDA) thinks same...

How many mistakes in my english i have? Is it very bad?
