|
- /*
- * CuculSharp .NET bindings for libcucul
- * Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org>
- * All Rights Reserved
- *
- * $Id$
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Do What The Fuck You Want To
- * Public License, Version 2, as published by Sam Hocevar. See
- * http://sam.zoy.org/wtfpl/COPYING for more details.
- */
-
-
-
- using System;
- using System.Runtime.InteropServices;
- using System.Security;
-
-
-
- namespace libCucul
- {
- public unsafe class Cucul : IDisposable
- {
- /* Fixme */
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern IntPtr cucul_create_canvas(int w, int h);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_get_canvas_width(IntPtr qq);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_get_canvas_height(IntPtr qq);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_set_canvas_size(IntPtr qq, int w, int h);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_rand(int min, int max);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_free_canvas(IntPtr qq);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_set_color(IntPtr qq, int fg, int bg);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_set_truecolor(IntPtr qq, Int32 fg, Int32 bg);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_putchar(IntPtr qq, int x, int y, char c);
- /* [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_putstr(IntPtr qq, int, int, String);*/
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_clear_canvas(IntPtr qq);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_blit(IntPtr qq, Int32 x, Int32 y, IntPtr qq1, IntPtr qq2);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_line(IntPtr qq, Int32 x1, Int32 y1, Int32 x2, Int32 y2, string c);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_polyline(IntPtr qq, Int32[] x, Int32[] y, Int32 n, IntPtr c);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_thin_line(IntPtr qq, Int32 x1, Int32 y1, Int32 x2, Int32 y2);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_thin_polyline(IntPtr qq, Int32[] x, Int32[] y, Int32 n);
-
-
-
-
-
- /*
- char const *cucul_get_color_name(unsigned int);
- int cucul_putstr(IntPtr *, int, int, char const *);
- int cucul_printf(IntPtr *, int, int, char const *, ...);
- */
-
-
-
- IntPtr qq;
-
- public Cucul()
- {
- qq = cucul_create_canvas(0, 0);
- }
- public void Dispose()
- {
- cucul_free_canvas(qq);
- GC.SuppressFinalize(this);
- }
- public Cucul(Int32 w, Int32 h)
- {
- qq = cucul_create_canvas(w, h);
- }
- public Int32 getWidth()
- {
- return cucul_get_canvas_width(qq);
- }
- public Int32 getHeight()
- {
- return cucul_get_canvas_height(qq);
- }
- public Int32 setSize(Int32 w, Int32 h)
- {
- return cucul_set_canvas_size(qq, w, h);
- }
- public static Int32 Rand(Int32 min, Int32 max)
- {
- return cucul_rand(min, max);
- }
- public Int32 setColor(int fg, int bg)
- {
- return cucul_set_color(qq, fg, bg);
- }
- public Int32 setTruecolor(Int32 fg, Int32 bg)
- {
- return cucul_set_truecolor(qq, fg, bg);
- }
- public Int32 putChar(int x, int y, char c)
- {
- return cucul_putchar(qq, x, y, c);
- }
- public Int32 clearCanvas()
- {
- return cucul_clear_canvas(qq);
- }
- public Int32 Blit(int x, int y, Cucul qq1, Cucul qq2)
- {
- return cucul_blit(qq, x, y, qq1.get_cucul_t(), qq2.get_cucul_t());
- }
- public Int32 drawLine(Int32 x1, Int32 y1, Int32 x2, Int32 y2, string c)
- {
- return cucul_draw_line(qq, x1, y1, x2, y2, c);
- }
-
-
-
-
-
-
- /*
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_polyline(IntPtr qq, Int32[] x, Int32[] y, Int32 n, IntPtr c);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_thin_line(IntPtr qq, Int32 x1, Int32 y1, Int32 x2, Int32 y2);
- [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
- public static extern Int32 cucul_draw_thin_polyline(IntPtr qq, Int32[] x, Int32[] y, Int32 n);
- */
-
-
-
- /* Privates methods, are not meant to be called by user*/
-
- public IntPtr get_cucul_t()
- {
- return qq;
- }
- }
- }
|