[Redbutton-devel] SF.net SVN: redbutton: [240] redbutton-browser/trunk
Brought to you by:
skilvington
|
From: <ski...@us...> - 2007-03-07 17:11:39
|
Revision: 240
http://svn.sourceforge.net/redbutton/?rev=240&view=rev
Author: skilvington
Date: 2007-03-07 09:11:28 -0800 (Wed, 07 Mar 2007)
Log Message:
-----------
add MHEGCanvas offscreen drawing class
Modified Paths:
--------------
redbutton-browser/trunk/DynamicLineArtClass.c
redbutton-browser/trunk/LineArtClass.c
redbutton-browser/trunk/Makefile
redbutton-browser/trunk/add_instance_vars.conf
Added Paths:
-----------
redbutton-browser/trunk/MHEGCanvas.c
redbutton-browser/trunk/MHEGCanvas.h
Modified: redbutton-browser/trunk/DynamicLineArtClass.c
===================================================================
--- redbutton-browser/trunk/DynamicLineArtClass.c 2007-03-06 17:05:36 UTC (rev 239)
+++ redbutton-browser/trunk/DynamicLineArtClass.c 2007-03-07 17:11:28 UTC (rev 240)
@@ -24,6 +24,9 @@
default_LineArtClassInstanceVars(t, &t->inst);
+ /* offscreen canvas to draw on */
+ t->inst.canvas = new_MHEGCanvas(t->inst.BoxSize.x_length, t->inst.BoxSize.y_length);
+
/* add it to the DisplayStack of the active application */
MHEGEngine_addVisibleObject(&t->rootClass);
Modified: redbutton-browser/trunk/LineArtClass.c
===================================================================
--- redbutton-browser/trunk/LineArtClass.c 2007-03-06 17:05:36 UTC (rev 239)
+++ redbutton-browser/trunk/LineArtClass.c 2007-03-07 17:11:28 UTC (rev 240)
@@ -37,6 +37,9 @@
else
MHEGColour_transparent(&v->RefFillColour);
+ /* derived classes must init this if they want to use it */
+ v->canvas = NULL;
+
return;
}
@@ -46,6 +49,9 @@
if(v->have_PaletteRef)
free_ObjectReference(&v->PaletteRef);
+ if(v->canvas != NULL)
+ free_MHEGCanvas(v->canvas);
+
return;
}
Added: redbutton-browser/trunk/MHEGCanvas.c
===================================================================
--- redbutton-browser/trunk/MHEGCanvas.c (rev 0)
+++ redbutton-browser/trunk/MHEGCanvas.c 2007-03-07 17:11:28 UTC (rev 240)
@@ -0,0 +1,24 @@
+/*
+ * MHEGCanvas.c
+ */
+
+#include "MHEGCanvas.h"
+#include "utils.h"
+
+MHEGCanvas *
+new_MHEGCanvas(unsigned int width, unsigned int height)
+{
+ MHEGCanvas *c = safe_mallocz(sizeof(MHEGCanvas));
+
+/* TODO */
+printf("TODO: new_MHEGCanvas(%u, %u)\n", width, height);
+
+ return c;
+}
+
+void
+free_MHEGCanvas(MHEGCanvas *c)
+{
+ safe_free(c);
+}
+
Added: redbutton-browser/trunk/MHEGCanvas.h
===================================================================
--- redbutton-browser/trunk/MHEGCanvas.h (rev 0)
+++ redbutton-browser/trunk/MHEGCanvas.h 2007-03-07 17:11:28 UTC (rev 240)
@@ -0,0 +1,21 @@
+/*
+ * MHEGCanvas.h
+ */
+
+#ifndef __MHEGCANVAS_H__
+#define __MHEGCANVAS_H__
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrender.h>
+
+typedef struct
+{
+ Pixmap contents; /* current image */
+ Picture contents_pic; /* XRender wrapper */
+} MHEGCanvas;
+
+MHEGCanvas *new_MHEGCanvas(unsigned int, unsigned int);
+void free_MHEGCanvas(MHEGCanvas *);
+
+#endif /* __MHEGCANVAS_H__ */
+
Modified: redbutton-browser/trunk/Makefile
===================================================================
--- redbutton-browser/trunk/Makefile 2007-03-06 17:05:36 UTC (rev 239)
+++ redbutton-browser/trunk/Makefile 2007-03-07 17:11:28 UTC (rev 240)
@@ -65,6 +65,7 @@
OBJS= rb-browser.o \
MHEGEngine.o \
MHEGDisplay.o \
+ MHEGCanvas.o \
MHEGBackend.o \
MHEGApp.o \
MHEGColour.o \
Modified: redbutton-browser/trunk/add_instance_vars.conf
===================================================================
--- redbutton-browser/trunk/add_instance_vars.conf 2007-03-06 17:05:36 UTC (rev 239)
+++ redbutton-browser/trunk/add_instance_vars.conf 2007-03-07 17:11:28 UTC (rev 240)
@@ -124,6 +124,7 @@
<LineArtClass>
#include "MHEGColour.h"
+#include "MHEGCanvas.h"
typedef struct
{
@@ -140,6 +141,8 @@
#define LineStyle_dotted original_line_style_dotted
MHEGColour RefLineColour;
MHEGColour RefFillColour;
+ /* only used by DynamicLineArtClass */
+ MHEGCanvas *canvas;
} LineArtClassInstanceVars;
</LineArtClass>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|