Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasimir666 <casimir666@users.sourceforge.net>2007-04-22 13:38:00 +0400
committerCasimir666 <casimir666@users.sourceforge.net>2007-04-22 13:38:00 +0400
commit7f9bfab0e7f53f4b7b96595e1d74c43f44411c7e (patch)
treef0afc96992b91f22468c35e22afe16c59882c34f /src/apps/mplayerc/libpng.h
parentf4c20705c4bfc8d0f3cfa89fa92bbe49f59b2a1f (diff)
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@59 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/apps/mplayerc/libpng.h')
-rw-r--r--src/apps/mplayerc/libpng.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/apps/mplayerc/libpng.h b/src/apps/mplayerc/libpng.h
new file mode 100644
index 000000000..75a09124e
--- /dev/null
+++ b/src/apps/mplayerc/libpng.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2003-2006 Gabest
+ * http://www.gabest.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#pragma once
+
+struct png_t {unsigned char* data; unsigned int size, pos;};
+
+#ifdef __cplusplus
+
+extern "C" unsigned char* DecompressPNG(struct png_t* png, int* w, int* h);
+
+#include <atlimage.h>
+
+class CPngImage : public CImage
+{
+public:
+ bool LoadFromResource(UINT id)
+ {
+ bool ret = false;
+
+ CStringA str;
+ if(LoadResource(id, str, _T("FILE")))
+ {
+ struct png_t png;
+ png.data = (unsigned char*)(LPCSTR)str;
+ png.size = str.GetLength();
+ int w, h;
+ if(BYTE* p = DecompressPNG(&png, &w, &h))
+ {
+ if(Create(w, -h, 32))
+ {
+ for(int y = 0; y < h; y++)
+ memcpy(GetPixelAddress(0, y), &p[w*4*y], w*4);
+ ret = true;
+ }
+
+ free(p);
+ }
+ }
+
+ return ret;
+ }
+};
+#endif