Skip to main content

grafix_toolbox/kit/opengl/
texture.rs

1pub use {sampler::*, texbuff::*, texture_ext::*};
2pub mod chans {
3	pub use super::format::{RED, RG, RGB, RGBA};
4	pub type GREEN = RG;
5	pub type BLUE = RGB;
6	pub type ALPHA = RGBA;
7}
8pub mod spec {
9	use super::*;
10	pub type Tex2d<S, F> = Tex<S, F, GL_TEXTURE_2D>;
11	pub type CubeTex<S, F> = Tex<S, F, GL_TEXTURE_CUBE_MAP>;
12	pub use format::{TexFmt, TexSize};
13
14	#[derive_as_trivial]
15	pub struct GL_TEXTURE_1D;
16	impl TexType for GL_TEXTURE_1D {
17		const TYPE: GLenum = gl::TEXTURE_1D;
18	}
19	#[derive_as_trivial]
20	pub struct GL_TEXTURE_2D;
21	impl TexType for GL_TEXTURE_2D {
22		const TYPE: GLenum = gl::TEXTURE_2D;
23	}
24	#[derive_as_trivial]
25	pub struct GL_TEXTURE_3D;
26	impl TexType for GL_TEXTURE_3D {
27		const TYPE: GLenum = gl::TEXTURE_3D;
28	}
29	#[derive_as_trivial]
30	pub struct GL_TEXTURE_1D_ARRAY;
31	impl TexType for GL_TEXTURE_1D_ARRAY {
32		const TYPE: GLenum = gl::TEXTURE_1D_ARRAY;
33	}
34	#[derive_as_trivial]
35	pub struct GL_TEXTURE_2D_ARRAY;
36	impl TexType for GL_TEXTURE_2D_ARRAY {
37		const TYPE: GLenum = gl::TEXTURE_2D_ARRAY;
38	}
39	#[derive_as_trivial]
40	pub struct GL_TEXTURE_CUBE_MAP;
41	impl TexType for GL_TEXTURE_CUBE_MAP {
42		const TYPE: GLenum = gl::TEXTURE_CUBE_MAP;
43	}
44	#[derive_as_trivial]
45	pub struct GL_TEXTURE_CUBE_MAP_ARRAY;
46	impl TexType for GL_TEXTURE_CUBE_MAP_ARRAY {
47		const TYPE: GLenum = gl::TEXTURE_CUBE_MAP_ARRAY;
48	}
49	#[derive_as_trivial]
50	pub struct GL_TEXTURE_BUFFER;
51	impl TexType for GL_TEXTURE_BUFFER {
52		const TYPE: GLenum = gl::TEXTURE_BUFFER;
53	}
54	#[derive_as_trivial]
55	pub struct GL_TEXTURE_2D_MULTISAMPLE;
56	impl TexType for GL_TEXTURE_2D_MULTISAMPLE {
57		const TYPE: GLenum = gl::TEXTURE_2D_MULTISAMPLE;
58	}
59	#[derive_as_trivial]
60	pub struct GL_TEXTURE_2D_MULTISAMPLE_ARRAY;
61	impl TexType for GL_TEXTURE_2D_MULTISAMPLE_ARRAY {
62		const TYPE: GLenum = gl::TEXTURE_2D_MULTISAMPLE_ARRAY;
63	}
64}
65
66mod args;
67mod format;
68mod sampler;
69mod texbuff;
70mod texture_ext;
71
72use {super::internal::*, crate::lib::*, spec::*};