//
// Copy class for PTC 2.0 C++ API (HERMES INTERFACE PACKAGE)
// Copyright (c) 1998 Glenn Fiedler (ptc@gaffer.org) and Christian Nentwich (brn@eleet.mcb.at)
// This source code is licensed under the GNU LGPL
//

#ifndef __PTC_COPY_H
#define __PTC_COPY_H

// include files
#include "Types.h"
#include "Index.h"
#include "Hermes.h"




class Copy 
{ 
   public:
  
       // setup
       Copy();
       ~Copy();

       // set source and destination formats
       void request(const Format &source,const Format &destination);

       // set source and destination palettes
       void palette(const Palette &source,const Palette &destination);

       // copy pixels
       void copy(const void *source_pixels,int source_x,int source_y,int source_width,int source_height,int source_pitch,
                 void *destination_pixels,int destination_x,int destination_y,int destination_width,int destination_height,int destination_pitch);

       // copy option string
       bool option(const char option[]);

    private:

       // disallow copy construction
       Copy(const Copy &copy);
       
       // disallow assignment
       Copy& operator =(const Copy &copy);

       // hermes handle
       HermesHandle m_handle;

       // internal flags
       long m_flags;
};




#endif
