2009-11-13 Jeffrey Stedfast <fejj@novell.com>
[moon.git] / src / writeablebitmap.h
blobe66d1df5275b3569b2bc9c89507e3a6a75a2db8f
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3 * writeablebitmap.h
5 * Contact:
6 * Moonlight List (moonlight-list@lists.ximian.com)
8 * Copyright 2007-2008 Novell, Inc. (http://www.novell.com)
10 * See the LICENSE file included with the distribution for details.
14 #ifndef __WRITEABLEBITMAP_H__
15 #define __WRITEABLEBITMAP_H__
17 #include <cairo.h>
19 #include "dependencyobject.h"
20 #include "bitmapsource.h"
22 /* @Namespace=System.Windows.Media.Imaging */
23 class WriteableBitmap : public BitmapSource {
24 private:
25 pthread_mutex_t surface_mutex;
27 protected:
28 virtual ~WriteableBitmap ();
30 public:
31 /* @GenerateCBinding,GeneratePInvoke */
32 WriteableBitmap ();
34 /* @GenerateCBinding,GeneratePInvoke */
35 gpointer InitializeFromBitmapSource (BitmapSource *source);
37 /* @GenerateCBinding,GeneratePInvoke */
38 virtual void Render (UIElement *element, Transform *transform);
39 /* @GenerateCBinding,GeneratePInvoke */
40 virtual void Lock ();
41 /* @GenerateCBinding,GeneratePInvoke */
42 virtual void Unlock ();
44 virtual cairo_surface_t *GetSurface (cairo_t *cr);
47 #endif /* __WRITEABLEBITMAP_H__ */