f19f8da607dcdc8f0ac4d88955fe7397a810fe3d
[blender.git] / source / gameengine / VideoTexture / Texture.h
1 /* $Id$
2 -----------------------------------------------------------------------------
3 This source file is part of VideoTexture library
4
5 Copyright (c) 2006 The Zdeno Ash Miklas
6
7 This program is free software; you can redistribute it and/or modify it under
8 the terms of the GNU Lesser General Public License as published by the Free Software
9 Foundation; either version 2 of the License, or (at your option) any later
10 version.
11
12 This program is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License along with
17 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
18 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
19 http://www.gnu.org/copyleft/lesser.txt.
20 -----------------------------------------------------------------------------
21 */
22
23 #if !defined TEXTURE_H
24 #define TEXTURE_H
25
26 #include <Python.h>
27 #include <structmember.h>
28
29 #include <DNA_image_types.h>
30 #include <BL_Texture.h>
31 #include <KX_BlenderMaterial.h>
32
33 #include "ImageBase.h"
34 #include "BlendType.h"
35
36
37 // type Texture declaration
38 struct Texture
39 {
40         PyObject_HEAD
41
42         // video texture bind code
43         unsigned int m_actTex;
44
45         // original texture bind code
46         unsigned int m_orgTex;
47         // original texture saved
48         bool m_orgSaved;
49
50         // texture image for game materials
51         Image * m_imgTexture;
52         // texture for blender materials
53         BL_Texture * m_matTexture;
54
55         // use mipmapping
56         bool m_mipmap;
57
58         // scaled image buffer
59         unsigned int * m_scaledImg;
60         // scaled image buffer size
61         unsigned int m_scaledImgSize;
62         // last refresh
63         double m_lastClock;
64
65         // image source
66         PyImage * m_source;
67 };
68
69
70 // Texture type description
71 extern PyTypeObject TextureType;
72
73 // usage of Blender materials
74 extern bool blendMats;
75
76 // load texture
77 void loadTexture (unsigned int texId, unsigned int * texture, short * size,
78                                   bool mipmap = false);
79
80 // get material
81 RAS_IPolyMaterial * getMaterial (PyObject *obj, short matID);
82
83 // get material ID
84 short getMaterialID (PyObject * obj, char * name);
85
86
87 #endif