-
Notifications
You must be signed in to change notification settings - Fork 20
/
gltexloaders.h
107 lines (93 loc) · 4.49 KB
/
gltexloaders.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/***** BEGIN LICENSE BLOCK *****
BSD License
Copyright (c) 2005-2012, NIF File Format Library and Tools
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the NIF File Format Library and Tools project may not be
used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
***** END LICENCE BLOCK *****/
#ifndef GLTEXLOADERS_H
#define GLTEXLOADERS_H
//! \file gltexloaders.h Texture loading functions header
//! A function for loading textures.
/*!
* Loads a texture pointed to by filepath.
* Returns true on success, and throws a QString otherwise.
* The parameters format, width, height and mipmaps will be filled with information about
* the loaded texture.
*
* \param filepath The full path to the texture that must be loaded.
* \param format Contain the format, for instance "DDS (DXT3)" or "TGA", on successful load.
* \param width Contains the texture width on successful load.
* \param height Contains the texture height on successful load.
* \param mipmaps Contains the number of mipmaps on successful load.
* \return true if the load was successful, false otherwise.
*/
extern bool texLoad( const QString & filepath, QString & format, GLuint & width, GLuint & height, GLuint & mipmaps );
//! A function for loading textures.
/*!
* Loads a texture pointed to by model index.
* Returns true on success, and throws a QString otherwise.
* The parameters format, width, height and mipmaps will be filled with information about
* the loaded texture.
*
* \param iData Reference to pixel data block
* \param format Contain the format, for instance "DDS (DXT3)" or "TGA", on successful load.
* \param width Contains the texture width on successful load.
* \param height Contains the texture height on successful load.
* \param mipmaps Contains the number of mipmaps on successful load.
* \return true if the load was successful, false otherwise.
*/
extern bool texLoad( const QModelIndex & iData, QString & format, GLuint & width, GLuint & height, GLuint & mipmaps );
//! A function which checks whether the given file can be loaded.
/*!
* The function checks whether the file exists, is readable, and whether its extension
* is that of a supported file format (dds, tga, or bmp).
*
* \param filepath The full path to the texture that must be checked.
*/
extern bool texCanLoad( const QString & filepath );
//! Save pixel data to a DDS file
/*!
* \param index Reference to pixel data
* \param filepath The filepath to write
* \param width The width of the texture
* \param height The height of the texture
* \param mipmaps The number of mipmaps present
* \return true if the save was successful, false otherwise
*/
bool texSaveDDS( const QModelIndex & index, const QString & filepath, GLuint & width, GLuint & height, GLuint & mipmaps );
//! Save pixel data to a TGA file
/*!
* \param index Reference to pixel data
* \param filepath The filepath to write
* \param width The width of the texture
* \param height The height of the texture
* \return true if the save was successful, false otherwise
*/
bool texSaveTGA( const QModelIndex & index, const QString & filepath, GLuint & width, GLuint & height );
//! Save a file to pixel data
/*!
* \param filepath The source texture to convert
* \param iData The pixel data to write
*/
bool texSaveNIF( class NifModel * nif, const QString & filepath, QModelIndex & iData );
#endif