cairo: Put some classes in separate files
This commit is contained in:
parent
38d1a3f13e
commit
6e7527cb92
8 changed files with 334 additions and 142 deletions
76
cairo/CairoDebug.cs
Normal file
76
cairo/CairoDebug.cs
Normal file
|
@ -0,0 +1,76 @@
|
|||
//
|
||||
// CairoDebug.cs
|
||||
//
|
||||
// Author:
|
||||
// Michael Hutchinson (mhutch@xamarin.com)
|
||||
//
|
||||
// Copyright (C) 2013 Xamarin Inc. (http://www.xamarin.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Cairo {
|
||||
|
||||
static class CairoDebug
|
||||
{
|
||||
static System.Collections.Generic.Dictionary<IntPtr,string> traces;
|
||||
|
||||
public static readonly bool Enabled;
|
||||
|
||||
static CairoDebug ()
|
||||
{
|
||||
var dbg = Environment.GetEnvironmentVariable ("MONO_CAIRO_DEBUG_DISPOSE");
|
||||
if (dbg == null)
|
||||
return;
|
||||
Enabled = true;
|
||||
traces = new System.Collections.Generic.Dictionary<IntPtr,string> ();
|
||||
}
|
||||
|
||||
public static void OnAllocated (IntPtr obj)
|
||||
{
|
||||
if (!Enabled)
|
||||
throw new InvalidOperationException ();
|
||||
|
||||
traces.Add (obj, Environment.StackTrace);
|
||||
}
|
||||
|
||||
public static void OnDisposed<T> (IntPtr obj, bool disposing)
|
||||
{
|
||||
if (disposing && !Enabled)
|
||||
throw new InvalidOperationException ();
|
||||
|
||||
if (!disposing) {
|
||||
Console.Error.WriteLine ("{0} is leaking, programmer is missing a call to Dispose", typeof(T).FullName);
|
||||
if (Enabled) {
|
||||
Console.Error.WriteLine ("Allocated from:");
|
||||
Console.Error.WriteLine (traces[obj]);
|
||||
} else {
|
||||
Console.Error.WriteLine ("Set MONO_CAIRO_DEBUG_DISPOSE to track allocation traces");
|
||||
}
|
||||
}
|
||||
|
||||
if (Enabled)
|
||||
traces.Remove (obj);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
75
cairo/Color.cs
Normal file
75
cairo/Color.cs
Normal file
|
@ -0,0 +1,75 @@
|
|||
//
|
||||
// Mono.Cairo.Context.cs
|
||||
//
|
||||
// Author:
|
||||
// Duncan Mak (duncan@ximian.com)
|
||||
// Miguel de Icaza (miguel@novell.com)
|
||||
// Hisham Mardam Bey (hisham.mardambey@gmail.com)
|
||||
// Alp Toker (alp@atoker.com)
|
||||
//
|
||||
// (C) Ximian Inc, 2003.
|
||||
// (C) Novell Inc, 2003.
|
||||
//
|
||||
// This is an OO wrapper API for the Cairo API.
|
||||
//
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
namespace Cairo {
|
||||
|
||||
public struct Color
|
||||
{
|
||||
public Color(double r, double g, double b) : this (r, g, b, 1.0)
|
||||
{
|
||||
}
|
||||
|
||||
public Color(double r, double g, double b, double a)
|
||||
{
|
||||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
double r, g, b, a;
|
||||
|
||||
public double R {
|
||||
get { return r; }
|
||||
set { r = value; }
|
||||
}
|
||||
|
||||
public double G {
|
||||
get { return g; }
|
||||
set { g = value; }
|
||||
}
|
||||
|
||||
public double B {
|
||||
get { return b; }
|
||||
set { b = value; }
|
||||
}
|
||||
|
||||
public double A {
|
||||
get { return a; }
|
||||
set { a = value; }
|
||||
}
|
||||
}
|
||||
}
|
142
cairo/Context.cs
142
cairo/Context.cs
|
@ -40,148 +40,6 @@ using Cairo;
|
|||
|
||||
namespace Cairo {
|
||||
|
||||
static class CairoDebug
|
||||
{
|
||||
static System.Collections.Generic.Dictionary<IntPtr,string> traces;
|
||||
|
||||
public static readonly bool Enabled;
|
||||
|
||||
static CairoDebug ()
|
||||
{
|
||||
var dbg = Environment.GetEnvironmentVariable ("MONO_CAIRO_DEBUG_DISPOSE");
|
||||
if (dbg == null)
|
||||
return;
|
||||
Enabled = true;
|
||||
traces = new System.Collections.Generic.Dictionary<IntPtr,string> ();
|
||||
}
|
||||
|
||||
public static void OnAllocated (IntPtr obj)
|
||||
{
|
||||
if (!Enabled)
|
||||
throw new InvalidOperationException ();
|
||||
|
||||
traces.Add (obj, Environment.StackTrace);
|
||||
}
|
||||
|
||||
public static void OnDisposed<T> (IntPtr obj, bool disposing)
|
||||
{
|
||||
if (disposing && !Enabled)
|
||||
throw new InvalidOperationException ();
|
||||
|
||||
if (!disposing) {
|
||||
Console.Error.WriteLine ("{0} is leaking, programmer is missing a call to Dispose", typeof(T).FullName);
|
||||
if (Enabled) {
|
||||
Console.Error.WriteLine ("Allocated from:");
|
||||
Console.Error.WriteLine (traces[obj]);
|
||||
} else {
|
||||
Console.Error.WriteLine ("Set MONO_CAIRO_DEBUG_DISPOSE to track allocation traces");
|
||||
}
|
||||
}
|
||||
|
||||
if (Enabled)
|
||||
traces.Remove (obj);
|
||||
}
|
||||
}
|
||||
|
||||
public struct Point
|
||||
{
|
||||
public Point (int x, int y)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
int x, y;
|
||||
public int X {
|
||||
get { return x; }
|
||||
set { x = value; }
|
||||
}
|
||||
|
||||
public int Y {
|
||||
get { return y; }
|
||||
set { y = value; }
|
||||
}
|
||||
}
|
||||
|
||||
public struct PointD
|
||||
{
|
||||
public PointD (double x, double y)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
double x, y;
|
||||
public double X {
|
||||
get { return x; }
|
||||
set { x = value; }
|
||||
}
|
||||
|
||||
public double Y {
|
||||
get { return y; }
|
||||
set { y = value; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public struct Distance
|
||||
{
|
||||
public Distance (double dx, double dy)
|
||||
{
|
||||
this.dx = dx;
|
||||
this.dy = dy;
|
||||
}
|
||||
|
||||
double dx, dy;
|
||||
public double Dx {
|
||||
get { return dx; }
|
||||
set { dx = value; }
|
||||
}
|
||||
|
||||
public double Dy {
|
||||
get { return dy; }
|
||||
set { dy = value; }
|
||||
}
|
||||
}
|
||||
|
||||
public struct Color
|
||||
{
|
||||
public Color(double r, double g, double b) : this (r, g, b, 1.0)
|
||||
{
|
||||
}
|
||||
|
||||
public Color(double r, double g, double b, double a)
|
||||
{
|
||||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
double r, g, b, a;
|
||||
|
||||
public double R {
|
||||
get { return r; }
|
||||
set { r = value; }
|
||||
}
|
||||
|
||||
public double G {
|
||||
get { return g; }
|
||||
set { g = value; }
|
||||
}
|
||||
|
||||
public double B {
|
||||
get { return b; }
|
||||
set { b = value; }
|
||||
}
|
||||
|
||||
public double A {
|
||||
get { return a; }
|
||||
set { a = value; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[Obsolete ("Renamed Cairo.Context per suggestion from cairo binding guidelines.")]
|
||||
public class Graphics : Context {
|
||||
public Graphics (IntPtr state) : base (state) {}
|
||||
|
|
58
cairo/Distance.cs
Normal file
58
cairo/Distance.cs
Normal file
|
@ -0,0 +1,58 @@
|
|||
//
|
||||
// Mono.Cairo.Context.cs
|
||||
//
|
||||
// Author:
|
||||
// Duncan Mak (duncan@ximian.com)
|
||||
// Miguel de Icaza (miguel@novell.com)
|
||||
// Hisham Mardam Bey (hisham.mardambey@gmail.com)
|
||||
// Alp Toker (alp@atoker.com)
|
||||
//
|
||||
// (C) Ximian Inc, 2003.
|
||||
// (C) Novell Inc, 2003.
|
||||
//
|
||||
// This is an OO wrapper API for the Cairo API.
|
||||
//
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
namespace Cairo {
|
||||
|
||||
public struct Distance
|
||||
{
|
||||
public Distance (double dx, double dy)
|
||||
{
|
||||
this.dx = dx;
|
||||
this.dy = dy;
|
||||
}
|
||||
|
||||
double dx, dy;
|
||||
public double Dx {
|
||||
get { return dx; }
|
||||
set { dx = value; }
|
||||
}
|
||||
|
||||
public double Dy {
|
||||
get { return dy; }
|
||||
set { dy = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,10 +12,13 @@ CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb
|
|||
sources = \
|
||||
Antialias.cs \
|
||||
Cairo.cs \
|
||||
CairoDebug.cs \
|
||||
Color.cs \
|
||||
Content.cs \
|
||||
Context.cs \
|
||||
Device.cs \
|
||||
DirectFBSurface.cs \
|
||||
Distance.cs \
|
||||
Extend.cs \
|
||||
FillRule.cs \
|
||||
Filter.cs \
|
||||
|
@ -42,6 +45,8 @@ sources = \
|
|||
Pattern.cs \
|
||||
PatternType.cs \
|
||||
PdfSurface.cs \
|
||||
Point.cs \
|
||||
PointD.cs \
|
||||
PSSurface.cs \
|
||||
RadialGradient.cs \
|
||||
Rectangle.cs \
|
||||
|
|
57
cairo/Point.cs
Normal file
57
cairo/Point.cs
Normal file
|
@ -0,0 +1,57 @@
|
|||
//
|
||||
// Mono.Cairo.Context.cs
|
||||
//
|
||||
// Author:
|
||||
// Duncan Mak (duncan@ximian.com)
|
||||
// Miguel de Icaza (miguel@novell.com)
|
||||
// Hisham Mardam Bey (hisham.mardambey@gmail.com)
|
||||
// Alp Toker (alp@atoker.com)
|
||||
//
|
||||
// (C) Ximian Inc, 2003.
|
||||
// (C) Novell Inc, 2003.
|
||||
//
|
||||
// This is an OO wrapper API for the Cairo API.
|
||||
//
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
namespace Cairo {
|
||||
public struct Point
|
||||
{
|
||||
public Point (int x, int y)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
int x, y;
|
||||
public int X {
|
||||
get { return x; }
|
||||
set { x = value; }
|
||||
}
|
||||
|
||||
public int Y {
|
||||
get { return y; }
|
||||
set { y = value; }
|
||||
}
|
||||
}
|
||||
}
|
58
cairo/PointD.cs
Normal file
58
cairo/PointD.cs
Normal file
|
@ -0,0 +1,58 @@
|
|||
//
|
||||
// Mono.Cairo.Context.cs
|
||||
//
|
||||
// Author:
|
||||
// Duncan Mak (duncan@ximian.com)
|
||||
// Miguel de Icaza (miguel@novell.com)
|
||||
// Hisham Mardam Bey (hisham.mardambey@gmail.com)
|
||||
// Alp Toker (alp@atoker.com)
|
||||
//
|
||||
// (C) Ximian Inc, 2003.
|
||||
// (C) Novell Inc, 2003.
|
||||
//
|
||||
// This is an OO wrapper API for the Cairo API.
|
||||
//
|
||||
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
namespace Cairo {
|
||||
|
||||
public struct PointD
|
||||
{
|
||||
public PointD (double x, double y)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
double x, y;
|
||||
public double X {
|
||||
get { return x; }
|
||||
set { x = value; }
|
||||
}
|
||||
|
||||
public double Y {
|
||||
get { return y; }
|
||||
set { y = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -83,5 +83,10 @@
|
|||
<Compile Include="Win32Surface.cs" />
|
||||
<Compile Include="XcbSurface.cs" />
|
||||
<Compile Include="XlibSurface.cs" />
|
||||
<Compile Include="CairoDebug.cs" />
|
||||
<Compile Include="Color.cs" />
|
||||
<Compile Include="Distance.cs" />
|
||||
<Compile Include="Point.cs" />
|
||||
<Compile Include="PointD.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
Reference in a new issue