Initial revision
[blender.git] / source / blender / bpython / intern / BPY_image.c
1 /**
2  * Image Datablocks
3  * $Id$
4  *
5  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version. The Blender
11  * Foundation also sells licenses for use in proprietary software under
12  * the Blender License.  See http://www.blender.org/BL/ for information
13  * about this.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software Foundation,
22  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  *
24  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
25  * All rights reserved.
26  *
27  * The Original Code is: all of this file.
28  *
29  * Contributor(s): none yet.
30  *
31  * ***** END GPL/BL DUAL LICENSE BLOCK *****
32  */
33
34 #include "Python.h"
35 #include "opy_datablock.h"
36
37 #include "DNA_image_types.h"
38 #include "BKE_image.h"
39
40 #include "BPY_macros.h"
41 #include "b_interface.h"
42
43 PyObject *INITMODULE(Image)(void);
44
45 /* Image_Get */
46 DATABLOCK_GET(Imagemodule, image, getImageList())
47
48 char Imagemodule_load_doc[] = "(filename) - return image from file 'filename' as Image object";
49
50 PyObject *Imagemodule_load(PyObject *self, PyObject *args)
51 {
52         char *name;
53         Image *im;
54
55         if (!PyArg_ParseTuple(args, "s", &name)) {
56                 PyErr_SetString(PyExc_TypeError, "filename expected");
57                 return 0;
58         }
59                 
60         im = add_image(name);
61         if (im) {
62                 return DataBlock_fromData(im);
63         } else {
64                 PyErr_SetString(PyExc_IOError, "couldn't load image");
65                 return 0;
66         }       
67 }
68
69 DataBlockProperty Image_Properties[]= {
70         {"xrep", "xrep", DBP_TYPE_SHO, 0, 1.0, 16.0},
71         {"yrep", "yrep", DBP_TYPE_SHO, 0, 1.0, 16.0},
72 //      {"PackedFile", "*packedfile", DBP_TYPE_FUN, 0, 0.0, 0.0, {0}, {0}, 0, 0, get_DataBlock_func},
73         {NULL}
74 };
75
76 #undef MethodDef
77 #define MethodDef(func) _MethodDef(func, Imagemodule)
78
79 struct PyMethodDef Imagemodule_methods[] = {
80         MethodDef(get),
81         MethodDef(load),
82         // for compatibility:
83         {"Load", Imagemodule_load, METH_VARARGS, Imagemodule_load_doc},
84         {NULL, NULL}
85 };
86
87
88 /*
89 void Image_getattr(void *vdata, char *name)
90 {
91 }
92 */
93
94
95 PyObject *INITMODULE(Image)(void) 
96 {
97         PyObject *mod= Py_InitModule(SUBMODULE(Image), Imagemodule_methods);
98         return mod;
99 }
100
101
102
103