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
pub use {sampler::*, texbuff::*, texture_ext::*};
pub mod chans {
	pub use super::format::{RED, RG, RGB, RGBA};
	pub type GREEN = RG;
	pub type BLUE = RGB;
	pub type ALPHA = RGBA;
}
pub mod spec {
	use super::*;
	pub type Tex2d<S, F> = Tex<S, F, GL_TEXTURE_2D>;
	pub type CubeTex<S, F> = Tex<S, F, GL_TEXTURE_CUBE_MAP>;
	pub use format::{TexFmt, TexSize};

	derive_common_VAL! { pub struct GL_TEXTURE_1D; }
	impl TexType for GL_TEXTURE_1D {
		const TYPE: GLenum = gl::TEXTURE_1D;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_2D; }
	impl TexType for GL_TEXTURE_2D {
		const TYPE: GLenum = gl::TEXTURE_2D;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_3D; }
	impl TexType for GL_TEXTURE_3D {
		const TYPE: GLenum = gl::TEXTURE_3D;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_1D_ARRAY; }
	impl TexType for GL_TEXTURE_1D_ARRAY {
		const TYPE: GLenum = gl::TEXTURE_1D_ARRAY;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_2D_ARRAY; }
	impl TexType for GL_TEXTURE_2D_ARRAY {
		const TYPE: GLenum = gl::TEXTURE_2D_ARRAY;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_CUBE_MAP; }
	impl TexType for GL_TEXTURE_CUBE_MAP {
		const TYPE: GLenum = gl::TEXTURE_CUBE_MAP;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_CUBE_MAP_ARRAY; }
	impl TexType for GL_TEXTURE_CUBE_MAP_ARRAY {
		const TYPE: GLenum = gl::TEXTURE_CUBE_MAP_ARRAY;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_BUFFER; }
	impl TexType for GL_TEXTURE_BUFFER {
		const TYPE: GLenum = gl::TEXTURE_BUFFER;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_2D_MULTISAMPLE; }
	impl TexType for GL_TEXTURE_2D_MULTISAMPLE {
		const TYPE: GLenum = gl::TEXTURE_2D_MULTISAMPLE;
	}
	derive_common_VAL! { pub struct GL_TEXTURE_2D_MULTISAMPLE_ARRAY; }
	impl TexType for GL_TEXTURE_2D_MULTISAMPLE_ARRAY {
		const TYPE: GLenum = gl::TEXTURE_2D_MULTISAMPLE_ARRAY;
	}
}

mod args;
mod format;
mod sampler;
mod texbuff;
mod texture_ext;

use {super::internal::*, crate::lib::*};