@@ -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;
@@ -195,6 +195,23 @@ impl Renderer {
195
195
}
196
196
}
197
197
198
+ pub fn set_blend_mode ( & self , blend : BlendMode ) -> SdlResult < ( ) > {
199
+ let ret = unsafe { ll:: SDL_SetRenderDrawBlendMode ( self . raw , FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) ) } ;
200
+
201
+ if ret == 0 { Ok ( ( ) ) }
202
+ else { Err ( get_error ( ) ) }
203
+ }
204
+
205
+ pub fn get_blend_mode ( & self ) -> SdlResult < BlendMode > {
206
+ let blend: c_uint = 0 ;
207
+ let result = unsafe { ll:: SDL_GetRenderDrawBlendMode ( self . raw , & blend) == 0 } ;
208
+ if result {
209
+ Ok ( FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) )
210
+ } else {
211
+ Err ( get_error ( ) )
212
+ }
213
+ }
214
+
198
215
pub fn clear ( & self ) -> SdlResult < ( ) > {
199
216
let ret = unsafe { ll:: SDL_RenderClear ( self . raw ) } ;
200
217
if ret == 0 { Ok ( ( ) ) }
@@ -579,8 +596,8 @@ impl Texture {
579
596
}
580
597
581
598
pub fn get_blend_mode ( & self ) -> SdlResult < BlendMode > {
582
- let blend: i64 = 0 ;
583
- let result = unsafe { ll:: SDL_GetTextureBlendMode ( self . raw , & FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) ) == 0 } ;
599
+ let blend: c_uint = 0 ;
600
+ let result = unsafe { ll:: SDL_GetTextureBlendMode ( self . raw , & blend) == 0 } ;
584
601
if result {
585
602
Ok ( FromPrimitive :: from_i64 ( blend as i64 ) . unwrap ( ) )
586
603
} else {
0 commit comments