| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/gifdecod.h
 
- // Purpose:     wxGIFDecoder, GIF reader for wxImage and wxAnimation
 
- // Author:      Guillermo Rodriguez Garcia <guille@iies.es>
 
- // Version:     3.02
 
- // Copyright:   (c) 1999 Guillermo Rodriguez Garcia
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_GIFDECOD_H_
 
- #define _WX_GIFDECOD_H_
 
- #include "wx/defs.h"
 
- #if wxUSE_STREAMS && wxUSE_GIF
 
- #include "wx/stream.h"
 
- #include "wx/image.h"
 
- #include "wx/animdecod.h"
 
- #include "wx/dynarray.h"
 
- // internal utility used to store a frame in 8bit-per-pixel format
 
- class GIFImage;
 
- // --------------------------------------------------------------------------
 
- // Constants
 
- // --------------------------------------------------------------------------
 
- // Error codes:
 
- //  Note that the error code wxGIF_TRUNCATED means that the image itself
 
- //  is most probably OK, but the decoder didn't reach the end of the data
 
- //  stream; this means that if it was not reading directly from file,
 
- //  the stream will not be correctly positioned.
 
- //
 
- enum wxGIFErrorCode
 
- {
 
-     wxGIF_OK = 0,                   // everything was OK
 
-     wxGIF_INVFORMAT,                // error in GIF header
 
-     wxGIF_MEMERR,                   // error allocating memory
 
-     wxGIF_TRUNCATED                 // file appears to be truncated
 
- };
 
- // --------------------------------------------------------------------------
 
- // wxGIFDecoder class
 
- // --------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxGIFDecoder : public wxAnimationDecoder
 
- {
 
- public:
 
-     // constructor, destructor, etc.
 
-     wxGIFDecoder();
 
-     ~wxGIFDecoder();
 
-     // get data of current frame
 
-     unsigned char* GetData(unsigned int frame) const;
 
-     unsigned char* GetPalette(unsigned int frame) const;
 
-     unsigned int GetNcolours(unsigned int frame) const;
 
-     int GetTransparentColourIndex(unsigned int frame) const;
 
-     wxColour GetTransparentColour(unsigned int frame) const;
 
-     virtual wxSize GetFrameSize(unsigned int frame) const;
 
-     virtual wxPoint GetFramePosition(unsigned int frame) const;
 
-     virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const;
 
-     virtual long GetDelay(unsigned int frame) const;
 
-     // GIFs can contain both static images and animations
 
-     bool IsAnimation() const
 
-         { return m_nFrames > 1; }
 
-     // load function which returns more info than just Load():
 
-     wxGIFErrorCode LoadGIF( wxInputStream& stream );
 
-     // free all internal frames
 
-     void Destroy();
 
-     // implementation of wxAnimationDecoder's pure virtuals
 
-     virtual bool Load( wxInputStream& stream )
 
-         { return LoadGIF(stream) == wxGIF_OK; }
 
-     bool ConvertToImage(unsigned int frame, wxImage *image) const;
 
-     wxAnimationDecoder *Clone() const
 
-         { return new wxGIFDecoder; }
 
-     wxAnimationType GetType() const
 
-         { return wxANIMATION_TYPE_GIF; }
 
- private:
 
-     // wxAnimationDecoder pure virtual
 
-     virtual bool DoCanRead( wxInputStream& stream ) const;
 
-         // modifies current stream position (see wxAnimationDecoder::CanRead)
 
-     int getcode(wxInputStream& stream, int bits, int abfin);
 
-     wxGIFErrorCode dgif(wxInputStream& stream,
 
-                         GIFImage *img, int interl, int bits);
 
-     // array of all frames
 
-     wxArrayPtrVoid m_frames;
 
-     // decoder state vars
 
-     int           m_restbits;       // remaining valid bits
 
-     unsigned int  m_restbyte;       // remaining bytes in this block
 
-     unsigned int  m_lastbyte;       // last byte read
 
-     unsigned char m_buffer[256];    // buffer for reading
 
-     unsigned char *m_bufp;          // pointer to next byte in buffer
 
-     wxDECLARE_NO_COPY_CLASS(wxGIFDecoder);
 
- };
 
- #endif // wxUSE_STREAMS && wxUSE_GIF
 
- #endif // _WX_GIFDECOD_H_
 
 
  |