@@ -8,7 +8,7 @@ use SdlResult;
8
8
use std:: mem;
9
9
use std:: ptr;
10
10
use std:: raw;
11
- use libc:: { c_int, uint32_t, c_float, c_double, c_void} ;
11
+ use libc:: { c_int, c_uint , uint32_t, c_float, c_double, c_void} ;
12
12
use rect:: Point ;
13
13
use rect:: Rect ;
14
14
use std:: ffi:: c_str_to_bytes;
@@ -189,6 +189,23 @@ impl Renderer {
189
189
}
190
190
}
191
191
192
+ pub fn set_blend_mode ( & self , blend : BlendMode ) -> SdlResult < ( ) > {
193
+ let ret = unsafe { ll:: SDL_SetRenderDrawBlendMode ( self . raw , FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) ) } ;
194
+
195
+ if ret == 0 { Ok ( ( ) ) }
196
+ else { Err ( get_error ( ) ) }
197
+ }
198
+
199
+ pub fn get_blend_mode ( & self ) -> SdlResult < BlendMode > {
200
+ let blend: c_uint = 0 ;
201
+ let result = unsafe { ll:: SDL_GetRenderDrawBlendMode ( self . raw , & blend) == 0 } ;
202
+ if result {
203
+ Ok ( FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) )
204
+ } else {
205
+ Err ( get_error ( ) )
206
+ }
207
+ }
208
+
192
209
pub fn clear ( & self ) -> SdlResult < ( ) > {
193
210
let ret = unsafe { ll:: SDL_RenderClear ( self . raw ) } ;
194
211
if ret == 0 { Ok ( ( ) ) }
@@ -573,8 +590,8 @@ impl Texture {
573
590
}
574
591
575
592
pub fn get_blend_mode ( & self ) -> SdlResult < BlendMode > {
576
- let blend: i64 = 0 ;
577
- let result = unsafe { ll:: SDL_GetTextureBlendMode ( self . raw , & FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) ) == 0 } ;
593
+ let blend: c_uint = 0 ;
594
+ let result = unsafe { ll:: SDL_GetTextureBlendMode ( self . raw , & blend) == 0 } ;
578
595
if result {
579
596
Ok ( FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) )
580
597
} else {
0 commit comments