-(* $Id$ *)
-
-open GMain
-open Gdk
-
-(* load image *)
-let buf = String.create (256*256*3)
-let ic = open_in_bin "image256x256.rgb"
-let _ =
- really_input ic ~buf:buf ~pos:0 ~len:(256*256*3);
- close_in ic
-
-let rgb_at x y =
- let offset = (y * 256 + x) * 3 in
- (int_of_char buf.[offset ],
- int_of_char buf.[offset+1],
- int_of_char buf.[offset+2])
-
-(* let id = Thread.create GtkThread.main () *)
-
-(* Choose a visual appropriate for RGB *)
-let _ =
- Gdk.Rgb.init ();
- GtkBase.Widget.set_default_visual (Gdk.Rgb.get_visual ());
- GtkBase.Widget.set_default_colormap (Gdk.Rgb.get_cmap ())
-
-(* We need show: true because of the need of visual *)
-let window = GWindow.window ~show:true ~width: 256 ~height: 256 ()
-
-let visual = window#misc#visual
-
-let color_create = Truecolor.color_creator visual
-
-let w = window#misc#window
-let drawing = new GDraw.drawable w
-
-let _ =
- window#connect#destroy ~callback:Main.quit;
-
- let image =
- Image.create ~kind: `FASTEST ~visual: visual ~width: 256 ~height: 256
- in
-
- let draw () =
- for x = 0 to 255 do
- for y = 0 to 255 do
- let r,g,b = rgb_at x y in
- Image.put_pixel image ~x: x ~y: y
- ~pixel: (color_create ~red: (r * 256) ~green: (g * 256) ~blue: (b * 256))
- done
- done
- in
-
- let display () =
- drawing#image image ~xsrc:0 ~ysrc:0 ~xdest:0 ~ydest:0 ~width:256 ~height:256
- in
-
- draw ();
-
- window#event#connect#after#expose ~callback:
- begin fun _ ->
- display (); false
- end;
- (* Thread.join id *)
-
- window#show ();
- Main.main ()