summaryrefslogtreecommitdiff
path: root/src/gdiplus/cdwimgp.cpp
diff options
context:
space:
mode:
authorscuri <scuri>2008-10-17 06:10:33 +0000
committerscuri <scuri>2008-10-17 06:10:33 +0000
commit7b52cc13af4e85f1ca2deb6b6c77de9c95ea0dcf (patch)
treed0857278bde2eff784227c57dcaf930346ceb7ac /src/gdiplus/cdwimgp.cpp
First commit - moving from LuaForge to SourceForge
Diffstat (limited to 'src/gdiplus/cdwimgp.cpp')
-rw-r--r--src/gdiplus/cdwimgp.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/gdiplus/cdwimgp.cpp b/src/gdiplus/cdwimgp.cpp
new file mode 100644
index 0000000..697ff40
--- /dev/null
+++ b/src/gdiplus/cdwimgp.cpp
@@ -0,0 +1,65 @@
+/** \file
+ * \brief Windows GDI+ Image Driver
+ *
+ * See Copyright Notice in cd.h
+ */
+
+#include "cdwinp.h"
+#include "cdimage.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+
+static void cdkillcanvas (cdCtxCanvas* ctxcanvas)
+{
+ cdwpKillCanvas(ctxcanvas);
+ delete ctxcanvas;
+}
+
+static void cdcreatecanvas(cdCanvas* canvas, void *data)
+{
+ if (data == NULL)
+ return;
+
+ cdCtxImage* ctximage = ((cdImage*)data)->ctximage;
+
+ /* Inicializa parametros */
+ if (ctximage == NULL)
+ return;
+
+ Graphics* graphics = new Graphics(ctximage->bitmap);
+
+ canvas->w = ctximage->w;
+ canvas->h = ctximage->h;
+ canvas->bpp = ctximage->bpp;
+
+ /* Inicializa driver Image */
+ cdCtxCanvas* ctxcanvas = cdwpCreateCanvas(canvas, graphics, CDW_BMP);
+
+ ctxcanvas->bitmap = ctximage->bitmap;
+}
+
+static void cdinittable(cdCanvas* canvas)
+{
+ cdwpInitTable(canvas);
+
+ canvas->cxKillCanvas = cdkillcanvas;
+}
+
+static cdContext cdImageContext =
+{
+ CD_CAP_ALL & ~(CD_CAP_FLUSH | CD_CAP_PLAY | CD_CAP_YAXIS |
+ CD_CAP_FPRIMTIVES ),
+ 1,
+ cdcreatecanvas,
+ cdinittable,
+ NULL,
+ NULL,
+};
+
+extern "C" {
+cdContext* cdContextImagePlus(void)
+{
+ return &cdImageContext;
+}
+}