Skip to content

Commit 02a5fbf

Browse files
committed
Moved gfx low level interface into sdl2_sys crate
Progresses on Rust-SDL2#647
1 parent 7b31873 commit 02a5fbf

File tree

14 files changed

+715
-711
lines changed

14 files changed

+715
-711
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ optional = true
3737

3838
unsafe_textures = []
3939
default = []
40-
gfx = ["c_vec"]
40+
gfx = ["c_vec", "sdl2-sys/gfx"]
4141
mixer = ["sdl2-sys/mixer"]
4242
image = ["sdl2-sys/image"]
4343
ttf = ["sdl2-sys/ttf"]

sdl2-sys/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,4 @@ bundled = ["cmake", "reqwest", "tar", "flate2"]
5353
mixer = []
5454
image = []
5555
ttf = []
56+
gfx = []

sdl2-sys/build.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,15 @@ fn link_sdl2(target_os: &str) {
231231
println!("cargo:rustc-flags=-l framework=SDL2_ttf");
232232
}
233233
}
234+
if cfg!(feature = "gfx") {
235+
if cfg!(any(target_os="linux", target_os="freebsd")) {
236+
println!("cargo:rustc-flags=-l SDL2_gfx");
237+
} else if cfg!(target_os="windows") {
238+
println!("cargo:rustc-flags=-l SDL2_gfx");
239+
} else if cfg!(any(target_os="macos", feature="use_mac_framework")) {
240+
println!("cargo:rustc-flags=-l framework=SDL2_gfx");
241+
}
242+
}
234243
}
235244
}
236245

sdl2-sys/src/gfx/framerate.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/* automatically generated by rust-bindgen */
2+
3+
use ::std::os::raw::*;
4+
#[repr(C)]
5+
pub struct FPSmanager {
6+
pub framecount: c_uint,
7+
pub rateticks: c_float,
8+
pub baseticks: c_uint,
9+
pub lastticks: c_uint,
10+
pub rate: c_uint,
11+
}
12+
extern "C" {
13+
pub fn SDL_initFramerate(manager: *mut FPSmanager);
14+
pub fn SDL_setFramerate(manager: *mut FPSmanager, rate: c_uint) -> c_int;
15+
pub fn SDL_getFramerate(manager: *mut FPSmanager) -> c_int;
16+
pub fn SDL_getFramecount(manager: *mut FPSmanager) -> c_int;
17+
pub fn SDL_framerateDelay(manager: *mut FPSmanager) -> c_uint;
18+
}

sdl2-sys/src/gfx/imagefilter.rs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
use ::std::os::raw::*;
2+
extern "C" {
3+
pub fn SDL_imageFilterMMXdetect() -> c_int;
4+
pub fn SDL_imageFilterMMXoff();
5+
pub fn SDL_imageFilterMMXon();
6+
pub fn SDL_imageFilterAdd(Src1: *mut u8, Src2: *mut u8,
7+
Dest: *mut u8, length: c_uint) -> c_int;
8+
pub fn SDL_imageFilterMean(Src1: *mut u8, Src2: *mut u8,
9+
Dest: *mut u8, length: c_uint) -> c_int;
10+
pub fn SDL_imageFilterSub(Src1: *mut u8, Src2: *mut u8,
11+
Dest: *mut u8, length: c_uint) -> c_int;
12+
pub fn SDL_imageFilterAbsDiff(Src1: *mut u8, Src2: *mut u8,
13+
Dest: *mut u8, length: c_uint) ->
14+
c_int;
15+
pub fn SDL_imageFilterMult(Src1: *mut u8, Src2: *mut u8,
16+
Dest: *mut u8, length: c_uint) -> c_int;
17+
pub fn SDL_imageFilterMultNor(Src1: *mut u8, Src2: *mut u8,
18+
Dest: *mut u8, length: c_uint) ->
19+
c_int;
20+
pub fn SDL_imageFilterMultDivby2(Src1: *mut u8, Src2: *mut u8,
21+
Dest: *mut u8, length: c_uint) ->
22+
c_int;
23+
pub fn SDL_imageFilterMultDivby4(Src1: *mut u8, Src2: *mut u8,
24+
Dest: *mut u8, length: c_uint) ->
25+
c_int;
26+
pub fn SDL_imageFilterBitAnd(Src1: *mut u8, Src2: *mut u8,
27+
Dest: *mut u8, length: c_uint) -> c_int;
28+
pub fn SDL_imageFilterBitOr(Src1: *mut u8, Src2: *mut u8,
29+
Dest: *mut u8, length: c_uint) -> c_int;
30+
pub fn SDL_imageFilterDiv(Src1: *mut u8, Src2: *mut u8,
31+
Dest: *mut u8, length: c_uint) -> c_int;
32+
pub fn SDL_imageFilterBitNegation(Src1: *mut u8, Dest: *mut u8,
33+
length: c_uint) -> c_int;
34+
pub fn SDL_imageFilterAddByte(Src1: *mut u8, Dest: *mut u8,
35+
length: c_uint, C: u8) -> c_int;
36+
pub fn SDL_imageFilterAddUint(Src1: *mut u8, Dest: *mut u8,
37+
length: c_uint, C: c_uint) -> c_int;
38+
pub fn SDL_imageFilterAddByteToHalf(Src1: *mut u8,
39+
Dest: *mut u8, length: c_uint,
40+
C: u8) -> c_int;
41+
pub fn SDL_imageFilterSubByte(Src1: *mut u8, Dest: *mut u8,
42+
length: c_uint, C: u8) -> c_int;
43+
pub fn SDL_imageFilterSubUint(Src1: *mut u8, Dest: *mut u8,
44+
length: c_uint, C: c_uint) -> c_int;
45+
pub fn SDL_imageFilterShiftRight(Src1: *mut u8, Dest: *mut u8,
46+
length: c_uint, N: u8) -> c_int;
47+
pub fn SDL_imageFilterShiftRightUint(Src1: *mut u8,
48+
Dest: *mut u8, length: c_uint,
49+
N: u8) -> c_int;
50+
pub fn SDL_imageFilterMultByByte(Src1: *mut u8, Dest: *mut u8,
51+
length: c_uint, C: u8) -> c_int;
52+
pub fn SDL_imageFilterShiftRightAndMultByByte(Src1: *mut u8,
53+
Dest: *mut u8,
54+
length: c_uint, N: u8,
55+
C: u8) -> c_int;
56+
pub fn SDL_imageFilterShiftLeftByte(Src1: *mut u8,
57+
Dest: *mut u8, length: c_uint,
58+
N: u8) -> c_int;
59+
pub fn SDL_imageFilterShiftLeftUint(Src1: *mut u8,
60+
Dest: *mut u8, length: c_uint,
61+
N: u8) -> c_int;
62+
pub fn SDL_imageFilterShiftLeft(Src1: *mut u8, Dest: *mut u8,
63+
length: c_uint, N: u8) -> c_int;
64+
pub fn SDL_imageFilterBinarizeUsingThreshold(Src1: *mut u8,
65+
Dest: *mut u8,
66+
length: c_uint, T: u8)
67+
-> c_int;
68+
pub fn SDL_imageFilterClipToRange(Src1: *mut u8, Dest: *mut u8,
69+
length: c_uint, Tmin: u8,
70+
Tmax: u8) -> c_int;
71+
pub fn SDL_imageFilterNormalizeLinear(Src: *mut u8,
72+
Dest: *mut u8, length: c_uint,
73+
Cmin: c_int, Cmax: c_int,
74+
Nmin: c_int, Nmax: c_int) -> c_int;
75+
}

sdl2-sys/src/gfx/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
pub mod primitives;
2+
pub mod framerate;
3+
pub mod imagefilter;
4+
pub mod rotozoom;

0 commit comments

Comments
 (0)