Changeset 1424 for libcaca


Ignore:
Timestamp:
Nov 18, 2006, 1:27:16 PM (14 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Added preliminary dither support to .NET bindings
Location:
libcaca/trunk/DotNet
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/DotNet/Cucul.cs

    r1423 r1424  
    320320
    321321
    322 
    323 
    324 
    325 
    326 
    327322        /* Privates methods, are not meant to be called by user*/
    328323       
     
    332327            }
    333328    }
     329
     330
     331
     332    public unsafe class Dither : IDisposable
     333    {
     334    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]   
     335      public static extern IntPtr cucul_create_dither(Int32 bpp, Int32 w,
     336                                                      Int32 h, Int32 pitch,
     337                                                      Int64 rmask,
     338                                                      Int64 gmask,
     339                                                      Int64 bmask,
     340                                                      Int64 amask);
     341
     342
     343    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     344      public static extern Int32 cucul_set_dither_palette(IntPtr d,
     345                             Int32[] r, Int32[] g,
     346                             Int32[] b, Int32[] a);
     347    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     348      public static extern Int32 cucul_set_dither_brightness(IntPtr d, float b);
     349    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     350      public static extern Int32 cucul_set_dither_gamma(IntPtr d, float g);
     351    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     352      public static extern Int32 cucul_set_dither_contrast(IntPtr d, float c);
     353    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     354      public static extern Int32 cucul_set_dither_invert(IntPtr d, int i);
     355    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     356      public static extern Int32 cucul_set_dither_antialias(IntPtr d, string s);
     357    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     358      public static extern string[] cucul_get_dither_antialias_list(IntPtr d);
     359    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     360      public static extern Int32 cucul_set_dither_color(IntPtr d, string s);
     361    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     362      public static extern string[] cucul_get_dither_color_list(IntPtr d);
     363    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     364      public static extern Int32 cucul_set_dither_charset(IntPtr d, string s);
     365    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     366      public static extern string[] cucul_get_dither_charset_list(IntPtr d);
     367    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     368      public static extern Int32 cucul_set_dither_mode(IntPtr d, string s);
     369    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     370      public static extern string[] cucul_get_dither_mode_list(IntPtr d);
     371    [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     372      public static extern Int32 cucul_free_dither(IntPtr d);
     373
     374  /* FIXME  [DllImport("libCucul.dll", CallingConvention=CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 
     375      Int32 cucul_dither_bitmap(Cucul c,Int32  x, Int32 y, Int32 w , Int32 y,
     376                         IntPtr d2, void *);*/
     377
     378
     379
     380        IntPtr dither;
     381
     382        public Dither(Int32 bpp, Int32 w,Int32 h, Int32 pitch,
     383                      Int64 rmask, Int64 gmask,Int64 bmask, Int64 amask)
     384            {
     385               dither = cucul_create_dither(bpp, w, h, pitch, rmask, gmask, bmask, amask);
     386            }
     387        public void Dispose()
     388            {
     389               cucul_free_dither(dither);
     390               GC.SuppressFinalize(this);
     391            }
     392        public Int32 setBrightness(float b)
     393            {
     394            return cucul_set_dither_brightness(dither, b);
     395            }
     396        public Int32 setGamma(float g)
     397            {
     398            return cucul_set_dither_gamma(dither, g);
     399            }
     400        public Int32 setContrast(float c)
     401            {
     402            return cucul_set_dither_contrast(dither, c);
     403            }
     404       public Int32 setInvert(Int32 i)
     405            {
     406            return cucul_set_dither_invert(dither, i);
     407            }
     408       public Int32 setAntialias(string s)
     409            {
     410            return cucul_set_dither_antialias(dither, s);
     411            }
     412       public Int32 setColor(string s)
     413            {
     414            return cucul_set_dither_color(dither, s);
     415            }
     416       public Int32 setCharset(string s)
     417            {
     418            return cucul_set_dither_charset(dither, s);
     419            }
     420       public Int32 setMode(string s)
     421            {
     422            return cucul_set_dither_mode(dither, s);
     423            }
     424       /* <FIXME> */
     425       public string[] getAntialiasList()
     426            {
     427                return cucul_get_dither_antialias_list(dither);
     428            }
     429       public string[] getColorList()
     430            {
     431                return cucul_get_dither_color_list(dither);
     432            }
     433       public string[] getCharsetList()
     434            {
     435                return cucul_get_dither_charset_list(dither);
     436            }
     437       public string[] getModeList()
     438            {
     439                return cucul_get_dither_mode_list(dither);
     440            }
     441       /* </FIXME> */
     442
     443    }
     444
     445
     446
     447
     448
     449
     450
     451
     452
     453
     454
     455
    334456  }
    335457
  • libcaca/trunk/DotNet/test.cs

    r1422 r1424  
    2727        /* Instanciate a cucul canvas */
    2828        Cucul qq = new Cucul();
    29        
     29
    3030        /* Get size, and change it */
    3131        Console.WriteLine("Old size : {0}x{1}", qq.getWidth(), qq.getHeight());
     
    3737        Console.WriteLine("A random number : {0}", Cucul.Rand(0, 1337));
    3838
    39 
     39        /* Draw stuff on our canvas */
    4040        qq.putChar(0,0, 'J');
    41 
    4241        qq.setColor(Cucul.CUCUL_BLUE, Cucul.CUCUL_RED);
    4342        qq.drawLine(10, 15, 45, 27, "#");
    44 
    4543        qq.putStr(10, 10, "Hello from .NET");
     44        Console.WriteLine("Char at 0,0 : {0}", qq.getChar(0,0));
     45        qq.Flip();
    4646
    4747
    48         Console.WriteLine("Char at 0,0 : {0}", qq.getChar(0,0));
     48        /* Create a Dither instance */
     49        Dither dither = new Dither(32, 320, 200, 320, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
     50        dither.setBrightness((float)0.7);
     51        string[] aalist = dither.getAntialiasList();
     52        Console.WriteLine("List : '{0}'", aalist[1]);
    4953
    50         qq.Flip();
    5154
    5255        /* We have a proper canvas, let's display it using Caca */
Note: See TracChangeset for help on using the changeset viewer.