@@ -15,7 +15,10 @@ fn write_rgba1() {
15
15
16
16
let par = 1.0f32 ;
17
17
18
- let sw_center = Imath_V2f_t :: default ( ) ;
18
+ let sw_center = Imath_V2f_t {
19
+ x : 0.0f32 ,
20
+ y : 0.0f32 ,
21
+ } ;
19
22
let sw_width = 1.0f32 ;
20
23
21
24
let line_order = Imf_LineOrder_INCREASING_Y ;
@@ -37,34 +40,27 @@ fn write_rgba1() {
37
40
) ;
38
41
39
42
// allocate pixel storage
40
- let mut pixels = vec ! [ Imf_Rgba_t :: default ( ) ; 256 * 128 ] ;
43
+ let mut pixels = vec ! [
44
+ Imf_Rgba_t {
45
+ r: half_t:: default ( ) ,
46
+ g: half_t:: default ( ) ,
47
+ b: half_t:: default ( ) ,
48
+ a: half_t:: default ( )
49
+ } ;
50
+ 256 * 128
51
+ ] ;
41
52
42
53
// draw a pattern.
43
54
for y in 0 ..height {
44
55
for x in 0 ..width {
45
56
let u = x as f32 / width as f32 ;
46
57
let v = y as f32 / height as f32 ;
47
58
48
- let mut r = half_t:: default ( ) ;
49
- let mut g = half_t:: default ( ) ;
50
- let mut b = half_t:: default ( ) ;
51
- let mut a = half_t:: default ( ) ;
52
-
53
- half_from_float ( & mut r, u) ;
54
- half_from_float ( & mut g, v) ;
55
- half_from_float ( & mut b, 0.0f32 ) ;
56
- half_from_float ( & mut a, 1.0f32 ) ;
57
-
58
- // don't try this at home, kids
59
59
let pix = & mut pixels[ ( y * width + x) as usize ] ;
60
- let mut ptr = pix as * mut _ as * mut u8 ;
61
- ptr. copy_from ( & r as * const _ as * const u8 , 2 ) ;
62
- ptr = ptr. offset ( 2 ) ;
63
- ptr. copy_from ( & g as * const _ as * const u8 , 2 ) ;
64
- ptr = ptr. offset ( 2 ) ;
65
- ptr. copy_from ( & b as * const _ as * const u8 , 2 ) ;
66
- ptr = ptr. offset ( 2 ) ;
67
- ptr. copy_from ( & a as * const _ as * const u8 , 2 ) ;
60
+ half_from_float ( & mut pix. r , u) ;
61
+ half_from_float ( & mut pix. g , v) ;
62
+ half_from_float ( & mut pix. b , 0.0f32 ) ;
63
+ half_from_float ( & mut pix. a , 1.0f32 ) ;
68
64
}
69
65
}
70
66
0 commit comments