예제 #1
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
        public static XlibSurface FromBitmap(IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height)
        {
            IntPtr ptr;

            ptr = CairoAPI.cairo_xlib_surface_create_for_bitmap(display, bitmap, screen, width, height);
            return(new XlibSurface(ptr, true));
        }
예제 #2
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public PdfSurface(string filename, double width, double height)
 {
     surface = CairoAPI.cairo_pdf_surface_create(filename, width, height);
     lock (surfaces.SyncRoot){
         surfaces [surface] = this;
     }
 }
예제 #3
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
        public TextExtents TextExtents(string utf8)
        {
            TextExtents extents = new TextExtents();

            CairoAPI.cairo_text_extents(state, utf8, ref extents);
            return(extents);
        }
예제 #4
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public RadialGradient(double cx0, double cy0, double radius0,
                       double cx1, double cy1, double radius1)
     : base()
 {
     pattern = CairoAPI.cairo_pattern_create_radial(cx0, cy0, radius0,
                                                    cx1, cy1, radius1);
 }
예제 #5
0
파일: Matrix.cs 프로젝트: NTDLS/SyntaxBox
        public static Matrix Multiply(Matrix a, Matrix b)
        {
            Matrix result = new Matrix();

            CairoAPI.cairo_matrix_multiply(result, a, b);
            return(result);
        }
예제 #6
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
        public Rectangle StrokeExtents()
        {
            double x1, y1, x2, y2;

            CairoAPI.cairo_stroke_extents(state, out x1, out y1, out x2, out y2);
            return(new Rectangle(x1, y1, x2, y2));
        }
예제 #7
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
        public Rectangle FillExtents()
        {
            double x1, y1, x2, y2;

            CairoAPI.cairo_fill_extents(state, out x1, out y1, out x2, out y2);
            return(new Rectangle(x1, y1, x2, y2));
        }
예제 #8
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public ImageSurface(string filename)
 {
     surface = CairoAPI.cairo_image_surface_create_from_png(filename);
     lock (surfaces.SyncRoot)
     {
         surfaces[surface] = this;
     }
 }
예제 #9
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public ImageSurface(byte *data, Cairo.Format format, int width, int height, int stride)
 {
     surface = CairoAPI.cairo_image_surface_create_for_data(data, (int)format, width, height, stride);
     lock (surfaces.SyncRoot)
     {
         surfaces[surface] = this;
     }
 }
예제 #10
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public ImageSurface(Format format, int width, int height)
 {
     surface = CairoAPI.cairo_image_surface_create(format, width, height);
     lock (surfaces.SyncRoot)
     {
         surfaces[surface] = this;
     }
 }
예제 #11
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
        public Cairo.Surface CreateSimilar(
            Cairo.Content content, int width, int height)
        {
            IntPtr p = CairoAPI.cairo_surface_create_similar(
                this.Handle, content, width, height);

            return(new Cairo.Surface(p, true));
        }
예제 #12
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public XlibSurface(IntPtr display, IntPtr drawable, IntPtr visual, int width, int height)
 {
     surface = CairoAPI.cairo_xlib_surface_create(display, drawable, visual, width, height);
     lock (surfaces.SyncRoot)
     {
         surfaces[surface] = this;
     }
 }
예제 #13
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 public Win32Surface(IntPtr hdc)
 {
     surface = CairoAPI.cairo_win32_surface_create(hdc);
     lock (surfaces.SyncRoot)
     {
         surfaces[surface] = this;
     }
 }
예제 #14
0
 public void Merge(FontOptions other)
 {
     if (other == null)
     {
         throw new ArgumentNullException("other");
     }
     CairoAPI.cairo_font_options_merge(handle, other.Handle);
 }
예제 #15
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
        public void GlyphPath(Matrix matrix, Glyph[] glyphs)
        {
            IntPtr ptr;

            ptr = FromGlyphToUnManagedMemory(glyphs);

            CairoAPI.cairo_glyph_path(state, ptr, glyphs.Length);

            Marshal.FreeHGlobal(ptr);
        }
예제 #16
0
파일: Matrix.cs 프로젝트: NTDLS/SyntaxBox
 public void InitRotate(double radians)
 {
     /*
      * double s, c;
      * s = Math.Sin (radians);
      * c = Math.Cos (radians);
      * this.Init (c, s, -s, c, 0, 0);
      */
     CairoAPI.cairo_matrix_init_rotate(this, radians);
 }
예제 #17
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public SolidPattern(Color color, bool solid)
 {
     if (solid)
     {
         pattern = CairoAPI.cairo_pattern_create_rgb(color.R, color.G, color.B);
     }
     else
     {
         pattern = CairoAPI.cairo_pattern_create_rgba(color.R, color.G, color.B, color.A);
     }
 }
예제 #18
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
 protected Surface(IntPtr ptr, bool owns)
 {
     surface = ptr;
     lock (surfaces.SyncRoot)
     {
         surfaces[ptr] = this;
     }
     if (!owns)
     {
         CairoAPI.cairo_surface_reference(ptr);
     }
 }
예제 #19
0
파일: Surface.cs 프로젝트: NTDLS/SyntaxBox
        protected virtual void Dispose(bool disposing)
        {
            if (surface == (IntPtr)0)
            {
                return;
            }

            lock (surfaces.SyncRoot)
                surfaces.Remove(surface);

            CairoAPI.cairo_surface_destroy(surface);
            surface = (IntPtr)0;
        }
예제 #20
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
        protected virtual void Dispose(bool disposing)
        {
            if (!disposing)
            {
                //Console.WriteLine ("Cairo.Context: called from thread");
                return;
            }

            if (state == IntPtr.Zero)
            {
                return;
            }

            //Console.WriteLine ("Destroying");
            CairoAPI.cairo_destroy(state);
            state = IntPtr.Zero;
        }
예제 #21
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public SurfacePattern(Surface surface)
 {
     pattern = CairoAPI.cairo_pattern_create_for_surface(surface.Handle);
 }
예제 #22
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public Status AddColorStopRgb(double offset, Cairo.Color c)
 {
     CairoAPI.cairo_pattern_add_color_stop_rgb(pattern, offset,
                                               c.R, c.G, c.B);
     return(Status);
 }
예제 #23
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public LinearGradient(double x0, double y0, double x1, double y1)
     : base()
 {
     pattern = CairoAPI.cairo_pattern_create_linear(x0, y0, x1, y1);
 }
예제 #24
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 public void Destroy()
 {
     CairoAPI.cairo_pattern_destroy(pattern);
 }
예제 #25
0
파일: Pattern.cs 프로젝트: NTDLS/SyntaxBox
 protected void Reference()
 {
     CairoAPI.cairo_pattern_reference(pattern);
 }
예제 #26
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
 public void TextPath(string str)
 {
     CairoAPI.cairo_text_path(state, str);
 }
예제 #27
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
 public void ShowText(string str)
 {
     CairoAPI.cairo_show_text(state, str);
 }
예제 #28
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
 public void ShowPage()
 {
     CairoAPI.cairo_show_page(state);
 }
예제 #29
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
 public void SelectFontFace(string family, FontSlant slant, FontWeight weight)
 {
     CairoAPI.cairo_select_font_face(state, family, slant, weight);
 }
예제 #30
0
파일: Context.cs 프로젝트: NTDLS/SyntaxBox
 public void CopyPage()
 {
     CairoAPI.cairo_copy_page(state);
 }