]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gifdecod.h
a more easy to use version of wxGetHomeDir() added
[wxWidgets.git] / include / wx / gifdecod.h
index 30fa11cfedbe7c4168ab2a29b96c8f0b10be0176..3d4fb9bc0eb489c5160c9016cde6395f2e585994 100644 (file)
@@ -2,9 +2,9 @@
 // Name:        gifdecod.h
 // Purpose:     wxGIFDecoder, GIF reader for wxImage and wxAnimation
 // Author:      Guillermo Rodriguez Garcia <guille@iies.es>
-// Version:     3.0
-// Last rev:    1999/08/10
-// Copyright:   (c) Guillermo Rodriguez Garcia
+// Version:     3.02
+// CVS-ID:      $Id$
+// Copyright:   (c) 1999 Guillermo Rodriguez Garcia
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -17,7 +17,8 @@
 
 #include "wx/setup.h"
 
-#if wxUSE_STREAMS
+#if wxUSE_STREAMS && wxUSE_GIF
+
 #include "wx/stream.h"
 #include "wx/image.h"
 
@@ -29,7 +30,7 @@ typedef struct _IMAGEN
     unsigned int left;              /* x coord (in logical screen) */
     unsigned int top;               /* y coord (in logical screen) */
     int transparent;                /* transparent color (-1 = none) */
-    int disposal;                   /* disposal method */
+    int disposal;                   /* disposal method (-1 = unspecified) */
     long delay;                     /* delay in ms (-1 = unused) */
     unsigned char *p;               /* bitmap */
     unsigned char *pal;             /* palette */
@@ -46,12 +47,12 @@ typedef struct _IMAGEN
 
 /* error codes */
 #define E_OK            0           /* everything was OK */
-#define E_ARCHIVO       -1          /* error opening file */
-#define E_FORMATO       -2          /* error in gif header */
-#define E_MEMORIA       -3          /* error allocating memory */
+#define E_FORMATO       1           /* error in gif header */
+#define E_MEMORIA       2           /* error allocating memory */
 
+#define MAX_BLOCK_SIZE  256         /* max. block size */
 
-class wxGIFDecoder
+class WXDLLEXPORT wxGIFDecoder
 {
 private:
     /* logical screen */
@@ -71,6 +72,8 @@ private:
     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[MAX_BLOCK_SIZE];     /* buffer for reading */
+    unsigned char *m_bufp;          /* pointer to next byte in buffer */
 
     wxInputStream *m_f;             /* input file */
 
@@ -82,6 +85,7 @@ public:
     // constructor, destructor, etc.
     wxGIFDecoder(wxInputStream *s, bool anim = FALSE);
     ~wxGIFDecoder();
+    bool CanRead();
     int ReadGIF();
     void Destroy();
 
@@ -116,6 +120,6 @@ public:
 };
 
 
-#endif  // wxUSE_STREAM
+#endif  // wxUSE_STREAM && wxUSE_GIF
 #endif  // _WX_GIFDECOD_H