summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Costantini <fabien@onepost.net>2008-09-17 09:29:27 +0000
committerFabien Costantini <fabien@onepost.net>2008-09-17 09:29:27 +0000
commit82d47bd253cf56f34ab947e15de15b43120a10cb (patch)
tree83fdc1d37b36b159ef6b3b9f19009da1af4334d5
parent9e2f9c5b3a31796a1697ec5ff710fbe119eb7a56 (diff)
Added cairo todo list for keeping in one place related implementation guidelines.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--TODO.cairo35
1 files changed, 35 insertions, 0 deletions
diff --git a/TODO.cairo b/TODO.cairo
new file mode 100644
index 000000000..0f3505155
--- /dev/null
+++ b/TODO.cairo
@@ -0,0 +1,35 @@
+Reminder for present and potential future considerations
+
+From Bill:
+First there is the HAVE_CAIRO configuration option. This indicates that
+any cairo calls are available. In this case you get something like this:
+
+// static variable holding the last cairo context fltk set:
+cairo_t* Fl::cr;
+
+// Make cr draw in this window. This hides the ugly platform-dependent
+// part of getting cairo going:
+void Fl::cairo_make_current(Fl_Window*)
+
+*** POST 1.3 potential cairo use:
+// Set cr to something you made yourself. This lets you reuse functions
+// that use cr, and also tells fltk that cr is not one of it's own and
+// thus cannot be destroyed or reused for a different window:
+void Fl::cairo_make_current(cairo_t*)
+
+Second there is the USE_CAIRO configuration option. This means that all
+drawing is done using Cairo. In this case when a widget draw() method is
+called, it is exactly as though cairo_make_current(window) has been done.
+***
+
+Note that it should be possible to compile so HAVE_CAIRO works even if
+USE_CAIRO does not, and so that turning on USE_CAIRO does not break any
+programs written for HAVE_CAIRO.
+
+From Fabien
+We will provide some service for users to use cairo with fltk 1.3 :
+A HAVE_CAIRO configuration option will be created.
+A simple Fl_Cairo_Window will be implemented and will provide basic
+cairo surface transparent handling (hiding non portable cairo context creation and so on).
+A demo program called cairo_test will be added in demo, providing a new test case.
+This program will raise an alert dialog box in case HAVE_CAIRO is not set, indicating that cairo lib is not available.