[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [Vala] OpenGL and gtkglext Bindings!!!
- From: "Zeeshan Ali Khattak" <zeenix gmail com>
- To: "Matías De la Puente" <mfpuente ar gmail com>
- Cc: vala-list gnome org
- Subject: Re: [Vala] OpenGL and gtkglext Bindings!!!
- Date: Wed, 6 Aug 2008 18:15:40 +0300
On Wed, Aug 6, 2008 at 6:09 PM, Zeeshan Ali Khattak <zeenix gmail com> wrote:
> Hi!
> I've started to use these bindings for (re)learning OpenGL. I
> already compiled by hello-world (which is attached to this mail). Two
> observations so far:
Oops! Forgot the attachment. :)
--
Regards,
Zeeshan Ali Khattak
FSF member#5124
using Gtk;
using Gdk;
using GL;
public class Rectangle: GLib.Object {
static int main (string[] args) {
Gtk.init (ref args);
Gtk.GL.init (ref args);
Gdk.GL.Config config = new Gdk.GL.Config.by_mode (
Gdk.GL.ConfigMode.RGB |
Gdk.GL.ConfigMode.DEPTH);
assert (config != null);
Gtk.Window window = new Gtk.Window (Gtk.WindowType.TOPLEVEL);
if (!Gtk.GL.GtkWidgetExtension.set_gl_capability
(window,
config,
null,
true,
Gdk.GL.RenderType.RGBA_TYPE)) {
error ("Couldn't add GL caps to window\n");
}
window.realize += on_window_realize;
window.expose_event += on_window_expose;
window.show ();
Gtk.main ();
return 0;
}
private static void on_window_realize (Gtk.Window window) {
weak Gdk.GL.Drawable drawable;
weak Gdk.GL.Context context;
drawable = Gtk.GL.GtkWidgetExtension.get_gl_drawable (window);
context = Gtk.GL.GtkWidgetExtension.get_gl_context (window);
assert (context != null);
if (!drawable.gl_begin (context)) {
critical ("Failed to draw\n");
Gtk.main_quit ();
}
GL.ClearColor (0.0f, 0.0f, 0.2f, 0.0f);
GL.Clear (Consts.COLOR_BUFFER_BIT);
drawable.gl_end ();
}
private static bool on_window_expose (Gtk.Window window) {
weak Gdk.GL.Drawable drawable;
weak Gdk.GL.Context context;
drawable = Gtk.GL.GtkWidgetExtension.get_gl_drawable (window);
context = Gtk.GL.GtkWidgetExtension.get_gl_context (window);
assert (context != null);
if (!drawable.gl_begin (context)) {
critical ("Failed to draw\n");
Gtk.main_quit ();
}
GL.Begin (Consts.TRIANGLES);
GL.Color3f (1.0f, 1.0f, 1.0f);
GL.Vertex3d (0.25, 0.25, 0.0);
GL.Vertex3d (0.75, 0.25, 0.0);
GL.Vertex3d (0.75, 0.75, 0.0);
GL.Vertex3d (0.25, 0.75, 0.0);
GL.End ();
GL.Flush ();
drawable.gl_end ();
return true;
}
}
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]