annotate src/texture.h @ 22:5519ad48822e

doc: add Doxygen documentation, closes #2450
author David Demelier <markand@malikania.fr>
date Thu, 09 Jan 2020 20:48:01 +0100
parents 63eaec5ceba9
children 65398df5fb5c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * texture.h -- basic texture management
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
17
fc71221b7bee core: minimal cleanups
David Demelier <markand@malikania.fr>
parents: 3
diff changeset
19 #ifndef MOLKO_TEXTURE_H
fc71221b7bee core: minimal cleanups
David Demelier <markand@malikania.fr>
parents: 3
diff changeset
20 #define MOLKO_TEXTURE_H
fc71221b7bee core: minimal cleanups
David Demelier <markand@malikania.fr>
parents: 3
diff changeset
21
3
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 /**
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * \file texture.h
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * \brief Basic texture management.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 * See also \a image.h for usage of textures.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 */
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 /**
21
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
30 * \brief Texture object.
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
31 *
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
32 * This object is not publicly defined because it contains
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
33 * implementation-defined data.
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
34 */
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
35 struct texture;
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
36
63eaec5ceba9 misc: minor cleanups
David Demelier <markand@malikania.fr>
parents: 17
diff changeset
37 /**
3
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 * Simple texture drawing.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * \pre tex != NULL
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 * \param tex the texture
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * \param x the X coordinate
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 * \param y the Y coordinate
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 */
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 void
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 texture_draw(struct texture *tex, int x, int y);
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 /**
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 * Advanced texture drawing.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 * \pre tex != NULL
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 * \param tex the texture
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 * \param src_x the source rectangle X coordinate
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 * \param src_y the source rectangle Y coordinate
22
5519ad48822e doc: add Doxygen documentation, closes #2450
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
55 * \param src_w the source rectangle width
5519ad48822e doc: add Doxygen documentation, closes #2450
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
56 * \param src_h the source rectangle height
3
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 * \param dst_x the destination rectangle X coordinate
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 * \param dst_y the destination rectangle Y coordinate
22
5519ad48822e doc: add Doxygen documentation, closes #2450
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
59 * \param dst_w the destination rectangle width
5519ad48822e doc: add Doxygen documentation, closes #2450
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
60 * \param dst_h the destination rectangle height
3
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 * \param angle the angle
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 */
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 void
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 texture_draw_ex(struct texture *tex,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 int src_x,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 int src_y,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 unsigned src_w,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 unsigned src_h,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 int dst_x,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 int dst_y,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 unsigned dst_w,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 unsigned dst_h,
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 double angle);
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 /**
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 * Close the texture, do not use afterwards.
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 *
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 * \pre tex != NULL
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 * \param tex the texture
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 */
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 void
c013f41a72a5 core: implement basic textures, closes #2442
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 texture_close(struct texture *tex);
17
fc71221b7bee core: minimal cleanups
David Demelier <markand@malikania.fr>
parents: 3
diff changeset
83
fc71221b7bee core: minimal cleanups
David Demelier <markand@malikania.fr>
parents: 3
diff changeset
84 #endif /* !MOLKO_TEXTURE_H */