aboutsummaryrefslogtreecommitdiff
path: root/archive/hge/CxImage/ximapsd.h
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
commit3bd383baf6a17e734329e1fc677c7e86283db772 (patch)
tree69a9148087577f797624ceb9c71323a2563d6bb4 /archive/hge/CxImage/ximapsd.h
parent543e4f570be9b279ba558ca61cc02cda251af384 (diff)
downloadbullet-lab-remix-3bd383baf6a17e734329e1fc677c7e86283db772.tar.xz
Added support for relative line numbers.
Added instructions for, brk and cont. (They are still untested...) Parser code cleanup. Removed garbage output to stderr. Reorganize the repository structure. Updated BLR2 code move it into archive. Added BLR1 files.
Diffstat (limited to 'archive/hge/CxImage/ximapsd.h')
-rw-r--r--archive/hge/CxImage/ximapsd.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/archive/hge/CxImage/ximapsd.h b/archive/hge/CxImage/ximapsd.h
new file mode 100644
index 0000000..92be8f1
--- /dev/null
+++ b/archive/hge/CxImage/ximapsd.h
@@ -0,0 +1,110 @@
+/*
+ * File: ximapsd.h
+ * Purpose: PSD Image Class Loader and Writer
+ */
+/* ==========================================================
+ * CxImagePSD (c) Dec/2010
+ * For conditions of distribution and use, see copyright notice in ximage.h
+ *
+ * libpsd (c) 2004-2007 Graphest Software
+ *
+ * ==========================================================
+ */
+#if !defined(__ximaPSD_h)
+#define __ximaPSD_h
+
+#include "ximage.h"
+
+#if CXIMAGE_SUPPORT_PSD
+
+#define CXIMAGE_USE_LIBPSD 1
+
+#if CXIMAGE_USE_LIBPSD
+ extern "C" {
+ #include "../libpsd/libpsd.h"
+ }
+#endif
+
+class CxImagePSD: public CxImage
+{
+
+public:
+ CxImagePSD(): CxImage(CXIMAGE_FORMAT_PSD) {}
+
+// bool Load(const char * imageFileName){ return CxImage::Load(imageFileName,CXIMAGE_FORMAT_PSD);}
+// bool Save(const char * imageFileName){ return CxImage::Save(imageFileName,CXIMAGE_FORMAT_PSD);}
+ bool Decode(CxFile * hFile);
+ bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
+
+//#if CXIMAGE_SUPPORT_EXIF
+// bool GetExifThumbnail(const TCHAR *filename, const TCHAR *outname, int32_t type);
+//#endif //CXIMAGE_SUPPORT_EXIF
+
+#if CXIMAGE_SUPPORT_ENCODE
+ bool Encode(CxFile * hFile);
+ bool Encode(FILE *hFile) { CxIOFile file(hFile); return Encode(&file); }
+#endif // CXIMAGE_SUPPORT_ENCODE
+
+#if CXIMAGE_USE_LIBPSD
+protected:
+ class CxFilePsd
+ {
+ public:
+ CxFilePsd(CxFile* pFile,psd_context *context)
+ {
+ context->file = pFile;
+
+ psd_CxFile_ops.size_ = psd_file_size;
+ psd_CxFile_ops.seek_ = psd_file_seek;
+ psd_CxFile_ops.read_ = psd_file_read;
+// psd_CxFile_ops.write_ = psd_file_write;
+// psd_CxFile_ops.close_ = psd_file_close;
+// psd_CxFile_ops.gets_ = psd_file_gets;
+// psd_CxFile_ops.eof_ = psd_file_eof;
+// psd_CxFile_ops.tell_ = psd_file_tell;
+// psd_CxFile_ops.getc_ = psd_file_getc;
+// psd_CxFile_ops.scanf_ = psd_file_scanf;
+
+ context->ops_ = &psd_CxFile_ops;
+
+ }
+
+ static int32_t psd_file_size(psd_file_obj *obj)
+ { return ((CxFile*)obj)->Size(); }
+
+ static int32_t psd_file_seek(psd_file_obj *obj, int32_t offset, int32_t origin)
+ { return ((CxFile*)obj)->Seek(offset,origin); }
+
+ static int32_t psd_file_read(psd_file_obj *obj, void *buf, int32_t size, int32_t cnt)
+ { return ((CxFile*)obj)->Read(buf,size,cnt); }
+
+// static int32_t psd_file_write(psd_file_obj *obj, void *buf, int32_t size, int32_t cnt)
+// { return ((CxFile*)obj)->Write(buf,size,cnt); }
+
+// static int32_t psd_file_close(psd_file_obj *obj)
+// { return 1; /*((CxFile*)obj)->Close();*/ }
+
+// static char* psd_file_gets(psd_file_obj *obj, char *string, int32_t n)
+// { return ((CxFile*)obj)->GetS(string,n); }
+
+// static int32_t psd_file_eof(psd_file_obj *obj)
+// { return ((CxFile*)obj)->Eof(); }
+
+// static long psd_file_tell(psd_file_obj *obj)
+// { return ((CxFile*)obj)->Tell(); }
+
+// static int32_t psd_file_getc(psd_file_obj *obj)
+// { return ((CxFile*)obj)->GetC(); }
+
+// static int32_t psd_file_scanf(psd_file_obj *obj,const char *format, void* output)
+// { return ((CxFile*)obj)->Scanf(format, output); }
+
+ private:
+ psd_file_ops psd_CxFile_ops;
+ };
+#endif //CXIMAGE_USE_LIBPSD
+};
+
+#endif
+
+#endif